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
Hallo, Flash: Getting isp parameter.. SD=0x0a .. OKOK Reading FLASH input file.. OK Entering programming mode.. OK! Erasing device.. OK! Programming FLASH .. OK! Reading FLASH .. OK! FLASH contents is equal to file.. OK Leaving programming mode.. OK! EEPROM: Getting isp parameter.. SD=0x0a .. OKOK Reading EEPROM input file.. OK Entering programming mode.. OK! Programming EEPROM .. OK! Reading EEPROM .. OK! EEPROM contents is equal to file.. OK Leaving programming mode.. OK! Die Fuse kann ich lesen, bei mir: Entering programming mode.. OK! Reading fuses address 0 to 1.. 0xE1, 0xD9 .. OK! Leaving programming mode.. OK! Alles scheint OK zu sein, aber LEDs immernoch dunkel. @Peter Dannegger Ich wollte deinen Bootloader draufspielen, beim assemblieren tritt ein Fehler auf. C:\..\m8def.inc(345): error: Attempt to redefine keyword 'or' woran liegt das? MfG Rufus
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
Also ich musste da gar nix umstellen. Hat standardmäßig sowohl von der Frequenz als auch von den Fuses her hingehauen. (ohne quarz)
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.
Schau noch mal im Quelltext nach, ob Port B oder C benutzt wird und stecke das Kabel entsprechend ( out PortX, xx) gruss christian
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
Habe mein STK neben mit stehen mit einem Mega8 und deinen Fuses eingestellt. Wenn ich auch noch dein *.hex File hätte, könnte ich es probieren.
Hi, das ist der Code aus dem Tutorial.
1 | .include "m8def.inc" ; Definitionsdatei für den Prozessortyp einbinden |
2 | |
3 | ldi r16, 0xFF ; lade Arbeitsregister r16 mit der Konstanten 0xFF |
4 | out DDRB, r16 ; Inhalt von r16 ins IO-Register DDRB ausgeben |
5 | |
6 | ldi r16, 0b11111100 ; 0b11111100 in r16 laden |
7 | out PORTB, r16 ; r16 ins IO-Register PORTB ausgeben |
8 | |
9 | ende: rjmp ende ; Sprung zur Marke "ende" -> Endlosschleife |
Auf dem Simulator läuft es. 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
Und wenn du die Taster an PortC ansteckst, dann tut sich mit den Tasten 0 und 1 auch was.
>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
ok .. warst schneller .. den Fehler hatte ich zum Anfang auch gemacht ... aber so lernt mans :) Gruß Ducky
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.