BeneluxSpoor.net forum

Vraag en antwoord => Elektronica en analoog => Topic gestart door: meino op 26 juli 2019, 14:42:55

Titel: Voltage conversie en power down detectie
Bericht door: meino op 26 juli 2019, 14:42:55
Hallo
Ik heb een vraagje voor onze electronica specialisten. Omdat ik zelf weinig kennis van het ontwerpen van electronica schakelingen heb, gooi ik het maar even in de groep.
Het probleem is dat ik overal op de baan componenten heb die met 5 volt (gestabiliseerd) gevoed moeten worden. Dit zijn Arduino's, servo's en bezetmelders. Maar ik wil de spanning voor de voeding gaan verhogen ivm mogelijk spanningsverlies in de bedrading. De makkelijkste manier is om de hogere spanning op de Vcc pin van de arduino te zetten ,die dan de spanning terugbrengt naar 5v, en dan de andere componenten te laten voeden van de 5v pin op de arduino. Maar ik heb ook nog een ander probleem, de arduino's hebben allemaal interne gegevens (seinstanden, wisselstanden etc) die bij een power down verloren gaan. Ik heb al voor een toepassing een soort van oplossing, door de belangrijkste gegevens zo nu en dan naar eprom te schrijven, maar eigenlijk zou ik dat willen doen op het moment dat de spanning wegvalt

Dus zou ik een schakeling willen hebben, die het volgende voor mij doet
- Een gestabiliseerde input spanning van 6-12v terugbrengen naar 5v output.
- Een buffer (condensator) hebben, zodat als de input spanning wegvalt er een aantal seconden (1-2) nog 5v op de output beschikbaar is.
- Een apart signaal dat gebruikt kan worden door de arduino om te monitoren of er input spanning aanwezig is. Dat kan een digitaal signaal zijn (0v geen spanning, 5v wel spanning) of een analoog signaal dat de waarde van de inputspanning weergeeft.

Dit is voor mij iets te hoog gegrepen om dat zelf te ontwerpen, maar misschien zijn er anderen die dit wel kunnen.

Bij voorbaat mijn dank
Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Martin Domburg op 26 juli 2019, 15:29:01
Hoi Heino,

Je kan met een 7805 spanningsregelaar ter plekke de voltage verlagen naar 5V 1Ampere, er zijn ook sterkere power regulator te krijgen die meer kunnen hebben.

Let wel op de Vdrop, dat is de voltage die een spanningsregelaar verliest. Tel die waarde erbij op en zorg dat je aan doorboven blijft.


Groetjes

Verstuurd vanaf mijn SM-G975F met Tapatalk
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 26 juli 2019, 15:36:19
[..] spanningsverlies in de bedrading.

Dat los je niet op door een hogere voedingsspanning te gebruiken; het spanningsverlies wordt nl. veroorzaakt door de stroom, en die blijft hetzelfde. Je hebt wel het voordeel van een meer betrouwbare voeding, doordat elke Arduino z'n eigen stabilisator heeft.

Citaat
[..] andere componenten te laten voeden van de 5v pin op de arduino.

Daar moet je mee uitkijken, de stabilisator van de Arduino kan nl. niet veel stroom leveren, ik meen enkele tientallen milliampéres! Het ding kan nl. z'n warmte niet goed kwijt, en door de voedingsspanning te verhogen maak je dat probleem eigenlijk nog erger. Geef de andere electronica dan liever een eigen stabilisator, bv. een LM7805 of een step-down converter van Ali.

Citaat
[..] power down
[..] gegevens zo nu en dan naar eprom te schrijven

Je weet dat EEPROM maar een beperkt aantal keren (10.000?) geschreven mag worden?

Citaat
zou ik dat willen doen op het moment dat de spanning wegvalt

Tja, daar heb ik ook nog geen goede oplossing voor...
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 26 juli 2019, 16:12:49
Dat los je niet op door een hogere voedingsspanning te gebruiken; het spanningsverlies wordt nl. veroorzaakt door de stroom, en die blijft hetzelfde. Je hebt wel het voordeel van een meer betrouwbare voeding, doordat elke Arduino z'n eigen stabilisator heeft.
Dat weet ik, maar als het spanningsverlies 0.3v is, dan houdt ik van 5v nog 4,7v over (te weinig), maar als de input 9v is dan blijft er 8,7v over, genoeg om door de voltage regulator naar 5v te brengen.

Citaat
Je weet dat EEPROM maar een beperkt aantal keren (10.000?) geschreven mag worden?
Dat weet ik, het is iets meer, minimaal 100k, en dat geldt per cell/byte in de EEPROM, dus heb ik een algoritme dat in een loopje rondgaat door de beschikbare bytes in de EEPROM. Hierdoor kan ik iets vaker data storen.

Maar ik heb nu behoefte aan een betere oplossing. De oplossing die ik geimplementeerd heb is op een Arduino mega, die heeft een grotere EEPROM dan de Uno's die ik nu ga gebruiken, vandaar dat ik iets met powerdown wil proberen.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: bellejt op 26 juli 2019, 16:38:48
is toch veel makkelijker een 12 volt ringleiding te leggen en DC DC step convertors te gebruiken ? Die kan je apart gewoon per lokatie op 5 v afregelen.Die dingen zijn tegenwoordig zelfs met digitale meter erop aan dumpprijzen te krijgen.Heb je nog stabieler nodig met weinig rimpel zet je er gewoon een condensator achter van 2200 µF of hoger.Alhoewel er al zijn met amper 1à 2 mV rimpel
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 26 juli 2019, 16:45:57
@bellejt

dat weet ik, maar het is maar een deel van de oplossing die ik zoek. Ik wil ook graag een stroombuffer er bij hebben. Dat zou ik kunnen doen op de zelfde manier als een stroombuffer in een digitale loc, maar wel gekombineert met een signaal dat me verteld dat de 12v is verdwenen.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Hans van Kampen op 26 juli 2019, 16:50:05
Zet een dikke elco op de 12 volt en daaruit putten de convertertjes dan nog enkele seconden stroom. Voordeel is dat ze enkele seconden de 5 volt blijven leveren en niet langzaam wegzakken met hun spanning.
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 26 juli 2019, 16:58:02
Als je de stroom naar die dikke elco door een diode (1) en een weerstandje (2) laat gaan, kun je de 9 volt tevens via een weerstandsdeler (3) naar een interrupt-input van de Arduino sturen.

1: Om te voorkomen dat de elco zich gaat ontladen als de 9V-voeding wegvalt.
2: Beperking van de laadstroom.
3: Evt. met een 4,7V zenerdiode parallel om overspanning op de input te voorkomen.
Titel: Re: Voltage conversie en power down detectie
Bericht door: bellejt op 26 juli 2019, 17:49:06
een deftige stroombuffer : 4 X 10000 ùF condensatoren.Zal je nog veel seconden lang je 5 volt ter beschikking hebben.Zelfde principe als in een loc.Kan helaas in een loc niet gebruikt worden door de grootte van de caps.
Heb hier als powerpack een 4700 ùF op de wisselsturing  zitten en schakelen zelfs nog 2 wissels als de spanning wegvalt.
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 26 juli 2019, 17:53:09
Haha, als het alleen voor de Arduino is heb je aan 1000µF echt wel genoeg, hoor!
Titel: Re: Voltage conversie en power down detectie
Bericht door: 72sonett op 26 juli 2019, 17:55:23
Geschikte spanningsdeler op 12 V, aftakking op een Arduino pin, als die laag gaat snel gegevens wegschrijven, via polling of een interruptroutine.

In theorie is het aantal schrijfacties eindig, maar in de praktijk zal je dat nooit halen. Ik zou dus iedere verandering meteen opslaan.
Titel: Re: Voltage conversie en power down detectie
Bericht door: Menno op 26 juli 2019, 20:23:14
- Een apart signaal dat gebruikt kan worden door de arduino om te monitoren of er input spanning aanwezig is. Dat kan een digitaal signaal zijn (0v geen spanning, 5v wel spanning) of een analoog signaal dat de waarde van de inputspanning weergeeft.
Ik zou het digitaal, softwarematig oplossen, met de kanttekening dat ik niet weet of (en vooral hoe precies) het kan. Uit de wereld van PIC's weet ik dat het wél kan en het zou me ook zeer sterk verbazen als een AVR/ATmega controller dat niet kan. Hier komt het nadeel van zo'n 'aparte' taal als Arduino om de hoek kijken.

