Forum: Mikrocontroller und Digitale Elektronik ATMEGA8 will nicht, ISP läuft


von Andreas Hübner (Gast)


Angehängte Dateien:

Lesenswert?

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!

von André K. (freakazoid)


Lesenswert?

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

von thkais (Gast)


Lesenswert?

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?

von Andreas Hübner (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Andreas Hübner (Gast)


Lesenswert?

Ich nehme mal an, dass der atmega8 nicht defekt ist solange das
Schreiben und Lesen noch funktioniert, oder?

von Norbert (Gast)


Lesenswert?

>>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.

von Andreas Hübner (Gast)


Lesenswert?

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.

von Andreas Hübner (Gast)


Lesenswert?

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?

von Hubert.G (Gast)


Lesenswert?

Ich hoffe du hast wie im Tut einen 1k Widerstand genommen, sonst
leuchtet die LED sicher nicht.

von Andreas Hübner (Gast)


Lesenswert?

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?

von Andreas Hübner (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.