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

Reaktives Licht mit Atmel AVR

Portitzer

Geocacher
Mit dem Fusebit wird die interne Taktfrequenz auf 128kHz eingestellt. Und wenn ich micht recht erinnere, dann ist das Fusebit, dass den Vorteiler Taktfrequenz/8 setzt, voreingestellt. Das bedeutet, dass der Tiny dann mit 16kHz Takt arbeitet. Soweit zur Hardware.

Dem BASCOM-Compiler muss man natürlich auch mitteilen, mit welchem Takt die Hardware läuft, damit er Zeitschleifen (Wait, Waitms, etc.) die unabhängig von Hardwaretimern arbeiten, richtig berechnen kann.

Wenn ich also recht habe und das Fusebit für den Vorteiler per Voreinstellung gesetzt war, dann läuft der Tiny nur mit 16kHz und in diesem Zustand kann er nicht mehr richtig mit der ISP-Schnittstelle programmiert werden, bzw. nur noch so wie von Windi beschrieben...

Gruß
Kurt
 

thomas_st

Geowizard
Portitzer schrieb:
Mit dem Fusebit wird die interne Taktfrequenz auf 128kHz eingestellt. Und wenn ich micht recht erinnere, dann ist das Fusebit, dass den Vorteiler Taktfrequenz/8 setzt, voreingestellt. Das bedeutet, dass der Tiny dann mit 16kHz Takt arbeitet. Soweit zur Hardware.
So ist es - dass weiß ich sicher - leider :roll:

Portitzer schrieb:
Wenn ich also recht habe und das Fusebit für den Vorteiler per Voreinstellung gesetzt war, dann läuft der Tiny nur mit 16kHz und in diesem Zustand kann er nicht mehr richtig mit der ISP-Schnittstelle programmiert werden, bzw. nur noch so wie von Windi beschrieben...
Na windi hatte geschrieben, dass in diesem Zustand der Proz zwar noch mit Bascom und dem Parallelport-Programmer beschreibbar ist, aber nur mit großen Mühen.

Viele Grüße,
Thomas
 

waste1

Geocacher
Dass die Fusebits geändert werden, ist scheinbar ein immer wiederkehrendes Problem hier. Wenn aber Sleepmode und Watchdog verwendet werden, dann braucht man die Fusebits gar nicht ändern um trotzdem geringen Stromverbrauch zu haben. Ich lasse in meinen Reaktivlichtern die AVRs mit 500kHz laufen und habe nur 5µA Ruhestrom im Tagbetrieb und 6µA im Nachtbetrieb.

Für den mittleren Stromverbrauch ist es nämlich egal ob der Prozessor mit einem höheren Stromverbrauch schneller läuft, dafür aber kürzere Zeit oder mit niedrigerem Stromverbrauch langsamer läuft, dafür aber längere Zeit. Im Endeffekt kommt es aufs Selbe heraus.

Also lasst die Fusebits wie sie sind und setzt nur am Anfang die Taktfrequenz auf 500kHz und den Vorteiler für den ADC auf 2, dann habt ihr weniger Probleme und trotzdem geringen Stromverbrauch.

Gruß
Waste1
 

waste1

Geocacher
Jetzt ist mir noch was eingefallen. Ich verwende den ATtiny45 und der hat eine andere Taktfrequenz als der ATtiny13. Nicht dass sich einige am Kopf kratzen und sich fragen, wie kommt der auf 500kHz?

waste1 schrieb:
Ich lasse in meinen Reaktivlichtern die AVRs mit 500kHz laufen und habe nur 5µA Ruhestrom im Tagbetrieb und 6µA im Nachtbetrieb.
Das gilt für den ATtiny45. Beim ATtiny13 wären das dann 600kHz.

Hier nochmal zur Klarstellung den relevanten Bascom-Code im Vergleich zum Kochbuch Kapitel 5.2.

Code für ATtiny13:
Code:
$regfile = "ATtiny13.DAT"
$crystal = 600000                               'Frequenz des internen Oszillators
$hwstack = 28                                   'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen

Config Clockdiv = 16                           'ergibt 600kHz Clock
Config Adc = Single , Prescaler = 2            'ADC mit 300kHz getaktet, um Strom zu sparen

Code für ATtiny45:
Code:
$regfile = "ATtiny45.DAT"
$crystal = 500000                               'Frequenz des internen Oszillators

$hwstack = 32

Config Clockdiv = 16                            'ergibt 500kHz Clock

Config Adc = Single , Prescaler = 2

Gruß
Waste1
 

Portitzer

Geocacher
Sicher, aber den gabs da schon vor einem Jahr...
So lange "läuft" meine Blitzelekronik zumindest schon damit ;-)

Gruß
Kurt
 

chr2k

Geomaster
waste1 schrieb:
Jetzt ist mir noch was eingefallen. Ich verwende den ATtiny45 und der hat eine andere Taktfrequenz als der ATtiny13. Nicht dass sich einige am Kopf kratzen und sich fragen, wie kommt der auf 500kHz?

waste1 schrieb:
Ich lasse in meinen Reaktivlichtern die AVRs mit 500kHz laufen und habe nur 5µA Ruhestrom im Tagbetrieb und 6µA im Nachtbetrieb.
Das gilt für den ATtiny45. Beim ATtiny13 wären das dann 600kHz.

Hier nochmal zur Klarstellung den relevanten Bascom-Code im Vergleich zum Kochbuch Kapitel 5.2.