Zoiets heet de 'Brown out' detectie als ik het me goed herinner. Door een bepaald bit te setten worden bepaalde zaken opgeslagen (als je dat zo programmeert) zodra de spanning onder een bepaald niveau zakt en de controller niet meer in staat is normaal te functioneren.
Dat los je niet op door een hogere voedingsspanning te gebruiken; het spanningsverlies wordt nl. veroorzaakt door de stroom, en die blijft hetzelfde. Je hebt wel het voordeel van een meer betrouwbare voeding, doordat elke Arduino z'n eigen stabilisator heeft.
Uh, als je de spanning verhoogt, moet er ergens minder stroom getrokken gaan worden. Als de spanning voor een spanningsregulator omhoog gebracht wordt, kan echt niet zo zijn dat de stroom hetzelfde blijft. Anders hadden we met onze hoogspanningslijnen ook een groot probleem.

Naar mijn mening moet je dit soort zaken echter niet met lineaire regelaars oplossen, maar schakelend, anders ga je enorm vermogen wegstoken.
Je weet dat EEPROM maar een beperkt aantal keren (10.000?) geschreven mag worden?

Tja, daar heb ik ook nog geen goede oplossing voor...
Daarom is het ook handig dat soort schrijf-acties alleen uit te voeren op een moment dat de controller als het ware denkt 'sh*t! De stroom valt uit! Snel alle toestanden van uitgangen wegschrijven!' en het EEPROM verder met rust te laten.
is toch veel makkelijker een 12 volt ringleiding te leggen en DC DC step convertors te gebruiken ?[...]
Heb je nog stabieler nodig met weinig rimpel zet je er gewoon een condensator achter van 2200 µF of hoger. Alhoewel er al zijn met amper 1à 2 mV rimpel
Zo'n extra (flinke) elco zou ik mee oppassen. Op de toch al discutabele chinese converter-printjes kan 1 zo'n elco het schakelgedrag lelijk beïnvloeden: dat staat ook in vrijwel elk datablad. Capaciteiten bij schakelende regelaars doen hele andere dingen dan bij lineaire!
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 26 juli 2019, 21:15:01
zo'n 'aparte' taal als Arduino

Het is C++, niks aparts aan.

Citaat
Uh, als je de spanning verhoogt, moet er ergens minder stroom getrokken gaan worden.

Niet als je de spanning verlaagt dmv. een weerstand, of een spanningsregelaar zoals bv. een LM7805.

Citaat
Anders hadden we met onze hoogspanningslijnen ook een groot probleem.

Appels, peren... Het gaat hier over 9 volt gelijkspanning. Probeer daar maar eens een transformator tussen te zetten...

Citaat
Naar mijn mening moet je dit soort zaken echter niet met lineaire regelaars oplossen, maar schakelend, anders ga je enorm vermogen wegstoken.
Inderdaad. Hoewel "enorm" wel enorm overdreven is.

Citaat
Daarom is het ook handig dat soort schrijf-acties alleen uit te voeren op een moment dat de controller als het ware denkt '***! De stroom valt uit! Snel alle toestanden van uitgangen wegschrijven!' en het EEPROM verder met rust te laten.

Daar was iedereen al van overtuigd, hoor.  Enne, een controller "denkt" niet.

Citaat
Zo'n extra (flinke) elco zou ik mee oppassen. Op de toch al discutabele chinese converter-printjes kan 1 zo'n elco het schakelgedrag lelijk beïnvloeden: dat staat ook in vrijwel elk datablad.

De elco moet natuurlijk voor de 5V-stabilisator, dat lijkt me toch wel duidelijk...
Titel: Re: Voltage conversie en power down detectie
Bericht door: ingenium op 26 juli 2019, 21:36:37
Ik heb nog wel een 5V 200A voeding liggen...

