• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Zeitgesteuertes im Wald mit Tiny AVR + RTC Chip

OP
K

KrasserMann

Geocacher
Danke sehr, das wars!

Die Chips laufen nun wieder, mal schaun was die stromaufnahme bei 128khz so treibt
 

Windi

Geoguru
Wenn man die Chips mit 128 kHz oder 16 kHz programmiert dauert es immer elends lang. Oft funktioniert es dann auch gar nicht beim ersten mal. Und wenn ein Handy in der Nähe ist klappt es meistens gar nicht.
Ich lasse dann im Programm immer einen hohen Crystal-Wert stehen und programmiere damit die Chips. Das klappt mit der hohen Frequenz meistens beim ersten Versuch. Erst wenn das Programm läuft ändere ich nachträglich die Fusebits.
Das klappt aber nur wenn man keine wait- oder waitms-Befehl im Programm hat. Für diese Befehle wird nämlich der Crystal-Wert herangezogen damit der Compiler die Anzahl der "Leerschleifen" richtig berechnen kann. Für solche Fälle verwende ich eh keine wait-Befehle sondern versetze den Prozessor in den Schlafmodus und lasse ihn über den Watchdog-Timer erwachen. Das funktioniert unabhängig von der eingestellten Taktfrequenz immer gleich.
 
OP
K

KrasserMann

Geocacher
Hmmmm, so, habe das mal getestet, irgendwie bekomme ich den tiny nicht auf vernünftige werte

Er läuft nun mit 128khz an 5V macht nix anderes als 20ms LED an, dann aus und Powerdown für 8 Sekunden bis der Watchdog zuschlägt.

Code:


Code:
$regfile = "attiny2313.dat"                                 ' specify the used micro
$crystal = 128000                                           ' used crystal frequenc


$hwstack = 6
                                                 ' default use 32 for the hardware stack
Config Portb = &B00000001
Portb = &B111111110

Stop Ac


Config Watchdog = 4096



   Portb.0 = 1
   Waitms 20
   Portb.0 = 0


   Start Watchdog
   Powerdown

End

Blöderweise verbraucht der auch im powerdown noch 3mA ????

Lt. Datenblatt s.193 sollte der Powerdown Strom mit Watchdog irgendwo bei 15uA liegen???

Wieso geht das nicht? Jemand eine Idee?

Danke

EDIT: Ich hab statt Powerdown mal IDLE ausprobiert, weggelassen habe ich diesen Befehl auch. Die Stromaufnahme ist immer gleich :/
 

Winfried

Geocacher
Schau mal, ob deine Schaltung irgendwo Strom zieht, z.B. über einen Portpin, der falsch geschaltet ist. Alle Portpins müssen so geschaltet sein, dass da nichts mehr rein oder rausfließt. Vielleicht auch sonst noch irgendwelche Stromverbraucher?

Also bei 128KHz sollte man im Idle um die 100uA haben, mehr darf der Prozessor da nicht ziehen.

Übrigens: 5 V als Stromversorgung ist nicht günstig, was den Verbrauch angeht, 2.5-3 Volt sind da wesentlich günstiger und oft auch machbar.
 

radioscout

Geoking
KrasserMann schrieb:
Blöderweise verbraucht der auch im powerdown noch 3mA ????

Lt. Datenblatt s.193 sollte der Powerdown Strom mit Watchdog irgendwo bei 15uA liegen???

Wieso geht das nicht? Jemand eine Idee?
Zieh mal das IC aus der Fassung. Bleibt die hohe Stromaufnahme?
Evtl. ein verpolter Elko?
 

stonewood

Geowizard
Da fehlt IMHO mindestens noch 'stop ADC', den Rest findet man vielleicht irgendwo im Datenblatt. Man kann übrigens auch noch Pullups abschalten, I/O-Buffer deaktivieren und weitere feinheiten.

Oh, fehlt da nicht sowieso noch die Schleife? Das hier heißt doch ganz konkret daß der Tiny nach 8s im 'end' landet - ohne Powerdown, also im standardbetrieb?
 
OP
K

KrasserMann

Geocacher
Danke für die Tips


Es gibt an dem Chip keine weiter beschaltung, nur die LED und +5V und GND

