Gå til innhold
  • Bli medlem
ArnieO

Lesing av AMS/HAN uten spenningsforsyning ("The complicated way")

Anbefalte innlegg

(Work In Progress-prosjekt for spesielt interesserte.)

 

Jeg velger å starte separat tråd om dette for "spesielt interesserte". Tidligere poster om dette er flettet inn i denne maratontråden:

Med særdeles lav hastighet (begrenset av jobb og livet ellers) jobber jeg med å få til en "dongle" som kan plugges i HAN-porten, som sender AMS-data til hjemmeautomatiseringen via Wifi.

Det finnes gode DYI-løsninger som fungerer - beskrevet både i tråden ovenfor og søstertråden "the easy way".

Hovedinnvendingen er at de trenger separat spenningsforsyning.

Jeg har selv et fungerende kort som sitter på min Kamstrup måler, med @roarfred sitt kortutlegg og kode til ESP'en som vel kommer fra @xibriz sin oppdatering av @roarfred sin kode.

 

Så why bother?

Motivasjonen er i all hovedsak den tekniske utfordringen: Klarer jeg å få det til med egen innsats samt hjelp og innspill fra kompetente brukere på dette forumet?

 

Utfordringen

De tre AMS-målerne som brukes i Norge (Kamstrup, Aidon og Kaifa) har ulik ytelse mhp hvor mye HAN-porten kan belastes.

Min Kamstrup-måler er den som kan belastes minst: Maksimum 144 mW / 6 mA fra 24V (spenningen er 24V mesteparten av tiden, dvs mellom datapakkene).

Kamstrup er altså "worst case", så dersom vi finner en løsning for denne så er problemet løst også for de andre.

Utfordringen ser ut for å ligge i at denne energien skal ned til 3,3V for å forsyne elektronikken - med minst mulig tap i omformingen.

En første mulighetsvurdering var: Dersom jeg finner en spenningsregulator med 75% virkningsgrad har vi 144 mW * 75% / 3,3V = ca 33 mA

En ESP8266 forbruker mer enn dette, og må derfor buffres på 3,3V på en slik måte at ESP'en ikke går i brownout mens den sender data.

Jeg tror dette skal være teknisk mulig å få til.
Jeg kan eventuelt for egen del kompromisse på hvor ofte ESP'en sender datapakker. Kamstrup sender data hvert 10 sekund, de to andre sender så vidt jeg vet oftere (2,5 sekund?). For min egen del vil i hvert fall 30 sekunders oppdateringer være tilstrekkelig. Kanskje sjeldnere, dersom det må til.

 

På tråden nevnt ovenfor kan man finne mine første forsøk beskrevet. Med stor optimisme startet jeg med kortutlegg  - jeg trengte bare å sjekke at den antatte løsningen på spenningskonverteringen fungerte... og det gjorde den jo slett ikke.

 

Jeg forsøkte med en buck converter fra Aliexpress, men den var speccet for opp mot 1A og viste seg å ha ubrukelig virkningsgrad på dette lave effektnivået. Jeg lette etter ferdige moduler som var "spisset" for lav effekt og det relativt høye spenningsfallet (24V -> 3,3V), men fant ikke.

 

Etter noen oppmuntrende innspill fra @tronde og @StenO gikk jeg løs på å lete etter komponenter for å lage en buck-converter som var "skreddersydd" for lav effekt. Etter noe leting fant jeg LTC3639, som ser ut for å være en god kandidat. Jeg fant den på Aliexpress, men til den relativt stive prisen av ca 200 kroner for 5 stk. Jeg klarte imidlertid å få bestilt 2 stk samples direkte fra AD; levert med Fedex etter få dager - uten at det kostet meg ei krone! Mye bedre når man er i fasen "prøving og feiling"!

 

Så kom neste utfordring: Dette er en knøttliten komponent, 0,5 mm benavstand bare. jeg bestilte noen adapter-PCBer fra Kina, men i mellomtiden var @StenO så hyggelig å sende meg et adapterkort han hadde liggende. Takk, takk! 🙂

Og det var når det ankom at jeg oppdaget at komponentens benavstand var 0,5mm, og ikke 0,625 mm (som er trangt det også - men mer kurant).

Men utrolig nok klarte jeg å få loddet den på plass på adapteret. Det hjalp godt at noen benposisjoner ikke var i bruk.

 

Det er ikke spesielt vakkert, men det fungerer (jeg tok med en 1/8 W motstand på bildet, den er 6,5 mm lang):