(https://images.beneluxspoor.net/bnls/BFB98AA4-4C8A-4F73-A5E1-8883ABCC1794.jpeg)
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 26 juli 2019, 22:24:01
Ik zou het digitaal, softwarematig oplossen, met de kanttekening dat ik niet weet of (en vooral hoe precies) het kan. Uit de wereld van PIC's weet ik dat het wél kan en het zou me ook zeer sterk verbazen als een AVR/ATmega controller dat niet kan. Hier komt het nadeel van zo'n 'aparte' taal als Arduino om de hoek kijken.

Zoiets heet de 'Brown out' detectie als ik het me goed herinner. Door een bepaald bit te setten worden bepaalde zaken opgeslagen (als je dat zo programmeert) zodra de spanning onder een bepaald niveau zakt
Het is best mogelijk dat dit aanwezig is op de hardware. Alleen is het niet toegankelijk gemaakt binnen de Arduino software omgeving. Verder betwijfel ik of de Arduino in deze situatie lang genoeg levend blijft om het schrijven naar EEPROM af te maken. Dat duurt bij een beetje data toch al gauw 100-150ms. Alle voorbeelden die ik op het internet heb gevonden maken gebruik van een elco in combinatie met een diode en weerstanden om een stroombuffer te maken, waarbij een analoge pin op de stroombuffer aangesloten is, die het verschil met de hoofdvoeding en de stroombuffer meet en vervolgens een eventuele shutdown uitvoert. Kortom als ik op een pin informatie krijg, dat kan digitaal zijn of een analoog signaal dat ik met de interne referentie spanning kan vergelijken, dan is de codering voor mij geen probleem.
Maar ik probeer 2 zaken te combineren, het gebruik van een LM7805 om de voedingspanning terug te brengen naar 5v en een stroombuffer met signaal om bij een power down de arduino nog 1s in leven te houden en een shutdown procedure te laten doorlopen.

Overigens een schakelende voeding is niet nodig. Ik heb nog diverse stekker voedingen van 6, 9 en 12v liggen die allemaal een nette DC spanning leveren, oud spul van overleden diskdrives en andere computer apparatuur.

Groet Meino

Titel: Re: Voltage conversie en power down detectie
Bericht door: Karst Drenth op 26 juli 2019, 22:59:56
Citaat
Zoiets heet de 'Brown out' detectie als ik het me goed herinner

Brown-out detectie is er juist voor om te voorkomen dat er nog iets naar EEPROM geschreven wordt als de spanning wegvalt.... zowel bij PIC als by Atmels.

Grtzz,

Karst
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 26 juli 2019, 23:06:47
Ik begin voorzichtig een beeld te krijgen hoe dit op te lossen.

Een op een LM7805 gebaseerde spanning convertor. Complete kaartjes kun je op Ali express voor weinig geld krijgen.
Tussen de 9-12v voeding en de LM7805 convertor een stroombuffer, analoog aan een stroombuffer in een digitale loc, alleen zwaarder.
Dit lukt me waarschijnlijk wel.
Het enige waar ik nog mee zit is hoe ik een signaal maak dat ik kan gebruiken om te detecteren dat de 9-12v input spanning is verdwenen. Zou dat kunnen met 2 weerstandjes tussen GND en de 9v van de input. Twee weerstandjes, 1 van 5k aan GND en 1 weerstand van 4k aan de 9v. De weerstanden ook aan elkaar en op dat punt het signaal afnemen, dat is dan een digitaal, als de 9v aanwezig is, is het signaal 5v, als de 9v weg is, wordt dat 0v. Klopt mijn idee? Waar ik nog wel even goed over na moet denken, is hoe ik voorkom dat de stroombuffer de 9V ook terugkoppelt naar de input, want dan zou dit niet werken.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 26 juli 2019, 23:08:15
Het is best mogelijk dat dit aanwezig is op de hardware. Alleen is het niet toegankelijk gemaakt binnen de Arduino software omgeving.

Voor zover ik weet niet, maar vraag het voor de zekerheid even op https://forum.arduino.cc/ .
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 26 juli 2019, 23:09:55
Het enige waar ik nog mee zit is hoe ik een signaal maak dat ik kan gebruiken om te detecteren dat de 9-12v input spanning is verdwenen.

Zie Reactie #7.
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 27 juli 2019, 00:18:33
Erik

dat had ik gelezen, dus het gebruik van een weerstands netwerkje denk ik wel te begrijpen. Het enig wat ik niet goed begrijp is jouw idee om ook nog een zener te gebruiken. Bij gebruik van de juiste weerstanden is de maximale spanning toch ook begrensd op 5v. Dus wat is de toegevoegde waarde van die zener?

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: 72sonett op 27 juli 2019, 00:24:26
Spanningsdeler heet zoiets... Je kunt ook een instelpotmeter gebruiken, dan kun je die precies afregelen op 5 V.
Een zenerdiode is extra veiligheid, redundantie.
Titel: Re: Voltage conversie en power down detectie
Bericht door: -Anton- op 27 juli 2019, 14:13:14
Een alternatief voor de 7805 die behoorlijk wat warmte kan genereren is de LM2596.
Hier zijn ook hele goedkope chinese bordjes voor te krijgen, en heeft een instelbare uitgangs spanning.

Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 27 juli 2019, 16:14:00
Ok

met mijn beperkte kennis, en wat ik hier geleerd heb, kom ik op het volgende schema

(https://images.beneluxspoor.net/bnls/VoltageConvertor_powerdownSignal.png) (https://images.beneluxspoor.net/bnls/VoltageConvertor_powerdownSignal.png)

met de volgende componenten:
R1,R2 zijn 470 ohm, 0,5 watt
D1,D2 en D3 1N4001
D4 (zener) 4,7V 0,5 watt
C1 0,33 uF
C2 0,1 uF
C3 4700uF 16V
LM7805
 
Het signaal voor de Arduino pik ik op tussen de zener en R2. Als er input spanning is, zal de zener daar 4.7 volt ophouden en als de input spanning wegvalt, gaat dat naar 0V, dus prima voor een digitale pin op de Arduino (denk ik).

Graag op en aanmerkingen zodat ik ook weer wat kan opsteken. Anton had een goede opmerking, voor zover ik dat kan naarekenen verstookt de 7805 in de situatie van 12v input en een belasting van 1A toch ruim 7watt. Bij de meeste huidige nodes zal het gebruik niet boven de 200mA uitkomen, dan is het verlies nog wel te hanteren, maar in de toekomst komen er ook een aantal nodes die 6-8 servo's gaan aansturen, dus daar kan het stroomverbruik aanmerkelijk hoger zijn.
Dus het idee om LM2596 te gebruiken sprak mij ook wel aan. Ook omdat deze als een complete schakeling (inclusief display) voor 1,5 dollar aangeboden worden. De enige vraag die ik heb is, hoe gedraagt een dergelijk kaartje zich als de input spanning wegvalt en de buffercondensator het overneemt.
Overigens daar heb ik ook nog een puntje. Bij de stroombuffer die ik in de locs en voor verlichting toepas, heb ik geen weerstand voor de retourspanning zitten, alleen voor de voeding (R1). Dus de stroom wordt niet begrensd als de condensator opeens moet gaan leveren. Is het verstandig om daar ook een weerstand op te nemen zodat dat ook begrensd wordt, of is dat niet nodig omdat de LM7805/LM2596 al zelf een begrenzing vormen.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 27 juli 2019, 17:52:24
Je maakt het veel te ingewikkeld.
* 100 ohm in serie met D1
* R1, D2 en D3 kunnen vervallen.
* Ipv. R2 en D4 moet je een spanningsdeler maken die de 9-12V omlaag brengt tot 5 volt. De weerstanden moeten het "werk" doen, de zener zit er alleen als beveiliging.
* 1 mA is genoeg om de zener in geleiding te houden
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 27 juli 2019, 20:20:39
Erik

bedankt voor je commentaar, maar even wat opmerkingen van mij en waarom ik bepaalde keuzes heb gemaakt.
Ik had in eerste instantie ook het idee om met een spanningsdeler te werken, zie mijn voorgaande postings. Maar naar aanleiding van jouw opmerking over het gebruik van een zener, ben ik eens gaan nadenken. Bij een spanningsdeler is de spanning op het signaal afhankelijk van de gekozen weerstandswaarden en de waarde van de inputspanning. Bij 9V heb je andere waarden nodig dan bij 12V. Terwijl bij het gebruik van een zener, de spanning op het signaalpunt onafhankelijk is van de inputspanning. R2 heeft nu alleen tot functie om de stroom door de zener te beperken, als 1mA voldoende is, dan kan R2 ook nog wel wat hogere waarden hebben. Omdat een digitale pin op de Arduino minstens 100 mega ohm impendantie heeft, ga ik er vanuit dat de belasting van de digitale pin te verwaarlozen is.

Over de wijzigingen die jij voorstelt voor de stroombuffer weet ik niet. Het schema dat ik getekend heb is wat ik tot nu toe gebruik als stroombuffer voor led verlichting in rijtuigen (om flikkering tegen te gaan) en als stroombuffer voor in locs. R1 beperkt de laadstroom voor de elco. De twee diodes zorgen dat de weerstand alleen actief is bij het opladen van de elco, en het onbelemmerd doorgeven van de spanning als de buffer functie nodig is (ja ik weet dat een diode een spanningval van 0,7V veroorzaakt). Dit schema heb ik ooit van Internet gehaald, het zou zelfs hier van het Benelux forum kunnen komen. 100 ohm in serie met D1 beperkt ook de laadstroom van de elco, maar heeft ook invloed op de spanning/stroom die door de LM7805 gaat, waarschijnlijk verwaarloosbaar, maar toch. Dus heb ik wat reserves om die wijziging door te voeren.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 28 juli 2019, 20:04:25
Goed idee om geen 5V onder de baan te distribueren (y) En inderdaad, de regulator op de Arduino kan op 12V net een paar ledjes aan en dan houdt het wel op.

Ik zou alleen absoluut niet voor een 7805 gaan, ga voor een DC-DC step down converter. Kosten ook weinig en staan niet de boel te verstoken in hitte. Heb je geen gedoe met koellichamen en je voeding kan ook gelijk kleiner ;)

Over het naar EEPROM opslaan zou ik ook voor de KISS oplossing gaan. ;D Allereerst zou ik de Arduino lekker op zijn Vin voeden via een diode (1N4148). Zit daar nog een condensator (denk dat je al wel klaar bent met 470uF) over en je backup voeding voor je Arduino is klaar. (y) Zit hem vooral in dat je verder niets uit de Arduino moet voeden. Dus daar gebruik je de DC-DC converter voor. Bij een servo doe je dat al niet, maar als je ledjes ofzo zou willen aansturen doe dit dan door te sinken ipv te sources (ledje met kathode aan de Arduino, anode naar de DC-DC converter, pin LOW is dan aan). Haal je het onboard ledje er ook nog af scheelt het nog wat.

Voor de detectie zou je inderdaad een spanningsdeler kunnen gebruiken aan een analog pin. Je hoeft echt niet zo moeilijk te doen met zeners etc als je de boel zo kiest dat je de hoogst toegepaste spanning maar aan kan. Een lagere voeding levert dan alleen een iets lagere analoge waarde op maar dat maakt niet uit. Als je een 6k8 en een 3k3 pakt zit je goed tot 15V.

Maar ook dit kan nog simpeler ;D Gewoon een 100k van de voeding naar een pin. De clamp diodes (klem diodes? ???) op de ingang zorgt dat die goed gaat. En met 100k blijf je zelfs op 15V ruim onder de maximale 1mA die je door die clamp diodes mag sturen. Voordeel is dat je nu niet steeds hoeft te lezen met de ADC maar dat je zelfs een interrupt pin kunt gebruiken. Enige nadeel is dat je niet meer de spanning kunt instellen wanneer je gaat schrijven en zal dit vast liggen op 0,6 x Vcc = 0,6 x 5V = 3V.

Eventueel zou je voor een middenweg kunnen gaan door als nog een spanningsdeler toe te passen. Pak dan bijvoorbeeld 150k en 120k (naar GND). Dit zal zorgen dat er onder de 3V gezakt wordt als de voedingsspanning onder de 7V zakt. En door de hoge weerstandswaarde doen de clamp diodes de rest. 8)


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 28 juli 2019, 20:41:14
Ik heb inderdaad besloten om geen LM7805 te gaan gebruiken. In plaats daarvan heb ik in China een aantal van de volgende kaartjes besteld:
(https://images.beneluxspoor.net/bnls/LM2596_2.jpg) (https://images.beneluxspoor.net/bnls/LM2596_2.jpg)
Deze maken gebruik van een LM2596 en hebben een instelbare uitgangsspanning. Het duurt meestal 4-6 weken voordat die er zijn, dus als die binnen zijn ga ik wel eens experimenteren met de verschillende oplossingen die hier aangedragen zijn.
Wat het resultaat is, zal ik dan hier wel laten weten.

Allen bedankt voor het meedenken tot nu toe.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 29 juli 2019, 09:41:21
Je bent wel gelijk voor een hele luxe uitvoering besteld ;D


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 29 juli 2019, 10:11:44
Ja, maar het verschil tussen de gewone en deze uitvoering was 30ct, als ik losse onderdelen bestel ben ik meer kwijt. dus leek het me wel prettig om een indicatie van de input en output spanning op het bordje te hebben. Kortom voor die 1,80 (ik bestel altijd via ebay, bij Ali express waren ze 1,47 maar kwam er wel verzendkosten bij) ga ik niet moeilijk doen.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 29 juli 2019, 10:53:06
30 cent meer is inderdaad niet veel (y) Maar aan de andere kant, heb je ze ook wel "duur" besteld :angel: LM2596 (https://www.aliexpress.com/item/32792186556.html) of MP2315 (https://www.aliexpress.com/item/32796268715.html).


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 29 juli 2019, 11:32:10
Nou ja duur, op een gegeven moment dan stop je met prijsvergelijken. Persoonlijk prefereer ik om als het kan via ebay.de te bestellen. Maar dat is een persoonlijke keuze. En verder ga ik voor gemak en niet voor de allerlaagste prijs. Zoals ik ook onderdeeltjes blijf halen bij een electronica zaak in Amersfoort, hij is een stuk duurder dan via internet/conrad maar ik vindt het wel makkelijk om even op het fietsje naar Amersfoort te gaan en daar wat te halen.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 29 juli 2019, 12:52:24
Vandaar dat ik duur ook tussen aanhalingstekens had geschreven ;D


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: bellejt op 29 juli 2019, 13:16:13
ik heb bij ali gewoon een assortiment weertstanden besteld waar je niet kan naast kijken aan spotprijs.Die dingen eten niks en kosten amper 49 cent/100 stuks.Kan gans mijn leven verder :)
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 29 juli 2019, 13:45:45
Ik heb toch nog even een vraagje, ik denk dat ik het antwoord wel weet, maar ik wil toch nog wel even weten wat de electronica specialisten er van vinden.
Voor zover ik het begrijp, verstookt de LM7805 de overtollige energie. Dat betekend voor mij dat als je 1A aan de output kant nodig hebt er ook tenminste 1A aan de inputkant geleverd moet worden. Maar de LM2596 is een schakelende voeding (met volgens de specs 92% efficientie). Betekend dat dan ook dat de uitgaande stroom hoger is dan de inkomende stroom, bijv bij een input stroom van 1A en een inputspanning van 12V en outputspanning 5V, wordt er geleverd 0,92x12/5 = 2,2A. Wat zou betekenen om 1A op de output te leveren dat er slechts 1/2.2 = 0,45A aan de input kant geleverd hoeft te worden.

Klopt dit of maak ik ergens een denkfout?

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: bellejt op 29 juli 2019, 14:22:42
denk dat je omgekeerd redeneert : 92 % = ingang x 0,92 max .De electronika gaat met een beetje lopen (8 %).
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 29 juli 2019, 14:39:58
Ja maar wat is die max. Ik ga uit van behoud van energie, dus als er 12watt (12V x 1A) ingaat dan denk ik dat er 0.92X12watt  = 11watt aan vermogen uitkomt en 1watt wordt verstookt in warmte. Alleen wordt dat vermogen geleverd bij een lagere spanning, dus moet de stroom hoger zijn om het zelfde vermogen te leveren. Bij de LM7805 wordt het overtollige deel van het ingaande vermogen (7/12 = 58,3%) omgezet in warmte, maar dat is veel minder het geval bij de LM2596 (ongeveer 8%). Dus vandaar mijn redenering.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Klaas Zondervan op 29 juli 2019, 14:50:48
Meino, je redenering is helemaal correct. In geval van twijfel altijd de wet van behoud van energie toepassen.
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 29 juli 2019, 16:02:02
Helemaal correct (y), vandaar dat ik een DC-DC converter aanraadde ipv een 7805. Reken je alleen niet rijk met de efficiëntie, houdt een slag om de arm. Vaak is dat de maximale efficiëntie. Ook bepaald de verbruiker aan de uitgang nog steeds het opgenomen vermogen. Van uitgang naar ingang redeneren is dus logischer.


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 29 juli 2019, 16:26:42
Bedankt voor de antwoorden, en ja ik weet ook wel dat ik een slag om de arm moet houden, het ging me echter om het algemene principe dat door het gebruik van  een LM2596 ook de benodigde input stroom verlaagd wordt. Niet om de exacte waarden daarvan.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: gvandersel op 08 augustus 2019, 16:11:13
Meino,

Brownout gaat niet werken. Teneerste omdat dit een harde reset geeft bij een detektie en niet terugmeld dat er brownout heeft plaats gevonden. Uitgaande van het feit dat een Arduino tot 3,3V nog wel blijft werken, kun je 1 analoog kanaal gebruiken.
Ga dit niet pollen (duurt te lang), maar zet er een interrupt op die bij 4,5V afgaat. Maak een simpele spanningsdeler van twee weerstanden van 47k en 470k (47k aan de 5V) en verbindt het knooppunt met de analoge ingang.

Happy coding,

Groet,

Gerard van der Sel.
Titel: Re: Voltage conversie en power down detectie
Bericht door: gvandersel op 09 augustus 2019, 11:37:20
Meino,

Gisterenavond even wat verder in je vraag gedoken. Ook met de ADC gaat het niet werken, kost waarschijnlijk teveel tijd om een ADC conversie te doen. Nu heeft de Arduino nog een tweede iets minder luxe manier om analog signalen te vergelijken. De chip is standaard uitgerust met een "op-amp". De ingangen AIN0 (-, PD6, pin 12) en AIN1 (+, PD7, pin 13) zijn naar buiten uitgevoerd. De Uitgang van de "op-amp" is als interrupt ANA_COMP aanwezig. De + ingang zit helaas aan de interne LED, dus de LED functie gaat vervallen. Verder is het schema als volgt:
(https://images.beneluxspoor.net/bnls/PowerDown.jpg) (https://images.beneluxspoor.net/bnls/PowerDown.jpg)
Werking:
De "op-amp" heeft de + ingang aan pen 13. Deze heeft een constante spanning van 0,7V dc.
De - ingang hang via een spanningsdeler aan de plus 5V dc. Op moment dat deze zakt zal door de spanningsdeler de spanning onder de 0,7V dc komen. Hierdoor zal er intern in de Arduino een ANA_COMP interrupt gegenereerd worden. Met deze interrupt kan je de variabelen naar EEprom schrijven.

Groet,

Gerard van der Sel.

Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 09 augustus 2019, 13:34:10
Gerard bedankt voor het meedenken.
Ik moet wel bekennen dat ik het nog niet helemaal bevat wat je schrijft. Maar dat geeft niet, als de stepdown voedingen binnen zijn (dat duurt nog wel een maand) ga ik met alle ideeen wel aan de slag om te kijken of ik iets bruikbaars kan maken.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: ikbenerevenniet op 09 augustus 2019, 16:13:42
uitgerust met een "op-amp"

Verhip, dat wist ik niet, dank je! :-) PS.: Zou de "op-amp" niet beter "comparator" genoemd kunnen worden?
Titel: Re: Voltage conversie en power down detectie
Bericht door: gvandersel op 09 augustus 2019, 17:18:26
In dit geval wel. Gezien het feit dat de uitgang intern blijft.

Groet,

Gerard van der Sel.

PS. Normaal kun je met een op-map ook signalen versterken etc. Dat is met deze inderdaad niet mogelijk.
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 09 augustus 2019, 17:53:51
Maar voor deze basale test zou ook gewoon de external interrupt gebruikt kunnen worden. Kost je maar één pin. Zie reactie #25 (https://forum.beneluxspoor.net/index.php?topic=89527.msg3222045910#msg3222045910).


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: Patrick Smout op 09 augustus 2019, 22:11:13
Vergeet ook niet de tijd te rekenen die vereist is om een byte weg te schrijven in eeprom. Dit kunnen meerdere ms zijn. In het schema van gerard kan je beter de ongeregelde spanning nemen (12v) ipv van de 5v .

Mvg

Patrick Smout
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 10 augustus 2019, 00:03:52
Daarom wil ik er ook een soort stroombuffer (grote elco) bij hebben die de Arduino 1 of meerdere seconden in leven kan houden, zodat alles weggeschreven kan worden.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 21 augustus 2019, 21:50:36
Er is het een en ander via de postboot uit China aangekomen, dus ben ik maar eens aan het experimenteren geslagen.

Voor de test heb ik de volgende setup gemaakt;

(https://images.beneluxspoor.net/bnls/20190821_162540_DSC_0673.jpg) (https://images.beneluxspoor.net/bnls/20190821_162540_DSC_0673.jpg)

Als voeding heb ik een oude 9V stekkervoeding die 0.6A kan leveren
Tussen de voeding en de stepdown converter zit een Stroombuffer en een spanningsdeler, volgens het volgende schema;
(https://images.beneluxspoor.net/bnls/VoltageConvertor_powerdownSignal-1.jpg) (https://images.beneluxspoor.net/bnls/VoltageConvertor_powerdownSignal-1.jpg)
R1 500 Ohm
R2 2000 Ohm
R3 1000 Ohm
D1-D3 1N4008
C3 10000uF

R1, D2 en D3 zijn nodig om de laadstroom van de condensator te beteugelen, als die er niet zijn gaat de stekkervoeding steeds aan en weer uit.

Het meten was wat ingewikkeld, omdat ik aan de UNO (de tester) die door de stepdownconvertor gevoed wordt, geen USB connectie kan hebben, omdat als de 5V van de convertor wegvalt, de USB voeding dat overneemt. Het signaal punt op de stroombuffer is op deze UNO verbonden met A0. Die lees ik iedere 10ms uit en de gelezen waarde wordt d.m.v. I2C doorgegeven aan de andere UNO (de logger). Deze logger heeft ook de 5V uitgang van de convertor aan A0 hangen. Op het moment dat de logger via I2C een waarde ontvangt, leest hij ook de waarde op zijn pin A0 en toont beide waarden via de seriele monitor. De logger wordt gevoed d.m.,v de USB verbinding en is dus onadhankelijk van wat de convertor doet. De reden dat ik de 5V van de convertor op de logger monitor, komt doordat de waarden die je van een analoge pin leest, relatief zijn ten opzichte van de voedingspanning (5V). Maar ik wilde weten hoe de 5V output van de convertor zich gedraagt.

Ik heb wat testjes gedaan met verschillende belastingen. 1 test met alleen de UNO aan de convertor, 1 test met 50ohm parallel aan de UNO (trekt dus 100mA extra) en een test met 10ohm parallel (trekt dus 500mA extra). Wat het verbruik van een kale UNO is, weet ik niet, volgens diverse artikeltjes zou dat tussen 17-50mA zijn.
Verder kwam ik er achter dat er verschil is tussen de situatie dat je de stekkervoeding los trekt van de stroombuffer (Signaal gaat gelijk naar 0) en als je de stekkervoeding zelf uit het stopcontact trekt. In dat geval zie je dat de spanning op het signaal snel vermindert maar niet 0 wordt voordat de Arduino stopt met werken. Aangezien de laatste situatie is die ik moet handelen, laat ik hiervan de resultaten zien.
10000uF, UNO        10000uF, UNO          10000uF, UNO
                             & 100mA              & 500mA
mSec  Power Signal  mSec  Power Signal    mSec  Power Signal
10    4.99  3.03    10    4.99  3.03      10    4.99  3.07
20    4.99  3.01    20    4.99  3.02      20    4.99  2.99
30    4.99  2.98    30    4.99  2.92      30    4.99  3.02
40    4.99  2.94    40    4.99  2.80      40    4.99  3.07
50    4.99  2.90    50    4.99  2.70      50    4.99  3.00
60    4.99  2.86    60    4.99  2.58      60    4.99  3.03
70    4.99  2.82    70    4.99  2.44      70    4.99  2.99
80    4.99  2.78    80    4.69  2.30      80    4.99  3.02
90    4.99  2.73    90    4.41  2.33      90    4.99  3.08
100   4.99  2.68    100   4.32  2.37      100   4.99  3.00
110   4.99  2.64    110   4.28  2.37      110   4.99  3.02
120   4.99  2.61    120   4.26  2.37      120   4.63  2.67
130   4.99  2.58    130   4.24  2.37      130   4.26  2.42
140   4.99  2.57    140   4.22  2.37      140   4.19  2.48
150   4.99  2.56    150   4.19  2.37      150   4.11  2.49
160   4.99  2.56    160   4.16  2.38      160   4.02  2.50
170   4.99  2.55    170   4.13  2.38      170   3.95  2.51
180   4.99  2.54    180   4.11  2.38      180   3.86  2.52
190   4.99  2.54    190   4.09  2.39      190   3.79  2.53
200   4.99  2.53    200   4.07  2.39      200   3.72  2.54
210   4.99  2.53    210   4.04  2.39      210   3.65  2.56
220   4.99  2.53    220   4.02  2.40      220   3.58  2.57
230   4.99  2.52    230   4.00  2.40      230   3.51  2.59
240   4.99  2.51    240   3.97  2.40      240   3.44  2.61
250   4.99  2.52    250   3.95  2.41      250   3.38  2.62
260   4.99  2.51    260   3.94  2.41      260   3.31  2.64
270   4.99  2.51    270   3.92  2.41      270   3.25  2.65
280   4.99  2.50    280   3.91  2.42      280   3.19  2.67
290   4.99  2.50    290   3.88  2.42      290   3.12  2.69
300   4.99  2.50    300   3.85  2.42      300   3.07  2.70
310   4.99  2.49    310   3.83  2.43      310   3.01  2.72
320   4.99  2.49    320   3.80  2.43      320   2.95  2.73
330   4.99  2.49    330   3.78  2.44      330   2.90  2.75
340   4.99  2.48    340   3.76  2.44      340   2.84  2.77
350   4.99  2.48    350   3.74  2.44      350   2.79  2.79
360   4.99  2.48    360   3.71  2.45      360   2.74  2.81
370   4.99  2.48    370   3.70  2.46      370   2.68  2.83
380   4.99  2.47    380   3.67  2.46
390   4.99  2.46    390   3.66  2.46
400   4.99  2.47    400   3.63  2.46
410   4.99  2.45    410   3.62  2.47
420   4.99  2.45    420   3.61  2.48
430   4.99  2.45    430   3.59  2.48
440   4.99  2.45    440   3.56  2.48
450   4.99  2.44    450   3.54  2.49
460   4.99  2.44    460   3.52  2.49
470   4.99  2.44    470   3.50  2.50
480   4.99  2.44    480   3.49  2.50
490   4.99  2.43    490   3.47  2.50
500   4.99  2.42    500   3.44  2.50
510   4.99  2.42    510   3.43  2.51
520   4.99  2.42    520   3.40  2.51
530   4.99  2.42    530   3.38  2.52
540   4.99  2.42    540   3.36  2.52
550   4.99  2.41    550   3.35  2.53
560   4.99  2.41    560   3.33  2.53
570   4.99  2.41    570   3.31  2.54
580   4.99  2.40    580   3.29  2.54
590   4.99  2.39    590   3.27  2.54
600   4.99  2.40    600   3.25  2.55
610   4.99  2.39    610   3.24  2.55
620   4.99  2.39    620   3.22  2.57
630   4.99  2.38    630   3.20  2.56
640   4.99  2.38    640   3.18  2.57
650   4.99  2.37    650   3.16  2.57
660   4.99  2.38    660   3.14  2.58
670   4.99  2.37    670   3.13  2.58
680   4.99  2.37    680   3.12  2.59
690   4.99  2.37    690   3.11  2.59
700   4.99  2.36    700   3.09  2.60
710   4.99  2.36    710   3.07  2.60
720   4.99  2.36    720   3.04  2.60
730   4.99  2.35    730   3.03  2.61
740   4.99  2.35    740   3.01  2.62
750   4.99  2.35    750   2.99  2.62
760   4.99  2.34    760   2.98  2.62
770   4.99  2.34    770   2.96  2.63
780   4.99  2.33    780   2.95  2.63
790   4.99  2.33    790   2.93  2.64
800   4.99  2.33    800   2.91  2.64
810   4.99  2.33    810   2.90  2.65
820   4.99  2.32    820   2.88  2.66
830   4.99  2.32    830   2.86  2.66
840   4.99  2.32    840   2.85  2.66
850   4.99  2.31    850   2.84  2.67
860   4.99  2.31    860   2.82  2.68
870   4.99  2.31    870   2.80  2.68
880   4.99  2.30    880   2.79  2.69
890   4.99  2.30    890   2.77  2.69
900   4.99  2.30    900   2.76  2.70
910   4.99  2.29    910   2.75  2.70
920   4.99  2.29    920   2.73  2.70
930   4.99  2.29    930   2.71  2.71
940   4.99  2.29    940   2.70  2.72
950   4.99  2.29    950   2.69  2.72
960   4.99  2.28    960   2.67  2.72
970   4.99  2.28    970   2.66  2.73
980   4.99  2.28
990   4.99  2.27
1000  4.99  2.27
1010  4.99  2.27
1020  4.99  2.27
1030  4.99  2.26
1040  4.99  2.26
1050  4.99  2.25
1060  4.99  2.25
1070  4.99  2.25
1080  4.99  2.24
1090  4.99  2.24
1100  4.99  2.24
1110  4.99  2.23
1120  4.99  2.23
1130  4.99  2.23
1140  4.99  2.23
1150  4.99  2.22
1160  4.99  2.22
1170  4.99  2.22
1180  4.99  2.21
1190  4.99  2.21
1200  4.99  2.20
1210  4.99  2.20
1220  4.99  2.20
1230  4.99  2.19
1240  4.99  2.19
1250  4.99  2.20
1260  4.99  2.20
1270  4.97  2.20
1280  4.96  2.20
1290  4.95  2.20
1300  4.94  2.20
1310  4.93  2.20
1320  4.91  2.20
1330  4.91  2.21
1340  4.90  2.21
1350  4.88  2.20
1360  4.89  2.21
1370  4.87  2.21
1380  4.86  2.21
1390  4.85  2.21
1400  4.84  2.21
1410  4.84  2.21
1420  4.82  2.21
1430  4.80  2.22
1440  4.79  2.22
1450  4.80  2.22
1460  4.80  2.21
1470  4.79  2.21
1480  4.77  2.22
1490  4.75  2.22
1500  4.74  2.22
1510  4.75  2.23
1520  4.73  2.22
1530  4.72  2.22
1540  4.72  2.23
1550  4.70  2.22
1560  4.69  2.23
1570  4.69  2.23
1580  4.67  2.23
1590  4.65  2.23
1600  4.65  2.24
1610  4.64  2.23
1620  4.65  2.24
1630  4.64  2.23
1640  4.61  2.23
1650  4.61  2.24
1660  4.59  2.24
1670  4.58  2.24
1680  4.58  2.25
1690  4.58  2.24
1700  4.56  2.24
1710  4.55  2.24
1720  4.54  2.24
1730  4.53  2.25
1740  4.54  2.25
1750  4.52  2.24
1760  4.51  2.25
1770  4.50  2.25
1780  4.48  2.25
1790  4.47  2.26
1800  4.48  2.26
1810  4.46  2.25
1820  4.46  2.25
1830  4.47  2.26
1840  4.45  2.25
1850  4.43  2.26
1860  4.42  2.26
1870  4.40  2.26
1880  4.40  2.26
1890  4.40  2.26
1900  4.38  2.26
1910  4.38  2.27
1920  4.37  2.26
1930  4.36  2.26
1940  4.35  2.27
1950  4.34  2.27
1960  4.32  2.27
1970  4.33  2.28
1980  4.32  2.27
1990  4.31  2.27
2000  4.31  2.27
2010  4.29  2.27
2020  4.28  2.28
2030  4.28  2.28
2040  4.27  2.28
2050  4.27  2.28
2060  4.25  2.28
2070  4.23  2.28
2080  4.23  2.29
2090  4.23  2.28
2100  4.22  2.28
2110  4.21  2.29
2120  4.20  2.29
2130  4.18  2.29
2140  4.17  2.29
2150  4.17  2.29
2160  4.16  2.29
2170  4.16  2.29
2180  4.15  2.29
2190  4.14  2.29
2200  4.14  2.29
2210  4.13  2.29
2220  4.11  2.29
2230  4.11  2.30
2240  4.09  2.30
2250  4.10  2.30
2260  4.09  2.30
2270  4.09  2.30
2280  4.07  2.30
2290  4.06  2.30
2300  4.05  2.30
2310  4.03  2.31
2320  4.05  2.31
2330  4.03  2.31
2340  4.03  2.31
2350  4.01  2.31
2360  4.01  2.31
2370  3.99  2.31
2380  4.00  2.31
2390  3.98  2.31
2400  3.97  2.31
2410  3.96  2.32
2420  3.95  2.32
2430  3.95  2.32
2440  3.95  2.32
2450  3.94  2.32
2460  3.93  2.32
2470  3.94  2.32
2480  3.91  2.32
2490  3.92  2.33
2500  3.90  2.33
2510  3.89  2.32
2520  3.88  2.33
2530  3.89  2.33
2540  3.87  2.33
2550  3.87  2.33
2560  3.86  2.33
2570  3.85  2.33
2580  3.84  2.33
2590  3.84  2.34
2600  3.82  2.33
2610  3.82  2.34
2620  3.81  2.34
2630  3.81  2.34
2640  3.81  2.34
2650  3.80  2.34
2660  3.79  2.34
2670  3.79  2.34
2680  3.78  2.34
2690  3.78  2.35
2700  3.76  2.35
2710  3.75  2.35
2720  3.75  2.35
2730  3.75  2.35
2740  3.74  2.35
2750  3.73  2.35
2760  3.72  2.35
2770  3.71  2.35
2780  3.70  2.36
2790  3.70  2.35
2800  3.68  2.35
2810  3.69  2.36
2820  3.68  2.36
2830  3.67  2.36
2840  3.66  2.36
2850  3.66  2.36
2860  3.64  2.36
2870  3.64  2.37
2880  3.64  2.37
2890  3.64  2.36
2900  3.64  2.37
2910  3.62  2.37
2920  3.61  2.37
2930  3.60  2.37
2940  3.59  2.37
2950  3.58  2.37
2960  3.59  2.38
2970  3.57  2.37
2980  3.57  2.38
2990  3.56  2.38
3000  3.55  2.38
3010  3.55  2.38
3020  3.54  2.38
3030  3.54  2.38
3040  3.53  2.39
3050  3.52  2.39
3060  3.52  2.39
3070  3.51  2.39
3080  3.51  2.39
3090  3.50  2.39
3100  3.50  2.39
3110  3.50  2.39
3120  3.48  2.39
3130  3.48  2.40
3140  3.46  2.40
3150  3.46  2.40
3160  3.45  2.40
3170  3.46  2.40
3180  3.44  2.40
3190  3.44  2.40
3200  3.43  2.40
3210  3.42  2.40
3220  3.41  2.41
3230  3.41  2.41
3240  3.40  2.41
3250  3.41  2.41
3260  3.40  2.41
3270  3.39  2.41
3280  3.38  2.41
3290  3.37  2.41
3300  3.36  2.41
3310  3.36  2.42
3320  3.37  2.42
3330  3.35  2.42
3340  3.34  2.42
3350  3.33  2.42
3360  3.33  2.42
3370  3.33  2.42
3380  3.32  2.42
3390  3.31  2.43
3400  3.30  2.43
3410  3.30  2.43
3420  3.29  2.43
3430  3.29  2.43
3440  3.27  2.43
3450  3.28  2.43
3460  3.27  2.43
3470  3.26  2.43
3480  3.26  2.44
3490  3.25  2.44
3500  3.24  2.44
3510  3.24  2.44
3520  3.24  2.44
3530  3.23  2.44
3540  3.22  2.44
3550  3.21  2.44
3560  3.21  2.44
3570  3.20  2.45
3580  3.19  2.45
3590  3.20  2.45
3600  3.19  2.45
3610  3.17  2.45
3620  3.17  2.45
3630  3.17  2.45
3640  3.16  2.45
3650  3.15  2.46
3660  3.15  2.46
3670  3.14  2.46
3680  3.13  2.46
3690  3.13  2.46
3700  3.12  2.46
3710  3.12  2.47
3720  3.12  2.47
3730  3.11  2.47
3740  3.11  2.47
3750  3.10  2.47
3760  3.09  2.47
3770  3.09  2.47
3780  3.08  2.47
3790  3.07  2.48
3800  3.07  2.48
3810  3.07  2.48
3820  3.06  2.48
3830  3.05  2.48
3840  3.05  2.48
3850  3.04  2.48
3860  3.03  2.49
3870  3.04  2.49
3880  3.02  2.49
3890  3.02  2.49
3900  3.01  2.49
3910  3.01  2.49
3920  3.01  2.49
3930  3.00  2.49
3940  2.99  2.49
3950  2.99  2.50
3960  2.99  2.50
3970  2.97  2.50
3980  2.97  2.50
3990  2.96  2.50
4000  2.96  2.50
4010  2.95  2.50
4020  2.95  2.50
4030  2.94  2.50
4040  2.93  2.51
4050  2.92  2.51
4060  2.92  2.51
4070  2.92  2.51
4080  2.91  2.51
4090  2.91  2.51
4100  2.91  2.51
4110  2.90  2.51
4120  2.89  2.52
4130  2.89  2.52
4140  2.88  2.52
4150  2.88  2.52
4160  2.88  2.52
4170  2.88  2.52
4180  2.86  2.52
4190  2.86  2.53
4200  2.85  2.53
4210  2.85  2.53
4220  2.84  2.53
4230  2.84  2.53
4240  2.84  2.54
4250  2.82  2.54
4260  2.82  2.54
4270  2.81  2.54
4280  2.81  2.54
4290  2.80  2.54
4300  2.80  2.54
4310  2.79  2.55
4320  2.79  2.55
4330  2.78  2.55
4340  2.78  2.55
4350  2.77  2.55
4360  2.77  2.55
4370  2.77  2.55
4380  2.76  2.55
4390  2.76  2.56
4400  2.74  2.56
4410  2.75  2.56
4420  2.73  2.56
4430  2.73  2.56
4440  2.73  2.56
4450  2.73  2.56
4460  2.71  2.57
4470  2.71  2.57
4480  2.70  2.57
4490  2.70  2.57
4500  2.70  2.57
4510  2.69  2.57
4520  2.69  2.58
4530  2.68  2.58
4540  2.68  2.58
4550  2.67  2.58
4560  2.67  2.58
4570  2.66  2.58
4580  2.66  2.58
4590  2.66  2.59
4600  2.65  2.59
4610  2.64  2.59

Wat is de window dat we een powerdown kunnen afhandelen? Volgens diverse artikeltjes zou de ATmega328 op 16mHz goed blijven functioneren zolang zijn voedingspanning boven de 3,9-4V blijft.  Als ik mijn testen zie, dan blijft de UNO instaat om data via de I2C bus te versturen tot 2.7-2.8V. Maar goed laten we uitgaan van de specificaties. Verder moet het mogelijk zijn om te detecteren dat de stroomvoeding weg is, dat kan doordat de waarde op de signaal pin gaat zakken. In deze test varieert de gemeten waarde tussen 3.0-3.3V als er stroom is. Als we aannemen dat als deze waarde onder 2.85V zakt dat we geen voeding meer hebben, dan kunnen we de volgende tijdspannen vaststellen:
- UNO kaal:                2300mSec
- UNO & 100mA load:   210mSec
- UNO & 500mA load      50mSec

Ik denk dat een load van 500mA niet normaal is, want dan zul je dat apart moeten voeden, maar 100mA is misschien wel reel (wat led's, Canbus interface etc). Kortom er is vermoedelijk 200mSec om wat naar EEPROM te dumpen als de stroombuffer 10000uF is. Kortom tijd om dat ook eens te gaan meten.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 21 augustus 2019, 22:45:08
Nog even een kleine correctie.
Ik vond het verschil tussen een kale UNO en met 100mA extra load te groot. Het blijkt dat je de condensator ook tijd moet geven om op te laden. Dus was ik te snel met het uittrekken van de stekker voeding. Ik heb de test met de 100mA extra load nog eens gedaan, nadat ik de condensator een paar minuten de gelegenheid heb gegeven om op te laden.
Het blijkt dat er dan ongeveer 780-800mSec tijd is om data naar de EEPROM te schrijven.
Dat klopt beter. De totale belasting is nu 50+100 = 150mA. ongeveer 3x de belasting van een kale UNO. Dus de beschikbare tijd moet ook ongeveer een derde zijn van de beschikbare tijd voor een kale UNO.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: NL-modelspoor op 22 augustus 2019, 13:30:58
Je kan die Uno toch ook in een soort van 'spaarstand' laten gaan als je merkt dat de spanning wegvalt. Alles wat je niet nodig hebt afschakelen zodat je genoeg 'power' over hebt voor het EEPROM?
Titel: Re: Voltage conversie en power down detectie
Bericht door: NTeering op 22 augustus 2019, 14:30:23
Even terug naar het begin.
Citaat
De makkelijkste manier is om de hogere spanning op de Vcc pin van de arduino te zetten ,die dan de spanning terugbrengt naar 5v, en dan de andere componenten te laten voeden van de 5v pin op de arduino.
Dat kan wel maar je kunt daar maar weinig stroom uit halen.
Dus bij voorkeur niet doen.

Citaat
Maar ik heb ook nog een ander probleem, de arduino's hebben allemaal interne gegevens (seinstanden, wisselstanden etc) die bij een power down verloren gaan. Ik heb al voor een toepassing een soort van oplossing, door de belangrijkste gegevens zo nu en dan naar eprom te schrijven, maar eigenlijk zou ik dat willen doen op het moment dat de spanning wegvalt
Programma's als Mardec en Arsigdec (www.arcomora.com (http://www.arcomora.com)) schrijven continue data weg naar EEPROM.
Waarom zo spastisch doen over dat schrijven naar EEPROM?
Je moet wel heel veel wegschrijven wil dat EEPROM 'kapot' gaan.
Als je EEPROM.update gebruikt ipv EEPROM.write is dat zelfs 'onschadelijk' als de data niet is gewijzigd.
En gebruik structs om een blok data weg te schrijven. (EEPROM.put en EEPROM.get)
En als je slim programmeert gebruik je steeds een ander deel van het EEPROM dat je cyclisch wisselt.

Mvg
Nico
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 22 augustus 2019, 14:42:11
Hoi Meino,

Leuk om te zien dat je wat testjes hebt gedaan! (y) paar opmerkingen van mijn kant.

R1, D2 en D3 zijn nodig om de laadstroom van de condensator te beteugelen, als die er niet zijn gaat de stekkervoeding steeds aan en weer uit.
Je kan nog een beetje meer efficientie halen door R1 aan de andere kant van D1 aan te sluiten of door D2 te laten vallen. Laadt je condensator weer 0,7V meer op. Want 9V begint met deze constructie wel een beetje op het randje te worden daar je dan nog maar krap 7V over hebt (uitgaande van normale diodes).

Ik zou ook niet de moeite nemen de spanning naar de Arduino via een DCDC te sturen. Zeker kijkende naar die jij gebruikt, deze neemt al een aardig aandeel van het vermogen. Gewoon aan Vin hangen.

De reden dat ik de 5V van de convertor op de logger monitor, komt doordat de waarden die je van een analoge pin leest, relatief zijn ten opzichte van de voedingspanning (5V).
Als je de referentie spanning op 1,1V zet (zit intern in de Arduino), heb je daar geen alst van. Kan dus ook helpen voor de echte detectie. Ook al, zoals aangegeven, zou ik zelf daarvoor analoog lezen laten varen.

Volgens diverse artikeltjes zou de ATmega328 op 16mHz goed blijven functioneren zolang zijn voedingspanning boven de 3,9-4V blijft.
Je zou voor de grap eens de datasheet moeten lezen  ;) ;D Atmel garandeert het maar tot 4,5V (paragraaf 28.4). Eigenlijk dus gek dat de standaard instelling van een Arduino BOD disabled is... ::)

In deze test varieert de gemeten waarde tussen 3.0-3.3V als er stroom spanning is.
Sorry, kon het niet laten :angel:

Ik denk dat een load van 500mA niet normaal is, want dan zul je dat apart moeten voeden, maar 100mA is misschien wel reel (wat led's, Canbus interface etc).
Mwa, gewoon zorgen dat je die als eerste uit zet. Of nog beter, die WEL uit de DCDC voeden die niet aan de buffer hangt :) Dan gaan die gewoon al uit als de spanning weg valt :) Dan heb je de volle buffer tot je beschikking om de waardes weg te schrijven.

Kortom er is vermoedelijk 200mSec om wat naar EEPROM te dumpen als de stroombuffer 10000uF is. Kortom tijd om dat ook eens te gaan meten.
Dus ik denk als je een beetje nadenkt hoe je het aansluit dat je met 220uF of 470uF er al wel bent. Let wel dat je tijd STERK afhangt van de gebruikte voedingsspanning.

Het blijkt dat je de condensator ook tijd moet geven om op te laden.
Hier moest ik wel om gniffelen ;D (niet slecht bedoelt hoor!) Maar juist omdat je eerst zo veel moeite gedaan hebt om een schakeling te bouwen om de condensator traag op te laden ;)

