Doel:€250.00
Donaties:€50.00

Per saldo:€-200.00

Steun ons nu!

Laatst bijgewerkt
op 03-01-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Zoekfunctie ? door henk
Vandaag om 09:18:44
welk jaar ging Marklin OVP voor wagons van blauw naar wit door Pauldg
Vandaag om 08:58:21
Bouw van materieel 40 treinstellen door Pauldg
Vandaag om 07:52:09
De (3d) knutsels van Ronald. door Matthijs van Heijningen
Vandaag om 07:51:56
NS 8400 van Werps door MathynK
Vandaag om 07:05:15
U-vorm beperkte ruimte (H0 C-rails) door hmmglaser
28 maart 2024, 23:42:04
Onlangs gespot - gefotografeerd, de foto's door GerardvV
28 maart 2024, 23:37:18
US diorama in H0 door Wim Vink
28 maart 2024, 23:31:57
Al mijn goede ideeën... door bask185
28 maart 2024, 23:12:12
Gebruik je Arduino zonder te "programmeren" ;) door bask185
28 maart 2024, 22:51:58
21 april Het stoomgenootschap door bloemenvelden door Seinhuis
28 maart 2024, 22:46:29
7 april De Karel on tour door Seinhuis
28 maart 2024, 22:44:31
Raadplaatje door Magic
28 maart 2024, 22:23:21
LokSound 4 decoders, files verbeteren (voor Roco b.v. TEE RAm, NS2400, etc) door Biesje
28 maart 2024, 22:06:44
Geluid NS Mat'46 vs NS Mat'54 door Rob Bennis
28 maart 2024, 21:54:12
Engelse wagon uit 1930 opgegraven in Antwerpen door willem2
28 maart 2024, 21:52:45
NS GLY omspuiten en opschriften door Rob Ellerman
28 maart 2024, 21:45:55
De Hondsrugbaan door cor_b
28 maart 2024, 21:40:07
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
28 maart 2024, 21:22:18
Mijn eerste H0-modeltreinbaan in aanbouw door puntenglijder
28 maart 2024, 21:15:13
30 maart Modelspoorbeurs Houten & HCC Kennisdag door basjuh1981
28 maart 2024, 20:54:43
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door 1200blauw
28 maart 2024, 20:32:41
Welke Vallejo kleur voor drijfstangen van een DB stoomlocomotief? door Ronald69
28 maart 2024, 20:00:39
Toon hier je nieuwe (model-) spooraanwinst(en)... door arnout
28 maart 2024, 19:53:27
Punt- en hartstukken door Klaas Zondervan
28 maart 2024, 19:41:21
MARDEC, de Multifunctionele ARduino dcc DECoder. door bord4kop
28 maart 2024, 19:34:37
Piko NS 2015 stroomafname probleem door Ben
28 maart 2024, 19:08:30
Bauarbeiten im gange door ruudns
28 maart 2024, 18:50:26
HSM D1715 door vpeters1984
28 maart 2024, 17:34:25
Beekdaelen in H0 door Stieven76
28 maart 2024, 17:17:41
  

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

Patrick Smout

  • Offline Offline
  • Berichten: 416
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
Met vriendelijk groeten,

Patrick Smout

meino

  • Offline Offline
  • Berichten: 2088
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
De CanBus komt naar Kranenberg

meino

  • Offline Offline
  • Berichten: 2088
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
De CanBus komt naar Kranenberg

meino

  • Offline Offline
  • Berichten: 2088
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
De CanBus komt naar Kranenberg

NL-modelspoor

  • Offline Offline
  • Berichten: 988
    • 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: 1024
    • 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: 4656
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: 63
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: 2088
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
De CanBus komt naar Kranenberg

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
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: 4656
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: 2088
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
De CanBus komt naar Kranenberg

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
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