Hallo,
sry, hatte den Tread mit falscher Betreff geschrieben, ist wohl nicht
ganz rumgekommen.
Ich bin ganz frisch was AVR und habe nun endlich mein STK500 bekommen,
die deutsche Hardwarebeschreibung hab ich auch hier aus dem Forum.
Zusätlich hab ich noch einen ATmega8L-8PU.
Hab den mitgelieferten ATmega8515 rausgenommen und den mega8
eingesteckt, weil ich halt den programieren möchte (wegen Platzgründen
usw.).
Ich benutze AVRStudio 4 und habe versucht das kleine Testprogram
"leds.asm" (aus dem Tutorial)zum laufen zu bringen, aber gescheitert.
Meine Vorgehensweise:
1. STK500 ISP6PIN mit SPROG2 verbunden (6 adrige Flachbandkabel)
2. STK500 PORTD mit Switches und PORTC mit LEDS verbunden.
3. AVRStudio 4 leds.asm assembliert "leds.hex"
4. AVRStudio 4 das Programmierfenster (STK500 in ISP Mode with ATmega8)
geöffnet und übertragen
(s. Screenshot)
Hab ich was falsch gemacht was fehlt noch, denn das Programm läuft nicht
(die Leds bleiben dunkel).
An den Fusebits und Lockbits hab ich nichts verstellt.
Ich bin für jede hilfe dankbar.
MfG Rufus
Beitrag "Bootloader ein MUSS!"
Unten steht doch nur, daß er die Fuses gelesen hat.
Du müßtest mal "Programm" drücken.
Dann sollte zum Schluß der Meldungen "Verify: OK" stehen.
Peter
du musst die programmierfrequenz erstmal ganz runter stellen, dann die
fuses auf die richtige frequenz (intern, 4mhz oder 8 oder was auch
immer) danach sollte es gehn. du kannst dann auch die
programmierfrequenz wieder hochstellen.
die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und
die programmierfrequenz muss immer 1/4 der taktfrequenz sein.
Christoph Weidenhaupt wrote:
> die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und> die programmierfrequenz muss immer 1/4 der taktfrequenz sein.
Wenn ich Deine Aussage mal eben korrigieren dürfte:
Die Programmierfrequenz darf 1/4 der Taktfrequenz nicht überschreiten.
danke für die hilfe,
aber es geht immernoch nicht.
LOW=0xC4 HIGH=0x99
Bezugsquelle: Engbedded AVR® Fuse Calculator aus dem Netz.
>die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und>die programmierfrequenz muss immer 1/4 der taktfrequenz sein.
Meinst du damit die Baudrate am COM1 (9600Baud)?
Müssen anschließend die Jumper umgestellt werden? Wie Reset...usw.?
Wenn ich ehrlich sein soll, hab ich auch nicht verstanden wo das
Programm (leds.hex) geschrieben werden soll. In Flash oder EEPROM oder
beide?
MfG Rufus
Die Kalibrierung des internen Oszillators hat nichts mit der ISP
Frequenz zu tun.
Im ersten Reiter (Main) klickst du auf "Settings" und kannst dann die
Frequenz auwählen.
Lass den Bootloader für die ersten Versuche besser weg (Häkchen weg bei
"BOOTRST" in den Fuses).
Dein Programmcode kommt in den Flashspeicher. EEPROM ist nur zum
Speichern von Daten gedacht.
hallo,
habe beide versucht, Flash und EEPROM.
Kann mir denn keiner einen Beispiel geben? Die Verbindungen sollten doch
korrekt sein, oder? Siehe Anfang des Treads.
1. STK500 ISP6PIN mit SPROG2 verbunden (6 adrige Flachbandkabel)
2. STK500 PORTD mit Switches und PORTC mit LEDS verbunden.
Die Jumper sind alle unberührt.
-VTARGET (Spannungsversorgung) gesetzt
-AREF (Referenzspannung) gesetzt
-RESET gesetzt
-XTAL1 (Board Quarz) gesetzt
-OSCSEL Pin 1&2 gesetzt
-BSEL2 (?) gesetzt
-PJUMP (HV-Programmirung) n. gesetzt (beide)
Mega8 in Sockel SCKT3200A2 (grün) sonst kein anderer µC auf dem Board.
Kann mal bitte jemand bei sich gucken wo alles normal läuft und mit mir
abgleichen? Bitte.
ISP Frequenz?
Clock generator?
Oscilator calibration byte?
Ich würde mich echt freuen, danke.
MfG Rufus
Rufus wrote:
> Auf dem Simulator läuft es.
Läuft mit großer Wahrscheinlichkeit auch im µC. Man muss nur wissen,
dass die LEDs beim STK500 invertiert angeschlossen sind. Dein Programm
schaltet die LEDs also aus und nicht ein.
Sehe allerdings grad, dass eigentlich die beiden LEDs an PB0 und PB1
leuchten sollten, wenn alle Stecker richtig angeschlossen sind.
Ne ne das ist nicht richtig, die LED's 0 & 1 leuchten.
Es funktioniert jetzt auch, dämlich, dämlich omg......
Blutiger Anfänger halt...
Danke für eure hilfe :)
MfG Rufus
>Dein Programm>schaltet die LEDs also aus und nicht ein.
War darauf bezogen.
Jetzt leuchten die ersten beiden nämlich.
Trotzdem danke für jede hilfe.
MfG Rufus
Hi,
ich habe jetzt ein anderes Problem, wo ich nicht durchsteige.
Alles was ich mache bezieht sich auf den Tutorial
http://www.mikrocontroller.net/articles/AVR-Tutorial
Nun, es soll bei
http://www.mikrocontroller.net/sourcecode/tutorial/leds+buttons.asm
Button 0..5 (PD0-PD5) bezogen auf LED 0..5 (PB0-PB5) funktioniert.
PB6 & PB7 wollen nicht leuchten. PD7 & PD7 (buttons) werden aber
eingelesen. PB6 und PB7 sind ja optional XTAL1 & XTAL2 um PB6&7 als
I/O's nutzen zu können habe ich die Fuses so gesetzt, dass der Mega8
seinen internen Takt nutzt.
Woran liegt das nun, das die LED's an PB6 & PB7 nicht leuchten?
MfG Rufus
Hallo,
schau mal in den Schaltplan des STK500. Mir ist so, als ob PB6 und PB7
beim Mega8-Sockel nicht an den STK-Pins von PortB ankommen sondern
irgendwo bei XTAL oder so.
Es gibt bei solchen Experimentiernoards immer irgendwelche
Besonderheiten, weil man eben nicht für alle AVR gleichzeitig alle Pins
sinnvoll überall hinverbinden kann...
Gruß aus Berlin
Michael
Hallo Michael,
was PB6 und XTAL1 (Jumper) betrifft hast du Recht (von XTAL1 eine Brücke
nach LED6 -> leuchtet), PB7 scheint nirgenswo rausgeführt zu sein.
Ich werde mal EPAND0 probieren.
MfG Rufus
hi,
habe gerade in die STK500 Beschreibung geguckt.
Laut Beschreibung sind PB6 (Pin24) & PB7 (Pin23) auf EXPAND1
(Erweiterungsanschluß 1) geführt. Ich habe also Pin 23 & 24 auf die LED
6 & 7 (mit Draht) geführt -> keine Funktion.
Als ich die Drahtbrücken direkt zwischen LED 6&7 und an die Pins 9 & 10
des Mega8's geführt hatte funktionierte es. Sprich LED's leuchten bei
den jeweiligen betätigten Tastern.
D.h. PB6 & 7 können nicht wirklich mit dem STK als I/O's genutzt werden.
MfG Rufus
>D.h. PB6 & 7 können nicht wirklich mit dem STK als I/O's genutzt werden.
Kleine korrektur: XT1/XT2 auf PORTE/AUX entsprechen PB6 $ PB7.
Was allerdings nicht in der Beschreibung den Mega8 einschließt.
MfG Rufus