Goed, weer aan het werk  :angel: Zou toch ook eens wat Arduino's op me werk neer moeten leggen ;D

En ja, als je niet mega veel data hebt en deze ook niet super veel aanpast kan cyclisch schrijven ook prima :) Elke keer wegschrijven vond ik net iets te twijfelachtig met hoe lang ik hoop dat een decoder blijft werken, ook bij intensief gebruik. Ja, we hebben het over jaren intensief gebruik maar toch.


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: MdBruin op 22 augustus 2019, 16:45:47
Als je daar echt bezorgd over bent, waarom dan geen losse chip/sd kaart aan de arduino hangen en daarop laten schrijven? Daarnaast kan je de eerder genoemde truc gebruiken door alleen bij een wijziging te laten schrijven.
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 22 augustus 2019, 18:02:58
Dag Timo
bedankt voor je opmerkingen, daar kan ik wel wat mee.
Je kan nog een beetje meer efficientie halen door R1 aan de andere kant van D1 aan te sluiten of door D2 te laten vallen. Laadt je condensator weer 0,7V meer op.
Goed idee, dat ga ik proberen.

Ik zou ook niet de moeite nemen de spanning naar de Arduino via een DCDC te sturen. Zeker kijkende naar die jij gebruikt, deze neemt al een aardig aandeel van het vermogen. Gewoon aan Vin hangen.
Dat is ook het proberen waard. Dan gebruik je de voltage regulator op de arduino. Alleen ik heb nog al wat ander spul dat onder de baan hangt - servo's, relais en een stappenmotor - die ook 5V nodig hebben, dus daar heb ik echt wel deze convertors voor nodig.

