Forum: Mikrocontroller und Digitale Elektronik Phänomen nach flashen


von MagicProgger (Gast)


Lesenswert?

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?

von MagicProgger (Gast)


Lesenswert?

ü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.

von Condi (Gast)


Lesenswert?

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.

von MagicProgger (Gast)


Lesenswert?

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

von MagicProgger (Gast)


Lesenswert?

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!

von MagicProgger (Gast)


Lesenswert?

hat denn niemand eine Ahnung ??


Danke

von Falk B. (falk)


Lesenswert?

@ 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

von MagicProgger (Gast)


Lesenswert?

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

von MagicProgger (Gast)


Lesenswert?

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.

von Jörg B. (joerg-sh)


Lesenswert?

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

von Benedikt K. (benedikt)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@ 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

von MagicProgger (Gast)


Lesenswert?

meint ihr das "Oscillator Clock" und "ISP clock"?

Da stehen unterschiedliche Werte in meinen Einstellungen.

von MagicProgger (Gast)


Lesenswert?

Habt ihr noch vorschläge?

von Falk B. (falk)


Lesenswert?

@ MagicProgger (Gast)

>meint ihr das "Oscillator Clock" und "ISP clock"?

Oscillator Clock.

MfG
Falk

von MagicProgger (Gast)


Lesenswert?

also ich habe nun die "STK500 Osc-Frequ." auf 1 MHz (genau 1.23 MHz) 
gesetzt, auf Write geklickt bringt aber auch nix.

von MagicProgger (Gast)


Lesenswert?

Hat jemand noch Ideen???

von Oops (Gast)


Lesenswert?

@ 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

von MagicProgger (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.