Hallo, ich habe mir zum Einsteigen das AVR Starterkit gewählt und programmiere mit Bascom. Im Starterkit war ein ATmega8a-PU und ein AVR ISP MK II enthalten. Zum Testen habe ich jetzt 2 sehr simple Programme geschrieben um die auf dem Board enthaltene LED leuchten bzw blinken zu lassen. Hier mal ein Quellcode: 'Blinken $regfile = "m8adef.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Portc.5 = Output Do Portc.5 = 1 Wait1 Portc.5 = 0 Wait 1 Loop End Übertragen habe ich die .hex Datein mit Hilfe des AVR Studios 6. Tools -> Device Programming -> ATmega8a -> hex. Datei wählen -> Program Es erscheint keine Fehlermeldung und der Vorgang scheint abgeschlossen. Allerdings passiert nichts. Die LED leuchtet weder, noch blinkt sie. Wo liegt mein Fehler? Ich habe als regfile m8def.dat versucht, funktioniert auch nicht. Die Led sollte sich an Pin 28 -> PortC.5 befinden. Habe es aber auch schon an anderen Ports mit Steckbrett und eigenen LED'S versucht. Kann ich den Controller irgendwie reseten oder ist das Teil defekt? LG Johannes
Du hast AVcc und AGND aber schon an Versorgungsspannung resp. Masse angeschlossen, oder? Johannes A. schrieb: > Do > > Portc.5 = 1 > > Wait1 > > Portc.5 = 0 > > Wait 1 > > Loop Bin kein Bascom Spezi, aber entweder 'Wait1' oder 'Wait 1' ist falsch.
Johannes A. schrieb: > Übertragen habe ich die .hex Datein mit Hilfe des AVR Studios 6. > Tools -> Device Programming -> ATmega8a -> hex. Datei wählen -> Program Hast du anschließend mal auf Verify geklickt, um zu überprüfen, ob das Programm richtig im Controller angekommen ist? Nehme an, die Fuses sind alle richtig gesetzt... Matthias Sch. schrieb: > Johannes A. schrieb: >> Do >> >> Portc.5 = 1 >> >> Wait1 >> >> Portc.5 = 0 >> >> Wait 1 >> >> Loop > > Bin kein Bascom Spezi, aber entweder 'Wait1' oder 'Wait 1' ist falsch. Wahrscheinlich wird "Wait1" nicht als Befehl erkannt, deshalb ist der entprechende Pin nur für eine extrem kurze Zeitspanne aktiv (einen Takt).
Das Wait1 war nurn Tippfehler, hab das im richtigen Programm korrekt, sorry. Also daran kann es nicht liegen. 'Leuchten $regfile = "m8adef.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Portc.5 = Output Portc.5 = 1 End Das Funktioniert wie gesagt auch nicht. Noch einfacher kann ichs nicht machen^^ An den Fuses hab ich nichts geändert. Hab mal einen Screenshot angehängt. Wenn ich verify drücke kommt: Verifying Flash...OK Das sollte also soweit auch passen.
Versuch erst mal, den ganzen Port C auf Output zu konfigurieren. Meine, mich erinnern zu können, dass Bascom bei einzelnen Pin-Konfigurationen manchmal Probleme macht. Dann wie gehabt den einzelnen Pin ansteuern. Was mißt du an den Pins 7, 8, 20 und 22 gegen GND?
Man kann auch aus BASCOM heraus direkt Programmieren. Bei den Optionen den Programmer wählen und dann F4 drücken.
erik schrieb: > Was mißt du an den Pins 7, 8, 20 und 22 gegen GND? Wenn ich die Pins gegen GND vom Netzteil messe komme ich auf: 5,3V bei Pin 7 und 20 0,7V bei Pin 8 und 22 Wenn ich die auf Pin 8 messe, der sollte ja GND sein, komme ich auf: 4,6 V bei Pin 7 und 20 und 0V bei den anderen 2.
Johannes A. schrieb: > erik schrieb: > >> Was mißt du an den Pins 7, 8, 20 und 22 gegen GND? > > Wenn ich die Pins gegen GND vom Netzteil messe komme ich auf: > > 5,3V bei Pin 7 und 20 > 0,7V bei Pin 8 und 22 > > Wenn ich die auf Pin 8 messe, der sollte ja GND sein, komme ich auf: > > 4,6 V bei Pin 7 und 20 und 0V bei den anderen 2. Klingt ja so weit ganz gut! guck mal hier: http://www.avr-praxis.de/forum/showthread.php?372-Bascom-Alias-Input-Output Hier gibt es ein Bascom-Forum (sehr empfehlenswert!): http://bascom-forum.de/forum.php?s=17be86f98a038b06fe6fc18189085d57 Da sieht der Moderator meist direkt, wo der Hase im Pfeffer liegt und gibt Hilfe. erik schrieb: > Versuch erst mal, den ganzen Port C auf Output zu konfigurieren. > Meine, mich erinnern zu können, dass Bascom bei einzelnen > Pin-Konfigurationen manchmal Probleme macht. Ansonsten das mal testen!
Also wenn Du die Fuses so einstellst : LOW 0xE1 High 0xD9 dann wäre es der Auslieferungszustand also interner Oszillator mit 1 MHz Dein Programm $regfile = "m8adef.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Portc.5 = Output Portc.5 = 1 End ist auch OK. LED richtig herum ? Die ist auch OK ? Reseteingang über 10K an +5V ? Warum hast an Pin8 und 22 0.7V ? muss auf GND liegen..
Thomas der Bastler schrieb: > Also wenn Du die Fuses so einstellst : > LOW 0xE1 > High 0xD9 > > dann wäre es der Auslieferungszustand also interner Oszillator mit 1 MHz > Dein Programm Die Fuses sind so eingestellt, siehe Screenshot. > LED richtig herum ? Die ist auch OK ? LED habe ich getestet, die Funktioniert. > Reseteingang über 10K an +5V ? > Warum hast an Pin8 und 22 0.7V ? muss auf GND liegen.. Sonst benutze ich wie gesagt ein Olimex-Board. Ich geh jetzt einfach mal von aus dass die Spannungsversorgung und Restwiderstände soweit passen. Am Rest-Pin ist auch noch ein Taster angebracht, was passiert denn wenn ich den Drücke? Hilft das was? erik schrieb: > Versuch erst mal, den ganzen Port C auf Output zu konfigurieren. > Meine, mich erinnern zu können, dass Bascom bei einzelnen > Pin-Konfigurationen manchmal Probleme macht. Habe ich auch probiert, funktioniert ebenfalls nicht.
Johannes A. schrieb: > Meine, mich erinnern zu können, dass Bascom bei einzelnen >> Pin-Konfigurationen manchmal Probleme macht. Hatte noch nie Probleme gehabt, nicht bei ATMEGA8. ATMEGA16 ist was anders... Hat schon mal das Teil gefunzt ? Kannst mal ein Bild machen ?
Thomas der Bastler schrieb: > Hat schon mal das Teil gefunzt ? > > Kannst mal ein Bild machen ? So, ich habe jetzt den Controller mal auf ein Steckbrett gesteckt, die Stromversorgung vom Entwicklungsboard übernommen und dort getestet - und es funktioniert! Nur wenn er auf dem Entwicklungsboard sitzt, will er nicht. Aber er lässt sich dort programmieren. Habe jetzt auch noch ein 2. kleines Programm geschrieben mit 2 LED's die abwechselnd blinken, den Controller auf dem Entwicklungsboard programmiert, ihn aufs Steckbrett gesteckt und dort funktioniert alles wunderbar. Ehrlich gesagt versteh ich das ganze überhaupt nicht. Muss ich auf dem Entwicklungsboard noch irendwelche Jumper umstecken, oder ist das Ding defekt? Benutze folgendes: http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=74
Johannes A. schrieb: > Sonst benutze ich wie gesagt ein Olimex-Board. Ich geh jetzt einfach mal > von aus dass die Spannungsversorgung und Restwiderstände soweit passen. Wenn Du ein Fehler suchst, ist "Ich geh jetzt einfach mal von aus" gar nicht gut. Da muss man Punkt für Punkt nachprüfen, ob das auch so ist. Also mess mal die Versorgunsspannung an Pin 7 und 20 (ich sehe gerade, das hast Du ja schon) und am Reset-Pin 1: dort sollte auch ca. 5V sein. Was mir dazu im Schaltplan auffällt: da ist auf dem Olimex-Board noch ein ZM33064 (Spannungs-Monitor), der an den Reset geht. Seine Schaltschwelle ist zwischen 4,5 und 4,7V. Und Du hast bei Vcc einen Wert von 4,6V gemessen. Dann kann der ZM33064 also einen Reset auslösen. Wenn das so ist: - entweder ist deine Eingangsspannung am "Power Jack" zu klein, die Last zu groß oder der Spannungsregler LM317 falsch eingestellt (mit R3 oder R4): korrigieren - oder Du entfernst R7, dann ist der ZM33064 außer Betrieb. Johannes A. schrieb: > Muss ich auf dem Entwicklungsboard noch irendwelche Jumper umstecken, Ist der LED_J-Jumper gesteckt? Gruß Dietrich
Dietrich L. schrieb: > Was mir dazu im Schaltplan auffällt: da ist auf dem Olimex-Board noch > ein ZM33064 (Spannungs-Monitor), der an den Reset geht. Seine > Schaltschwelle ist zwischen 4,5 und 4,7V. Und Du hast bei Vcc einen Wert > von 4,6V gemessen. Dann kann der ZM33064 also einen Reset auslösen. > Wenn das so ist: > - entweder ist deine Eingangsspannung am "Power Jack" zu klein, die Last > zu groß oder der Spannungsregler LM317 falsch eingestellt (mit R3 oder > R4): korrigieren > - oder Du entfernst R7, dann ist der ZM33064 außer Betrieb. Vielen dank, da liegt der Fehler wohl begraben. Sobald ich den Reset-Pin des Controllers mit dem des Boards verbinde habe ich die Probleme. Auf einem Steckbrett mit 10k an Masse funktioniert dagegen alles problemlos.
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.