- Daher auch bei gezogenem Chip 0mA ;)

- Chip ohne LED 3mA

- Programm mit DO LOOP Schleife -> 3mA

Das einzige was etwas gebracht hat ist die Spannung, bei 3V nur noch 0,01mA für den Tiny im Poweroff mode.

Das dumme ist das die RTC 5V braucht, sonst redet sie nicht mehr mit dem Tiny :((

Abhilfe wäre wohl die DS1338-3 dafür kann ich leider keine Quelle finden.
 

stonewood

Geowizard
Hmm. Welchen Typ hast Du genau? Den V-Typ, oder den ohne? Der V hat einen Step-Up-Regler - mag sein daß der bei 5V zusätzlich Strom verbrät? Vielleicht hilft Dir ja ein standardtyp - wenn Du eh schon 5v hast braucht da ja auch kein stepup mehr drin sein.
 

Windi

Geoguru
Der 2313 hat keinen ADC also bringt "stop adc" nix.
Man kann noch den Analogkomperator aussschalten mit "stop ac".

Funktioniert das mit dem Watchdog so auch?
Bei mir war es damals so dass man das watchdog-register händisch setzen musste.
Schau Dir am Besten mal im Datenblatt des 2313 an welche Weise die Bits das WDTCR-Register beeinflussen.

Code:
Wdtcr = &B11010011               'Watchdog definieren: 0.125 Sekunden, Interrupt auslösen, kein Reset

Enable Interrupts                'Interrupts freigeben 

Stop Ac                          'Analog-Komparator abschalten, um Strom zu sparen

Den Watchdog-Timer aktiviert man dann mit
Code:
Reset Watchdog
Powerdown
 

Winfried

Geocacher
Also der V-Type hat keinen Step-Up Regler, das ist Unsinn. Er ist identisch mit dem Standard-Typ, wird nur auf 1.8 Volt vermessen, ob der dort also noch sicher funktioniert. Die Chips sind identisch.

Sehr merkwürdig erscheint mir die Stromsteigerung: Bei 3 Volt nur 10 uA und bei 5 V dann ganze 3 mA??? Bei gleicher Software? Da kann was gewaltig nicht stimmen.
 
OP
K

KrasserMann

Geocacher
Winfried schrieb:
Also der V-Type hat keinen Step-Up Regler, das ist Unsinn. Er ist identisch mit dem Standard-Typ, wird nur auf 1.8 Volt vermessen, ob der dort also noch sicher funktioniert. Die Chips sind identisch.

Sehr merkwürdig erscheint mir die Stromsteigerung: Bei 3 Volt nur 10 uA und bei 5 V dann ganze 3 mA??? Bei gleicher Software? Da kann was gewaltig nicht stimmen.

Is leider anscheind in meinem fall so, habe schon 3 chips getestet immer das gleiche.

Interressanter weise habe ich das gefühl das der Powerdown Befehl gar nix tut.

Mit oder ohne das gleiche an Sstromaufnahme.

Leider fehlt mir gerad was die zeit (Renovieren geht vor), aber werd da mal die register ansehen, vielleicht mach bascom da ja murks :/
 

stonewood

Geowizard
KrasserMann schrieb:
Winfried schrieb:
Also der V-Type hat keinen Step-Up Regler, das ist Unsinn. Er ist identisch mit dem Standard-Typ, wird nur auf 1.8 Volt vermessen, ob der dort also noch sicher funktioniert. Die Chips sind identisch.

Sehr merkwürdig erscheint mir die Stromsteigerung: Bei 3 Volt nur 10 uA und bei 5 V dann ganze 3 mA??? Bei gleicher Software? Da kann was gewaltig nicht stimmen.

Is leider anscheind in meinem fall so, habe schon 3 chips getestet immer das gleiche.

Hups, wo hatte ich den Step-Up nur her? Dachte das funktioniert so ... egal, die Tinys haben sowas tatsächlich nicht.

Hab selbst noch einen 2313V hier liegen, vielleicht kann ich mit dem noch was experimentieren. Vermutlich kommt dein Tiny gar nicht zum Powerdown - falsche Registerkonfig?
 
OP
K

KrasserMann

Geocacher
stonewood schrieb:
KrasserMann schrieb:
Winfried schrieb:
Also der V-Type hat keinen Step-Up Regler, das ist Unsinn. Er ist identisch mit dem Standard-Typ, wird nur auf 1.8 Volt vermessen, ob der dort also noch sicher funktioniert. Die Chips sind identisch.

Sehr merkwürdig erscheint mir die Stromsteigerung: Bei 3 Volt nur 10 uA und bei 5 V dann ganze 3 mA??? Bei gleicher Software? Da kann was gewaltig nicht stimmen.

Is leider anscheind in meinem fall so, habe schon 3 chips getestet immer das gleiche.

Hups, wo hatte ich den Step-Up nur her? Dachte das funktioniert so ... egal, die Tinys haben sowas tatsächlich nicht.

Hab selbst noch einen 2313V hier liegen, vielleicht kann ich mit dem noch was experimentieren. Vermutlich kommt dein Tiny gar nicht zum Powerdown - falsche Registerkonfig?


Habe die Watchdog sache von Windi mal ausprobiert, funktioniert ebenso wie meine Lösung mit den Bascom Befehlen.

Was den Powerdown angeht, fänd ich super wenn das mal wer nachstellen könnte. hab fast den ganzen samstag daran gesessen, langsam hab ich das gefühl ich bin zu doof dazu :/
 

Portitzer

Geocacher
Interessante Sache, in unserer Ecke gibt es einen ähnlichen Cache, der ist aber mit DCF77-Steuerung.
Es gibt übrigens noch andere RTC's mit I2C-Bus. Guck Dir mal den hier an:

http://www.nxp.com/#/pip/cb=[type=product,path=50807/53497,final=PCF8583_5]|pip=[pip=PCF8583_5][0]

Laut dem Datenblatt funktioniert die Datenübertragung auf dem Bus schon ab 2,5V. Außerdem hat er auch noch 240 Bytes RAM drin. Da lassen sich prima die Schaltzeiten drin ablegen.

Viele Grüße
Kurt

PS: Irgendwie zerhackt das Board den Link... Mist! Kriegt man das irgendwie anders hin?!
 

stonewood

Geowizard
KrasserMann schrieb:
Was den Powerdown angeht, fänd ich super wenn das mal wer nachstellen könnte. hab fast den ganzen samstag daran gesessen, langsam hab ich das gefühl ich bin zu doof dazu :/

So, mal nachgestellt:
- Tiny 13v: 7,6 uA@5V, 4,7uA@2,78V
- Tiny 2313V: 7,6uA@5V, 4,7uA@2,78V

Code:
$regfile = "ATtiny2313.DAT"
$crystal = 128000                                           'Frequenz des internen Oszillators
$hwstack = 8                                                'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen
Config Portb = &B00001010                                   'Pinb.3&1 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = 0                                                   'Ausgänge auf Low setzen
Stop Ac                                                     'Analog-Komparator abschalten, um Strom zu sparen
Stop Adc
' Wdtcr = &B11010011                                          'Watchdog definieren: 0.125 Sekunden, Interrupt auslösen, kein Reset
Wdtcr = &B11110001                                          'Watchdog definieren: 8 Sekunden, Interrupt auslösen, kein Reset
Enable Interrupts                                           'Interrupts freigeben

' test LEDs
Portb.3 = 1
Reset Watchdog
Powerdown
Portb.3 = 0
Portb.1 = 1
Reset Watchdog
Powerdown
Portb.1 = 0
Wait 1
'Start program

Do
   Reset Watchdog
   Powerdown                                                
Portb.3 = 1
Portb.1 = 1
Wait 1
Portb.3 = 0
Portb.1 = 0
Loop

End

für den Tiny2313v,
Code:
$regfile = "ATtiny13.DAT"
und den obigen Rest für den tiny13V.

Hab an PB3 jeweils eine LED angeschlossen: 8s powerdown-Strom, dann 1s (LED leuchtet, Tiny aufgeweckt) jenseits von gut und böse (>200uA). Beide auf 128 Khz (beim 2313 heißt das 'watchdog clock'), clockdiv aus.

Nun die Gegenfrage: Was macht obiges Programm bei Dir? Wie stehen die Fuses?
 
OP
K

KrasserMann

Geocacher
stonewood schrieb:
KrasserMann schrieb:
Was den Powerdown angeht, fänd ich super wenn das mal wer nachstellen könnte. hab fast den ganzen samstag daran gesessen, langsam hab ich das gefühl ich bin zu doof dazu :/

So, mal nachgestellt:
- Tiny 13v: 7,6 uA@5V, 4,7uA@2,78V
- Tiny 2313V: 7,6uA@5V, 4,7uA@2,78V

Code:
$regfile = "ATtiny2313.DAT"
$crystal = 128000                                           'Frequenz des internen Oszillators
$hwstack = 8                                                'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen
Config Portb = &B00001010                                   'Pinb.3&1 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = 0                                                   'Ausgänge auf Low setzen
Stop Ac                                                     'Analog-Komparator abschalten, um Strom zu sparen
Stop Adc
' Wdtcr = &B11010011                                          'Watchdog definieren: 0.125 Sekunden, Interrupt auslösen, kein Reset
Wdtcr = &B11110001                                          'Watchdog definieren: 8 Sekunden, Interrupt auslösen, kein Reset
Enable Interrupts                                           'Interrupts freigeben

' test LEDs
Portb.3 = 1
Reset Watchdog
Powerdown
Portb.3 = 0
Portb.1 = 1
Reset Watchdog
Powerdown
Portb.1 = 0
Wait 1
'Start program

Do
   Reset Watchdog
   Powerdown                                                
Portb.3 = 1
Portb.1 = 1
Wait 1
Portb.3 = 0
Portb.1 = 0
Loop

End

für den Tiny2313v,
Code:
$regfile = "ATtiny13.DAT"
und den obigen Rest für den tiny13V.

Hab an PB3 jeweils eine LED angeschlossen: 8s powerdown-Strom, dann 1s (LED leuchtet, Tiny aufgeweckt) jenseits von gut und böse (>200uA). Beide auf 128 Khz (beim 2313 heißt das 'watchdog clock'), clockdiv aus.

Nun die Gegenfrage: Was macht obiges Programm bei Dir? Wie stehen die Fuses?


Danke fürs testen, werde heute oder morgen das Programm mal ausprobieren, bin gespannt. nur ein "STOP ADC" bekomm ich nicht hin, bascom kompiliert nicht da der 2313 keinen ADC hat???

Werde rückmeldung geben-

Martin
 
OP
K

KrasserMann

Geocacher
Portitzer schrieb:
Interessante Sache, in unserer Ecke gibt es einen ähnlichen Cache, der ist aber mit DCF77-Steuerung.
Es gibt übrigens noch andere RTC's mit I2C-Bus. Guck Dir mal den hier an:

http://www.nxp.com/#/pip/cb=[type=product,path=50807/53497,final=PCF8583_5]|pip=[pip=PCF8583_5][0]

Laut dem Datenblatt funktioniert die Datenübertragung auf dem Bus schon ab 2,5V. Außerdem hat er auch noch 240 Bytes RAM drin. Da lassen sich prima die Schaltzeiten drin ablegen.

Viele Grüße
Kurt

PS: Irgendwie zerhackt das Board den Link... Mist! Kriegt man das irgendwie anders hin?!


Danke für den Link, der Chip hat leider kein Battery Backup :/
 

Portitzer

Geocacher
Richtig, Anschlüsse für ein Batterie-Backup hat der nicht, aber wo ist das Problem? Du betreibst das ganze doch sowieso mit einer Batterie. Gut, wenn Du bei einem Batteriewechsel die Zeit nicht verlieren willst, wirds problematisch. Aber was hindert Dich daran, eine zweite (Knopf-)Zelle mit einer Diode entkoppelt als Backup an den Chip anzuschließen? Die Uhr im Chip arbeitet ab 1V, da ist der Spannungsverlust durch die Diode nicht so dramatisch.
Außerdem hat die Uhr eine tolle Alarmfunktion (Timer!), die könntest Du nutzen, um den AVR tagsüber auch länger als die maximal 8s der Watchdog schlafen zu legen.
Der Aufwand ist mit einer Diode also nicht sehr groß, dafür kannste auf die aufwändige 5V Stromversorgung verzichten.

Gruß
Kurt
 
Oben