Doel:€250.00
Donaties:€92.50

Per saldo:€-157.50

Steun ons nu!

Laatst bijgewerkt
op 28-08-2019
Algemeen

De stichting

Recente berichten

Frans bietenbaantje in 009 (en parallel in 0e) door sdz1976
Vandaag om 00:25:46
Stotterend geluid uit speaker door Sven
Vandaag om 00:00:05
Digikeijs DR5000 Centrale, productbeschrijving door MdBruin
15 september 2019, 23:29:15
ESU 2019 door sneek
15 september 2019, 23:18:51
Terschellinger Spoor door KNed
15 september 2019, 23:05:29
Projekt 083-338 door 44
15 september 2019, 22:50:07
Onlangs gespot - gefotografeerd, de foto's door GerardvV
15 september 2019, 22:41:44
Nederlandse Smalspoormodelbouwdagen Katwijk door Peter Soonius
15 september 2019, 22:36:17
BNLS-Werkspoor - ICE-3 koppen bij elkaar door nighttrain1
15 september 2019, 22:33:51
Show je realistische treinsamenstelling door Martijn de Kuiper
15 september 2019, 22:31:06
Structon 1600 batterij werktrein? door dennie
15 september 2019, 22:28:17
Brawa 2019 door EN446
15 september 2019, 22:14:47
Bröckenbahn door Frank 123
15 september 2019, 22:07:02
BNLS-Module: La vie...Cote d'Azur door Marc tramt
15 september 2019, 22:05:09
Brawa H0 1180 "Schiebebühne" / Transfer Table door Ronald Halma
15 september 2019, 21:54:26
Landerbahn en Reichsbahn locomotieven. door wob
15 september 2019, 21:52:27
Trix dealer, zijn deze er nog in Nederland? door spock
15 september 2019, 21:49:30
Hoekdiorama door JurS
15 september 2019, 21:48:33
Roco 2019 door Falcon10
15 september 2019, 21:37:31
Toon hier je nieuwe (model-) spooraanwinst(en)... door mardig23
15 september 2019, 21:29:33
Marklin K-rails voor DC Trix baan bruggen? door ArjanB
15 september 2019, 21:29:21
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
15 september 2019, 21:27:17
Vaak gestelde vraag: 2- of 3-rail? door dh3201
15 september 2019, 20:55:35
Neutraal Moresnet in H0 door Bert V
15 september 2019, 20:21:45
Update: baan in de tropen door MOVisser
15 september 2019, 19:14:01
VillaAlbaBaan Ho Afm 2.70 x 1.55m Marklin C-rails door Juroen
15 september 2019, 18:26:20
Roco De Hoop Golfkarton wagen, Echt of fake. door edwin1974
15 september 2019, 18:13:42
Seuthe 10 in BR 50 008 icm Lopiv4 door Coliebollie
15 september 2019, 18:10:02
Overweg belsignaal koppelen aan overweglampen? door ATB
15 september 2019, 18:07:03
NS 1600 in Frankrijk door Lokführer Bas
15 september 2019, 17:58:25
  

Auteur Topic: Voltage conversie en power down detectie  (gelezen 3458 keer)

Patrick Smout

  • Offline Offline
  • Berichten: 275
Re: Voltage conversie en power down detectie
« Reactie #45 Gepost 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

meino

  • Offline Offline
  • Berichten: 482
Re: Voltage conversie en power down detectie
« Reactie #46 Gepost 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
A clean desk is a sign of an empty mind

Kranenberg

meino

  • Offline Offline
  • Berichten: 482
Re: Voltage conversie en power down detectie
« Reactie #47 Gepost 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;



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;

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
« Laatst bewerkt op: 21 augustus 2019, 22:05:49 door meino »
A clean desk is a sign of an empty mind

Kranenberg

meino

  • Offline Offline
  • Berichten: 482
Re: Voltage conversie en power down detectie
« Reactie #48 Gepost 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
« Laatst bewerkt op: 22 augustus 2019, 08:53:06 door meino »
A clean desk is a sign of an empty mind

Kranenberg

NL-modelspoor

  • Offline Offline
  • Berichten: 493
    • Windhoven
Re: Voltage conversie en power down detectie
« Reactie #49 Gepost 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?
Johan

NTeering

  • Offline Offline
  • Berichten: 826
    • ARduino Controlled MOdel RAilway
Re: Voltage conversie en power down detectie
« Reactie #50 Gepost 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) 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

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4480
Re: Voltage conversie en power down detectie
« Reactie #51 Gepost 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
Verzonden vanaf mijn desktop met Firefox

MdBruin

  • Offline Offline
  • Berichten: 24
Re: Voltage conversie en power down detectie
« Reactie #52 Gepost 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.
Groeten, Marius

meino

  • Offline Offline
  • Berichten: 482
Re: Voltage conversie en power down detectie
« Reactie #53 Gepost 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
A clean desk is a sign of an empty mind

Kranenberg

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4480
Re: Voltage conversie en power down detectie
« Reactie #54 Gepost 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
Verzonden vanaf mijn desktop met Firefox

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4480
Re: Voltage conversie en power down detectie
« Reactie #55 Gepost 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
Verzonden vanaf mijn desktop met Firefox

meino

  • Offline Offline
  • Berichten: 482
Re: Voltage conversie en power down detectie
« Reactie #56 Gepost 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
« Laatst bewerkt op: 22 augustus 2019, 21:54:33 door meino »
A clean desk is a sign of an empty mind

Kranenberg

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4480
Re: Voltage conversie en power down detectie
« Reactie #57 Gepost 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
Verzonden vanaf mijn desktop met Firefox