Hallo zusammen! Mir ist vor kurzem in den Sinn gekommen mich mit der Microcontroller-Programmierung auseinanderzusetzen. Ich habe einige Erfahrung mit SPS und PLS aus der Insustrie S7, Logo!, PCS7, Centum CS3000. Aber für kleine Spielereien mit ein paar digitalen I/Os und sonstige private Zwecke sind diese Systeme ganz einfach (sehr) viel zu teuer, unhandlich und umfangreich. Deshalb bin ich auf die Mircocontroller aufmerksam geworden. Aber so wie es sich momentan für mich darstellt, sind das zwei verschiedene Welten. Mittlerweile habe mir ein paar Grundlagen der AVR-Programmierung in diesem und anderen AVR-Tutorials (Assembler) angeeignet und auch schon einige Programme im AVR-Studio geschrieben und auch Simuliert. Da das wunderbar funktioniert hat habe ich mir gedacht, dass es ganz sinnvoll wäre diese Programme mal auf eine Hardware zu Übertragen, damit man sie auch tatsächlich nutzen kann. Ich habe also wieder das Tutorial bemüht und mir das STK500-Board und einige ATmega16 zugelegt. Das Beispiel-Programm auf dem mit dem STK500 mitgelieferten ATmega8515L hat auch sofort nachdem ich die Brücken von den Ports B und D zu den Tastern und LEDs gesteckt hatte funktioniert. Nachdem das alles so gut funktioniert hat, wollte ich natürlich meine eigenen Programme testen und in die Hardware übertragen. Ich habe also die Brücke von "ISP6PIN" zu "SPROG3" gesteckt und das Board über einen USB-RS232-Adapter am PC angeschlossen. Im AVR-Studio habe ich ein Project erstellt, als Debug plattform "AVR Simulator" und als Device "ATmega8515" gewählt. Das Programm habe ich zunächst aus dem Tutorial übernommen, da ich dachte als "vorgefertigtes" Programm wird es auf jeden Fall funktionieren und hab nur die erste Zeile abgeändert da mein Controller eben kein Atmega8 sondern ein Atmega8515L ist: .include "m8515def.inc" ldi r16, 0xFF out DDRB, r16 ldi r16, 0b11111100 out PORTB, r16 ende: rjmp ende Ich habe dann über den "Connect Dialog" die Verbindung zur Hardware hergestellt Im Reiter "Main" auf "Read Signature" geklickt um die Verbindung zu testen. Auch das hat funktioniert und ich konnte das auf dem Controller vorhandene Beispiel Programm löschen. Also die Taster und LEDs sind nun funktionslos, deshalb gehe ich davon aus das der Löschvorgang erfolgreich war. Als ich dann versucht habe das neue Programm in den Controller zu laden kamen die "Ok-Meldungen" Getting isp parameter.. SD=0x03 .. 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! Aber es tat sich nichts an den LEDs. Ich habe es natürlich nicht bei diesem einen Versuch belassen sondern die verschiedensten Einstellungen im AVR-Studio ausprobiert, Jumper geöffnet und geschlossen, die Brücken an den Prots entfernt, andere Ports benutzt, aus- und eingeschaltet und alle anderen Maßnahmen die mir so in den Sinn kamen und die ich in verschiedenen Foren und Internetseiten nachgelesen habe getest. Auch andere Controller hab ich mit vetrschiedenen Programmen ausprobiert. Kurz gesagt: Ich weiß nicht mehr wo die/meine Fehler liegen. Mein Wunsch wäre nun eine Schritt-für-Schritt-Anleitung sowohl für die Vorgehensweise und Einstellungen im AVR-Studio als auch für die benötigten "Einstellungen" auf dem Board selbst. Wenn diese Schritt-für-Schritt-Sache zu viel verlangt ist, würde ich gerne noch einige konkrete Fragen stellen, die vielleicht mit weniger Aufwandt beantwortet werden können: 1. Welche Jumpereinstellungen muss ich auf dem Board wählen (für ATmega8515L und Atmega16)? 2. Muss ich während oder nach dem Programmieren am Board wieder etwas umstecken um das Programm in Betrieb zu nehmen? (z.B.Jumper wieder umstecken oder die Prots beim Programmieren nicht auf die LEDs und Taster verbinden usw.) 3. Wenn ich den internen Oscilator benutze brauche ich keinen Quarz auf dem Board. Ist das korrekt? 4. Ist es richtig, dass ich als debug plattform den Simulator benutze? 5. Muss ich Flash und EEPROM beschreiben? Wenn ja, mit der gleichen hex-Datei (z.B. test.hex)? 6. Welche funktion hat das ELF File, brauche ich das? Bitte denkt daran, dass ich auf diesem Gebiet blutiger Anfänger bin. Also bombardiert mich bitte nicht mit zu vielen Fachbegriffen und Abkürzungen. Noch eine Bitte: Schreibt mir nicht "Guck' in den User Guide" oder "Benutz die Suchfunktion" o. ä. Ich will nicht sagen, das ich alles gelesen habe, aber das was ich gelesen habe hat mir nicht weiter geholfen. Scheinbar fangen bei den meisten Leuten die Probleme erst sehr viel später an. Ich hoffe mir ist noch zu Helfen... Vielen Dank schon mal im vorraus! Dennis
Hi
Nur mal einige Bemerkungen:
>AVR-Studio, STK500, µC lässt sich nicht programmieren
Stimmt nicht. Deine Meldungen besagen das Gegenteil.
Wenn das klappt sollten auch die Jumper stimmen.
Am PortB hängt zwar der Programmer, sollte aber nicht stören.
1. Hast du dein Programm auch assembliert (F7)?
2. Das richtige Programm geflasht? EEPROM-File (heisst normalerweise
xyz.eep) kann leer bleiben. ELF-File für Assembler uninteressant.
3. Die Leds leuchten bei PortPin=L
4. Debug-Platform ist nur für die Simulation wichtig. In deinem Fall
aber OK.
5.>Wenn ich den internen Oscilator ...
Korrekt. Dafür ist der Interne da.
6. Die Jumperbelegungen findest du auf der Unterseite des STK
MfG Spess
Vielen Dank für die schnelle Antwort. Ich habe gerade die Jumper noch einmal neu gesetzt. Jetzt funktioniert es. Nur finde ich es sehr merkwürdig das es daran lag. Ich dachte ich hätte alle möglichen und unmöglichen Combinationen ausprobiert. Und du sagst ja auch wenn die einstellung nicht passt, bekomme ich gar keine Verbindung bzw keine OK-Meldungen. Naja, jetzt freu ich mich erstmal darüber, dass es funktioniert. MfG Dennis
Hi >Und du sagst ja auch wenn die einstellung nicht passt, bekomme ich gar >keine Verbindung bzw keine OK-Meldungen. Das kommt natürlich darauf an, ob die Jumper im Einzelfall überhaupt relevant sind. Bei einem Controller, der mit internen Oszi läuft sind XTAL1 und OSCSEL uninteressant. Bei einem, der auf externen Takt oder Quarz gefust ist schon. Sieh dir einfach mal die 'Jumper Settings' in der Hilfe zum STK an. MfG Spess
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.