Als je de referentie spanning op 1,1V zet (zit intern in de Arduino), heb je daar geen alst van. Kan dus ook helpen voor de echte detectie. Ook al, zoals aangegeven, zou ik zelf daarvoor analoog lezen laten varen.
Dit begrijp ik niet helemaal. ik weet dat je de referentie spanning kunt veranderen, maar wat ik er van begrijp is dat dan ook de maximale spanning die je kunt meten, begrenst wordt door de referentie spanning.

Je zou voor de grap eens de datasheet moeten lezen  ;) ;D Atmel garandeert het maar tot 4,5V (paragraaf 28.4).
Daarom is het een datasheet, dat heeft met juridische aansprakelijkheid te maken. Iets te vaak zelf mee te maken gehad en dan kwam de pakkenbrigade weer langs zeuren over wat er niet in de specs mocht.
Maar ondertussen kwam ik wel diverse artikelen op Internet tegen, die aangaven dat bij 16mHz 4v safe is. Ik zie zelf dat het er op lijkt dat de UNO blijft functioneren tot 2.8V. Met marge 3V.

Dus ik denk als je een beetje nadenkt hoe je het aansluit dat je met 220uF of 470uF er al wel bent. Let wel dat je tijd STERK afhangt van de gebruikte voedingsspanning.
Dat weet ik niet, ik heb ook getest met 660uF maar dan wordt de beschikbare tijd wel erg kort.

