Hallo allerseits. Der erste Versuch in Richtung Mikrocontroller. Ein ATMega8, die Schaltung aus dem Tutorial auf einem Steckbrett. 4MHz Quarzoszi, 7805 liefert korrekte 5.05V, scheint alles super. Auch das flashen via ISP aus dem Shop hier mit Ponyprog2000 funktioniert einwandfrei. Nur scheint der Controller nichts zu tun. Ich hatte mit den einfachen LED Beispielen aus dem Tutor angefangen. Nichts. Um zu überprüfen ob sich überhaupt etwas tut, habe ich das ASM programm aus dem Datenblatt zum Schreiben in den EEPROM benutzt und anschließend den EEPROM mit yaap oder ponyprog ausgelesen. Wieder nichts. Am reset Eingang liegen auch jeweils 5V an, außer, wenn der Schreibvorgang aktiv ist. Gibt es noch irgendwelche Anfängerhürden über die ich vielleicht gestolpert bin? Kann die Kabelbrücke zwischen Quarz und Pin9 ggf zu lang sein? Zum assemblieren nutze ich das AVR Studio 3.56, wo auch mittels Emulator alles super funktioniert (I/O, auch EEPROM). Jetzt bin ich etwas ratlos. Danke für Ideen und schonmal einen schönen Sonntag!
Hi, Fuses richtig eingestellt (externer Quarz)? Ich glaube das Teil läuft default mit internem RC-Oszillator. Obwohl: Dann sollte auch was passieren. Kannst Du mal das .asm-File posten? Hex les ich nicht so gerne ;-) Grüße, Freakazoid
In der Minimalkonfiguration kannst Du auf einen Quarz verzichten, ab Werk läuft der Atmel bereits mit internem Takt. Wird nach dem Programmieren auch der Verify durchgeführt und erfolgreich abgeschlossen? Kannst Du das Programm erfolgreich aus dem Controller zurücklesen? Kondensatoren an den Versorgungspins? Benutzt Du exakt die Schaltung im Tutorial?
Danke schonmal. Ja, im Prinzip genau die Schaltung aus dem Tutor, 10k und 47p an Pin1 und von dort zur resetleitung. VCC an 7 und 20, GND an 8 und 22 und der Quarzausgang (8 also rechts oben vom Quarz) an Pin 9. Das einzige, das ich nicht habe ist der zusätzliche 100nF zwischen 5V und GND, da ja bereits 2 davon in der Schaltung vom 7805 stecken, die ebenfalls wie im Tutor aufgebaut ist, bis auf den 10uF, der bei mir durch einen 47uF ersetzt wurde. Ich sollte also einfach Pin9 weglassen? ASM File habe ich angehängt, Ponyprog schreibt und führt einen Verify durch, der ca doppelt so lange wie das schreiben dauert. Wenn ich danach (auch mit yaap) den Flash manuell auslese, dann steht da auch das Hexfile byte für byte drin. Ich hatte das Hexfile angehängt, weil ich mir da nicht sicher war, ob ggf der Assembler etwas erstellt, was ggf der ATM8 nicht versteht. Aber offenbar sind die HexOpcodes für alle gleich.
Ich nehme mal an, dass der atmega8 nicht defekt ist solange das Schreiben und Lesen noch funktioniert, oder?
>>Das einzige, das ich nicht habe ist der zusätzliche 100nF zwischen >>5V und GND, da ja bereits 2 davon in der Schaltung vom 7805 stecken Glaub mir, du möchtest unbedingt einen 100nF Kondensator _so dicht wie möglich_ am µC haben. Ich habe schon mehrfach erlebt, das die Dinger ohne Ko einfach nicht anlaufen wollen.
werde ich beim nächsten tun, sprich einen 100nF zwischen 8 und 7 und einen 100nF zwischen 20 und 22. Der aktuelle läuft mittlerweile gar nicht mehr, PonyProg erkennt kein Device mehr, möglich dass bei den Fuses etwas schiefgelaufen ist, obwohl ich kein RST Fuse verändern wollte und er eigentlich beim Schreibvorgang bereits meckerte.
Ok, hab das herausgefunden. Es hatten sich doch die Clockeinstellungen verändert. Mittlerweile ist er auf 8MHz internet getaktet, klappt also auch ohne externem Quarz, der Zugriff via ISP. Aber an der sonstigen Situation hat sich nichts geändert. Ich habe auch wie im Tutorial eine LED mit 10k Vorwiderstand zwischen VCC und PB1 gehängt. Dann das Programm aus dem Tutor. Nichts. Müsste das programm sofort anlaufen, nachdem der Schreibvorgang beendet ist?
laut Messgerät 1001 Ohm :-( Ich rätsele wirklich. Gibt es verschiedene HexFormate die der assembler erzeugen könnte? Hat jmd ggf mal ein einfaches hex-file, das ich mal flashen und testen könnte?
Ennnndlich. Der Witz bestand darin, dass PonyProg ohne zu meckern schlichtweg das hex-file geflsht hat. Offensichtlich handelt es sich dabei aber um eine Art Texfile, das die eigentlichen Hexdaten beschreibt. Nachdem ich im AVR-Studio die Ausgabe von generic auf Intel Intellec 8/MDS umgestellt hatte, las auch yaap anstandslos das hexfile ein und schreibt die "richtigen" Daten. Nun funktioniert natürlich alles wie es soll. Danke an alle und schönen Sonntag noch!
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.