image.png.a854ceef93ff83e2f562962b727665e6.png

 

Jeg har nå fiklet litt med breadboard av kun buck-converteren, med signalet fra AMS-måleren som input.

image.png.80c8e816bcb7c41758439eebad174fdf.png 

 

Det fungerer for så vidt, men jeg klarer per i dag ikke å laste den med mer enn drøyt 20 mA før utgangen "kneler".

 

Jeg tror induktoren jeg bruker ikke er optimal for anvendelsen (den brune aksielle som sitter over adapter PCB'en). Det var en jeg tilfeldigvis hadde i skuffen med rett verdi.

jeg har bestilt noen toroid-induktorer (220 µH) som er på vei fra Kina som bør ankomme snart (har tatt uvanlig lang tid).

 

Skjema for buck converteren på breadboarden:

image.png.2c30577a18f43d39e323c43b2c2062d4.png

 

Med dette oppsettet måler jeg 3,2V på lastmotstanden, altså ca 20 mA.

HAN-signalet blir forstyrret en del av av jeg trekker strøm, men jeg koblet HAN-signalet inn på mitt fungerende HAN-kort (det med spenningsforsyning), og ser at målingene som sendes derfra er korrekte, så jeg har konkludert med at dette fungerer greit - bortsett fra at jeg ikke får ut så mye strøm som forventet.

 

Neste trinn blir å teste med chip-induktor - når den etter hvert ankommer.

 

De som har orket å lese så lang har kanskje interesse av at jeg har begynt å legge prosjektet på GitHUB: https://github.com/ArnieO/Arnie-AMS-reader

(Jeg er imidlertid nølende fersking på GitHUB, så tar gjerne tips om hvorvidt noe kan gjøres bedre der.)

 

Konkret ønske om hjelp/input:

  • Dersom noen her har kompetanse på valg av induktor for SMPS (switch-mode power supply), og har innspill til dette så hører jeg gjerne fra dere!
  • (Jeg er usikker på om dioden på inngangen har noen egentlig funksjon. Tanken er å unngå at det "lekker tilbake" når det kommer datapakke på bussen (spenningen faller da til ca 12-14V). Jeg klarer ikke å måle noen forskjell med/uten. )

 

 

Endret av ArnieO
  • Like 3

Del dette innlegget


Lenke til innlegg
Del på andre sider

Har du målt litt virkningsgrad med ulik inngangsspenning fra eksternt power? Databladet for LTC3639 indikerer opp mot 10mW tap slik du har tenkt å bruke den, men det kan godt være lovlig optimistisk.

 

Hvis jeg ikke regner helt feil nå, tror jeg du kan øke induktansen. De foreslår Ipeak = 2,2 x 33mA = ca. 73mA og f = 100kHz. Da ender jeg opp med nær 400uH. Du kan seriekople drossler. Legg sammen induktansene. Du kan forsåvidt parallellkople også. Samme formel som for motstander. Det er ikke ideellt å gjøre det, men det skader ikke å prøve hvis du ikke har brukbare verdier liggende. 100kHz er ikke veldig høyt, så det kan gå bra.

 

Dioden på inngangen er nok ikke kritisk når du har lav verdi på glattekondensatoren. Hvis du bruker Aidons løsning med stor kondensator og strømbegrenser vil det se anderledes ut, men den løsningen vil vel ikke gi så mye når det blir tap i den, og måleren ikke kan gi noe særlig ut. Nå har jeg ikke sett noe på muligheten for å forspenne regulatoren baklengs, så det kan være noe å ha i bakhodet. Man bruker ofte å ha en diode i sperreretning mellom utgang og inngang for å sikre seg mot det. Må se mer i databladet, men det er ikke mest viktig før resten funker.

 

Jeg bestilte jo noen ulike konvertere fra Kina, men de ble visst sendt med esel denne gangen... Kinamann satte veldig lang leveringstid, så det nytter ikke å etterlyse dem heller.

 

 

  • Like 1

Del dette innlegget


Lenke til innlegg
Del på andre sider

Jeg fikk omsider noen moduler med MP1584E som ser ut til å være det de er solgt som. Første gangen kom det noe helt annet med bortslipt tekst og helt feil pin-out og vanvittig høy hvilestrøm...

 

Den kneler ikke, men umiddelbart vil ikke 6mA inn gi mer enn 3,3V i 150 ohm med 24V inn og 3,3V i 180 ohm ved 15V inn. Tomgangsstrøm ser ut til å være under 1mA. Du kan godt få et par å prøve med. Jeg har kun tatt en veldig kjapp test, men du har like gode forutsetninger til å måle mer på dem som det jeg har. Det er godt mulig at det går an å få ut mer hvis komponentvalget tilpasses ønsket bruk.

 

 

MP1584_r1.0.pdf

Del dette innlegget


Lenke til innlegg
Del på andre sider

Bare for å blande meg inn i noe jeg ikke har peiling på, men.... Dere har ikke vurdert å bruke Bluetooth Low Energy ut av skapet?  Det synes en smule enklere - på papiret iaffal.  Energi-budsjettet med WiFi blir vel noget stramt?  Jeg innbiller meg at 3.3V forsyningen fra en TSS721A kan være nok til å drive en TI CC2541 (f.eks en HM-11 modul) direkte, gitt en tilstrekkelig stor kondensator til at du får sendt en hel pakke.

Del dette innlegget


Lenke til innlegg
Del på andre sider

Tja, kommer vel litt an på hvor du kommer fra tror jeg.  WiFi er enkelt fordi du kan det og allerede har aksesspunktet.  Men BLE er jo egentlig kjempeenkelt i forhold.  Ihvertfall så lenge du kan forholde deg til GATT og ikke må implementere hele stacken under selv.

 

Uansett var ikkepoenget at softwaren skulle bli enklere, men at BLE kan gjøres med vesentlig mindre effektbehov enn WiFi.  Dermed blir hardwaren muligens en del enklere. Kanskje.  Det er ren synsing fra min side.  Jeg har ikke tenkt å bygge dette selv. 😉

Del dette innlegget


Lenke til innlegg
Del på andre sider

I'm not sure if ArnieO has moved forward with this, but for those wondering I'll give an update from my efforts.  After a little bit of troubleshooting, I now have a self-powered solution up and running this week.  I'm running on an Aidon meter from Lyse.  It seems to be running with no problems, and the power supply for the ESP is stable.  :)

 

My circuit is very similar to that ArnieO posted in the bigger thread.  Rather than the LTC3639, I went with the LTC3642.  I found it to be a bit simpler to implement, and the simulations showed it to be slightly more efficient.  I'm using the latest sketch in the GSKJOLD repository, and measured the ~average current consumed to be ~25-30ma (there is some uncertainty here that I need to measure).  I chose 620k for the Rset of the 3642, which should support a maximum load current of 30-35ma.  In testing the DC-DC, it was stable up to ~38ma.  Above 38ma, it started to drop in output voltage.  I went with a 220uH SSR6603 inductor...it is tiny.  Attached is a picture of my prototype board...it has some extra wires, no RJ45 jack and extra caps stuck on.  The DC-DC is the bottom left corner.  I've got a second board cleaner without all the mods and a RJ45 mounted that is running currently.  Also attached is my schematic for the DC-DC supply. 

 

Challenges: 

  • Input voltage to the converter during transmission
    • Originally I had a 15ma current limiter (NSI45015) instead of the 20ma.  During the low bits at 12V, the converter needs ~15-16ma on the 12V line.  the NSI45015 was clamping the voltage and causing the 3642 to go unstable.  It would not recover without a clean power cycle.
    • Because of the design of the DC-DC, it cuts voltage to the inductor at the programmed level.  This seems to limit the maximum current draw from the HAN port by itself.  The only reason for the NSI45020 is to limit the inrush current charging the input capacitors when plugged in.
    • This seems no problem for the Aidon meter, but depending on the sensitivity of the Kamstrup this may be a problem as the currents needed at the 12V level are too high.
      • Maybe we could increase the 33uF input capacitor so currents are only drawn during the 24V periods of the HAN signal?
  • ESP startup power draw
    • The ESP pulls ~70ma with peaks of ~2ms of ~150ma during transmission/acquistion.  We knew this would require energy storage to support.  Once fully started and configured, the ESP can stay alive with ~10mF of capacitance on the 3.3V supply.  I'm not sure what voltage it dips to on transmission, but >2.6V I believe.
    • During startup the ESP draws long periods (several seconds) of ~70ma current.  This requires a 1F capacitor to maintain voltage during the startup without modifying the firmware.  I went with the DGH105Q5R5, a 5.5V 1F supercapacitor. 
  • ESP brownout on powering up
    • The 1F cap causes a very slow ramp of the 3.3V, taking well over 15 sec (probably 1min?...i didn't measure).  This slow ramp of the 3.3V does not let the ESP start cleanly.  At best it simply does not start even as the voltage gets to 3.3V.  Worse it can go into a brownout condition and draw current such that the DC--DC can never make it to 3.3V.
    • I've modified my firmware to include a Vcc check on boot, and the device goes into deep sleep if the input voltage isn't close to 3.3V.  I've also put similar calls into the wifi and mqtt connect sections so that the esp will not brownout if there is a problem connecting to either...it will instead go into sleep cycles waiting for the voltage to recover.
    • We need to implement a voltage supervisor circuit into the design to ensure a clean boot during a power cycle.  Due to the input voltage drop from the supercap, we need a supervisor with a large hystersis.  Something like an MIC2778 (http://ww1.microchip.com/downloads/en/DeviceDoc/mic2778.pdf) should work, but I will instead go with one that has a manual reset function included.  Maxim makes a bunch, TI has a paper on how to program additional hystersis, etc.  More work here is needed.
    • As for now, I have to manually reset the esp when the voltage gets above ~2.4V.  From there it takes care of itself waiting for the voltage to reach the 3.3V level before fully starting up. 

I've measured the average current consumption on the HAN line at ~4.9-5ma averaged over several minutes.  In principal it seems possible to build one close to meeting the 6ma limit of the Kamstrup.  For the Aidon and Kafia meters, this should work mostly as is. 

 

If someone wishes to prototype from here themselves, I have extra bare PCB's. 

 

Screenshot from 2019-08-02 14-31-36.png

IMG_1492.jpg

  • Like 2

Del dette innlegget


Lenke til innlegg
Del på andre sider

Nice work! I'm verry interrested in trying this on Kamstrup. If you could ship me a PCB with the SMD components (excluding the ESP) I could take care of the rest.

Del dette innlegget


Lenke til innlegg
Del på andre sider
16 minutes ago, xibriz said:

Nice work! I'm verry interrested in trying this on Kamstrup. If you could ship me a PCB with the SMD components (excluding the ESP) I could take care of the rest.

I have bare PCB's and some extra SMD parts.  Mounting the SMD's takes me about 2 hours plus the cost of the components.  The easiest is to send you the PCB pictured.  It has everything mounted plus some debug stuff.  The main difference is it only has 11.7mF on the output instead of 1F.  It has single pin contacts instead of an rj45...easy enough to cut a cable to connect to.  

 

First to check should be the current to charge the output cap.  Right now I think it pulls ~8ma @24V (~15ma @12V) to build the 3.3V supply.  We would need to bring this down to ~6ma to get started.  Its a simple 0805 resistor change.  I can probably make/test this change here in the coming few days.  Second is to make sure the previous change still can provide enough average current to run the program.  Do you know the average current consumption of the ESP when acquiring from a Kamstrup?  I think your list 1 is only every 10s?  This could help compared to the Aidon.

Del dette innlegget


Lenke til innlegg
Del på andre sider
5 hours ago, gskjold said:

This is pretty cool, looking forward to build one when I have time. No mbus chip on your board? 

It has a mbus chip.  I used the tss521 instead of the tss721 due to availability.  Here is my full schematic.  @nicbra was asking for it anyways.  However, I wouldn't build it again without a voltage supervisor.  I'm working on that this week. 

HAN_ESP_TSS521.pdf

 

*Edit: I put together the voltage supervisor piece today.  I'm attaching the schematic with _VS for it.  Main changes are to add the TPS3808 supervisor, additional manual reset button for the CH_PD pin, removal of the PF function from the TSS to the ESP.  I'm also bringing out the 3.3V to the header (i don't use a standard ftdi programmer)

HAN_ESP_TSS521_VS.pdf

Endret av spenceme

Del dette innlegget


Lenke til innlegg
Del på andre sider

 

 

 

5 timer siden, spenceme skrev:
*Edit: I put together the voltage supervisor piece today.  I'm attaching the schematic with _VS for it.  Main changes are to add the TPS3808 supervisor, additional manual reset button for the CH_PD pin, removal of the PF function from the TSS to the ESP.  I'm also bringing out the 3.3V to the header (i don't use a standard ftdi programmer)

 

That's cool! Have you tested it yet?

Instead of removing the PF function completely, maybe you could use it to trigger a modem sleep or light sleep in the ESP?

Endret av nicbra

Del dette innlegget


Lenke til innlegg
Del på andre sider

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Fjern formatering

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.


×
×
  • Opprett ny...