En ja, als je niet mega veel data hebt en deze ook niet super veel aanpast kan cyclisch schrijven ook prima :) Elke keer wegschrijven vond ik net iets te twijfelachtig met hoe lang ik hoop dat een decoder blijft werken, ook bij intensief gebruik. Ja, we hebben het over jaren intensief gebruik maar toch.
Dat is wat ik nu in de wisselcontroller doe, die checkt om de minuut of de wisselstanden gewijzigd zijn, en als dat het geval is schrijft hij dat naar de EEPROM. Dat schrijven gebeurd ook cyclish. de data wordt iedere keer naar een nieuwe locatie geschreven en aan het eind van de beschikbare ruimte in de EEPROM begint het weer aan het begin. Ik heb daar een C++ klasse voor geschreven die dit regelt. Dat werkt goed, alleen wijzigingen tijdens de laatste minuut ben ik dan kwijt. Maar dat wordt dan wel weer door Koploper gecorrigeerd.
Maar ik kom nu in een situatie dat er meerdere Arduino's komen die hun staat moeten bewaren gekoppeld met het feit dat ik met stepdown convertors ga werken, dus vandaar de poging om de powerdown situatie te herkennen en daar nog op te reageren.

groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 22 augustus 2019, 20:24:41
Alleen ik heb nog al wat ander spul dat onder de baan hangt - servo's, relais en een stappenmotor - die ook 5V nodig hebben, dus daar heb ik echt wel deze convertors voor nodig.
Maar dan voedt je die toch gewoon via de DCDC? Maar die dingen hebben geen "backup power" nodig (en dus de DCDC dus ook niet). Die mogen gelijk uit gaan.