Code für ATtiny13:
Code:
$regfile = "ATtiny13.DAT"
$crystal = 600000                               'Frequenz des internen Oszillators
$hwstack = 28                                   'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen

Config Clockdiv = 16                           'ergibt 600kHz Clock
Config Adc = Single , Prescaler = 2            'ADC mit 300kHz getaktet, um Strom zu sparen

Code für ATtiny45:
Code:
$regfile = "ATtiny45.DAT"
$crystal = 500000                               'Frequenz des internen Oszillators

$hwstack = 32

Config Clockdiv = 16                            'ergibt 500kHz Clock

Config Adc = Single , Prescaler = 2

Gruß
Waste1


Irgendwie scheint das alles keine Früchte zu tragen, ode rich mach irgendwas falsch...
 

chr2k

Geomaster
ja scheinbar lassen sie sich ja gar nicht mehr setzen. ich kann die Fusebits setzen und schreiben lassen wieich will, beim nächsten auslesen des chips (damit meine ich nicht den code brennen) bekomm ich entweder fehlermeldungen oder bascom zeigt dann den tiny13 an mit wiederum ganz anderen fusebits.
 

waste1

Geocacher
Meine Programmänderung hilft natürlich nicht mehr, wenn das Kind schon in den Brunnen gefallen ist. Das war ein Verbesserungsvorschlag, damit man die Fusebits im Originalzustand lassen kann und somit gar nicht in so eine missliche Lage kommt.

In deinem Fall musst Du nach der Anleitung von Windi vorgehen.
 

Windi

Geoguru
Werden bei Dir überhaupt noch die Fusebits angezeigt oder hast Du dabei schon eine Fehlermeldung.
Mach doch mal ein Bildschirmfoto Deiner angezeigten Fusebits.
Welchen Programmer verwendest Du?
 

chr2k

Geomaster
Beim auslesen de schon gebrannten Tinys bekomme ich folgende Fehelrmeldung.
http://img216.imageshack.us/img216/5101/bild1tq4.jpg
Mittlerweile trifft die Fehlermeldung ständig auf. Als diese Probleme angefangen haben, konnte ich ab und an die Bits auslesen


Dann klappt es mal wieder. Der eiznige chip bei dem alles funktioniert hat läuft. Den trau ich mich ejtzt auch gar nicht anzuschließen.

Habe schon neue Tinys bestellt, CSD hat auch schon geliefert, die Lieferung leigt aber biem Nachbarn, der vorhin nicht zu Hause war.[/url]
 

thomas_st

Geowizard
chr2k schrieb:
Beim auslesen de schon gebrannten Tinys bekomme ich folgende Fehelrmeldung.
http://img216.imageshack.us/img216/5101/bild1tq4.jpg
Mittlerweile trifft die Fehlermeldung ständig auf. Als diese Probleme angefangen haben, konnte ich ab und an die Bits auslesen
Eine Lösung kann ich auch nicht anbieten. Alles was ich raten kann ist, doch mal auf ein anderes Programm zum Auslesen der Fusebits auszuweichen. Eventuell kannst Du mit dem im "C"-Tread verwendeten PonyProg die Bits auslesen? Ach so - blöder Gedanke - hast Du Deinen Programmer mal auf einen Wackelkontakt überprüft? Ich meine ja nur, weil es bei einem Prozessor mal geklappt hat.

Viele Grüße und hoffentlich konnte ich ein wenig helfen,
Thomas(_st)
 

chr2k

Geomaster
wieso blöder gedanke? wegen dem Kochbuch-Programmer?

Habe dne Programmer schon zig mal auf Fehler überprüft.
 

Windi

Geoguru
Hast Du jetzt schon mal versucht den Crystal-Wert auf 16000 zu stellen, dann unbedingt das Programm neu kompilieren und dann auf die Fuses zuzugreifen.
Falls der Wert auf 16000 steht mal 128000 einsetzen und kompilieren.

Ich hatte ganz früher auch mal eine ungewöhnliche Beobachtung.
Unter Bascom gibt es Steuer-Befehle die während des Programmierens die Fuses setzen können. Aus irgendeinem Grund standen diese bei mir im Programm auf einmal drin und haben mir auch ein paar Tinys geschossen ehe ich bemerkt habe was los war.
Hast Du Deinen Programmcode schon mal gecheckt? Bei mir stand es damals in der ersten Zeile.
 

chr2k

Geomaster
Windi schrieb:
Hast Du jetzt schon mal versucht den Crystal-Wert auf 16000 zu stellen, dann unbedingt das Programm neu kompilieren und dann auf die Fuses zuzugreifen.
Falls der Wert auf 16000 steht mal 128000 einsetzen und kompilieren.

Das habe ich schon längst probiert und dachte das ich dementsprechend schon ein Feedback hier hinterlassen hätte.


Windi schrieb:
Hast Du Deinen Programmcode schon mal gecheckt? Bei mir stand es damals in der ersten Zeile.

Ja, hatte sogar ein paar mal ein eues, leeres Programmblatt offen und es steht nix drin, nichtmal in dem fertigen Codeblatt.

Heute Abend probier ich die neuen Tinys aus...
 

thomas_st

Geowizard
chr2k schrieb:
wieso blöder gedanke?
Indem ich Dir indirekt mit der Frage unterstellt habe, dies noch nicht gemacht zu haben. Hattest Du aber, wie geschrieben ja schon gemacht. Damit weiß ich nun auch erstmal nicht weiter.

Viele Grüße,
Thomas(_st)
 
Oben