Hallo!
habe gerade ein Phänomen entdeckt, welches ich mir nicht erklären kann.
Ich habe gerade meinen Atmel mikrocontroller ATmega16 mit einem
Lauflicht in AVR studio programmiert. Das Programm beinhaltet die
_delay_ms-funktion. Direkt nach dem Programmieren, läuft das Lauflicht
auf den LEDs des STK500 ab. Soweit so gut.
Es ergeben sich aber direkt nach dem Flashen andere delay-Zeiten als
wenn ich dann das erste mal das STK500 ausschalte und dann wieder
einschalte (sprich wenn ich den controlelr spannungsfrei mache).
Woran kann das liegen?
übrigens tritt das gleiche Phänomen auf, wenn ich dann während des
Programm ablaufs auf RESET drücke:
STK500 einschalten --> LEDs laufen mit geschwindigkeit-X -> RESET
gedrückt -> LEDs laufen nicht mit geschwindigkeit-x sondern langsamer.
An der Spannung. Wenn der noch auf internen Takt geschalten ist und du
den mit AVR Studio flashst, setzt das auch das VTarget. Wenn du im AVR
Studio 5V stehen hast und das STK 3,3V als Standard hat, ist nach jedem
einschalten der Takt niedriger. Somit stimmt dann auch die Delay Zeit
nichtmehr. Kann auch andersrum sein. Dreh einfach mal im AVR Studio an
der Spannung, dann siehst du das ja sofort.
auf was soll ich das VTarget jetzt stellen?
Im moment, nachdem ich auf "Read Voltages" geklickt habe, steht da "5.1
V" bei VTarget und "5.0 V" bei ARef.
Danke
verstehe außerdem nicht was das VTarget überhaupt bewirkt, finde dazu
auch nix im Forum :-(
Ist das von mir genannte Verhalten normal? LIegt das ausschließlich am
STK500?
Danke für Hilfe!
@ MagicProgger (Gast)
>verstehe außerdem nicht was das VTarget überhaupt bewirkt, finde dazu>auch nix im Forum :-(
Ganz einfach. Wenn dein AVR mit dem internen RC-Oszillator getaktet
wird, dann ist dessen Frequenz von der Versorgungsspanung des AVR
abhängig! Einer von vielen Gründen, weshalb der interen RC-Oszillator
NICHT für eine solide UART-Kommunikation taugt.
>Ist das von mir genannte Verhalten normal?
Ja.
> LIegt das ausschließlich am STK500?
Nein.
MFG
Falk
ok aber beide regler (VTarget und ARef) stehen auf 5.0 V und 5.1 V.
Wie kann ich es nun einstellen, dass es keine Unterschiede mehr zwischen
RESET und Neu-Einschalten des STK500s gibts?
Ist wirklich wichtig!
Danke
Außerdem tritt das Problem nicht nur direkt nach dem Programmieren auf,
sondern es ist heute noch genauso, obwohl ich nur das Board einschalte
und anschließend auf Reset drücke.
Ich schalte das Board ein, motor dreht "korrekt" schnell. Ich drücke auf
RESET und der motor dreht nur noch die hälfte so schnell wie er laufen
sollte.
Hast du die Fusebits so gestetzt das externer Takt verwendet wird? Wenn
nicht mach das mal. Das STK bietet das ja an . Wenn die die 3,68 MHz
nicht reichen kannst du auch noch einen Quarz Stecken und entsprechend
jumpern.
Gruß Jörg
Falk Brunner wrote:
> Ganz einfach. Wenn dein AVR mit dem internen RC-Oszillator getaktet> wird, dann ist dessen Frequenz von der Versorgungsspanung des AVR> abhängig! Einer von vielen Gründen, weshalb der interen RC-Oszillator> NICHT für eine solide UART-Kommunikation taugt.
Die Frequenz ändert sich aber nur um wenige Prozent (z.B. beim mega48
nicht mal 1%). An einem Lauflicht erkennt man das mit dem Auge ohne
Frequenzzähler, Oszilloskop usw.) nicht. Es muss also an etwas anderem
liegen.
@ MagicProgger (Gast)
>Ich schalte das Board ein, motor dreht "korrekt" schnell. Ich drücke auf>RESET und der motor dreht nur noch die hälfte so schnell wie er laufen>sollte.
Die HÄLFTE! Na, sooo schlecht ist selbst der schlechteste RC-Oszillator
nicht. +/-10%, eher weniger. Dann wird es wohl was anderes sein. Gibts
beim STK500 nicht auch ne Möglichkeit, den Takt für den Ziel-AVR in der
Frequenz zu verstellen?
MFg
Falk
@ MagicProgger
>STK500 einschalten --> LEDs laufen mit geschwindigkeit-X -> RESET>gedrückt -> LEDs laufen nicht mit geschwindigkeit-x sondern langsamer.
Also, wenn ich das ganz wörtlich nehme, dann ist die Laufgeschwindigkeit
der LEDs langsamer, SOLANGE Du Reset drückst. Ist das richtig? Was
passiert wenn Du Reset wieder losläßt?
Gruss
Oops
Nein, das Problem tritt NACH dem Reset-Drücken auf. Die LEDs blinken
nach dem INschalten des STKs normal. dann drücke ich reset und DANACH
läuft das langsamer ab.
Nur Ausschalten und Wieder-Einschalten des STKs macht das wieder normal,
solange ich eben nicht auf reset drücke