Dit begrijp ik niet helemaal. ik weet dat je de referentie spanning kunt veranderen, maar wat ik er van begrijp is dat dan ook de maximale spanning die je kunt meten, begrenst wordt door de referentie spanning.
Klopt, maar dat is nu met het meten van het 9-12V signaal toch ook geen probleem ;) Gewoon iets hogere ratio toepassen voor de spanningsdeler ;D

Daarom is het een datasheet, dat heeft met juridische aansprakelijkheid te maken.
Natuurlijk houden ze een slag om de arm en zijn die waardes voor het worst-kaas scenario (lage temp etc). Maar probleem is dat de Arduino ook niet opeens stopt met werken, maar fouten gaat maken. Wat dus bijvoorbeeld kan leiden tot corruptie van je EEPROM waardes. Dus tot 4,5V als je in spec wilt blijven maar zou zelf eigenlijk gewoon de BOD op 4,3V zetten. Tot daar zou ik het nog wel vertrouwen.

Dat is wat ik nu in de wisselcontroller doe, die checkt om de minuut of de wisselstanden gewijzigd zijn, en als dat het geval is schrijft hij dat naar de EEPROM. Dat schrijven gebeurd ook cyclish. de data wordt iedere keer naar een nieuwe locatie geschreven en aan het eind van de beschikbare ruimte in de EEPROM begint het weer aan het begin. Ik heb daar een C++ klasse voor geschreven die dit regelt. Dat werkt goed, alleen wijzigingen tijdens de laatste minuut ben ik dan kwijt. Maar dat wordt dan wel weer door Koploper gecorrigeerd.
Nauw, als je het hele EEPROM gebruikt kan je het ook makkelijk met iedere wijziging opslaan ;)

Mag ik vragen hoe je bijhoudt waar in EEPROM je bent gebleven?

Dat weet ik niet, ik heb ook getest met 660uF maar dan wordt de beschikbare tijd wel erg kort.
Ik ga eens kijken of ik ook nog wat testjes uit kan voeren :) Maar de videokaart in mijn PC heeft zojuist besloten dat de ventilator alleen nog maar op 100% wil draaien ::) Ik heb dus een beetje het gevoel of ik naast de startbaan van Schiphol zit :-\


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 22 augustus 2019, 21:07:07
Even snelle update :)

Ik was even benieuwd naar hoe lang een EEPROM write duurt. Volgens de datasheet 3,3ms (tabel 7-2). Voor microcontroller begrippen dus aardig lang maar voor het hebben van power valt dat wel mee. Ook even snel getest, en ik kom inderdaad ook op 3,3ms uit :)

Maar waar ze in het EEPROM hoofdstuk dus ook gelijk voor waarschijven is naar EEPROM schrijven met te lage spanning. Wel iets om op te letten dus.


Timo
Titel: Re: Voltage conversie en power down detectie
Bericht door: meino op 22 augustus 2019, 21:51:05
Dus tot 4,5V als je in spec wilt blijven maar zou zelf eigenlijk gewoon de BOD op 4,3V zetten. Tot daar zou ik het nog wel vertrouwen.
Hoe zet je de BOD aan? Alles wat ik kan vinden doet dat via de Bootloader. en het lijkt er op dat je dat niet in de schets kan regelen. Maar misschien zie ik dat verkeerd. Overigens in mijn testje met 100mA extra load (met de wijziging voor diode D1) heb ik 750mSec de tijd voordat de voeding onder de 4.5V duikt. Kortom tijd zat om het een en ander te regelen.

Citaat
Mag ik vragen hoe je bijhoudt waar in EEPROM je bent gebleven?
In de huidige implementatie moet ik de standen van 12 wissels bijhouden. Dat doe ik in 2 bytes. 12bits bevatten de stand en de laatste 4 bits zijn zero. Ik houd een index bij van waar de volgende schrijfopdracht kan plaatsvinden. Na iedere schrijfopdracht verhoog ik die met 2. Als de index groter is dan de grootte van het EEPROM gaat de index terug naar 0 (het begin). De truc is, dat ik in werkelijkheid 3 bytes wegschrijf, 2 bytes met data en een byte X"FF". Die laatste byte wordt iedere keer weer overschreven omdat ik de index met 2 ophoog. Dus de waarde X"FF" komt maar 1 keer voor in het EEPROM. Bij het starten van de Arduino initialiseer ik die index, door het EEPROM uit te lezen totdat ik de X"FF" weer tegenkom en die positie is dan de nieuwe waarde van de index.
Overigens realiseer ik me net dat hier een potentieel lek in zit, als de eerste 8 wissels op afbuigend staan omdat de eerste byte dan ook X"FF" bevat. Die kans is heel klein, maar ik moet toch nog maar eens naar de code kijken. Ik moet dus in het data byte maximaal 7 bits gebruiken en de eerste bit (of de laatste) altijd op 0 houden zodat het onderscheid tussen data- en stopbyte een-eenduidig gemaakt kan worden.
Overigens, als ik uitga van de 100K schrijfopdrachten dat een enkele EEPROM cel kan hebben, kan ik op de Mega met 4096 bytes EEPROM waarschijnlijk voor de rest van mijn leven toe. Maar ik vond dit een leuk probleempje om op te lossen.

Nog even een update. De gewijzigde layout met de wijziging van positie van Diode D1 leverde me een 100-150mSec extra tijd op, dus dat was dus zeker een goede wijziging.

Groet Meino
Titel: Re: Voltage conversie en power down detectie
Bericht door: Timo op 22 augustus 2019, 22:50:33
Je methode is inderdaad slim. Maar zou het dan even 6 om 6 splitsen over twee bytes. Dan is 0xFF altijd een veilige marker.

En ja, om BOD aan te zetten moet je inderdaad de fuses zetten. Maar met een programmer en MiniCore als board is dat zo gedaan. Voor mijn Pro Mini's heb ik daar ooit snel op experimenteerprint een jig voor gemaakt met een tweede Pro Mini als programmer. Maar wat ik al zei, eigenlijk stom van Arduino om BOD niet standaard op 4,3V te hebben :-\

Snel even een testje afgerond:
Zonder de led van de module te halen, 470uF condensator en beginnen met 12V (geen diode) heb je 130ms tot je onder de 4,3V duikt. In die tijd kan je 39 EEPROM bytes schrijven. Voor veel toepassingen dus prima.

Haal ik de power led eraf is het zelfs 170ms :)


Timo