Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe bei ATMega8-16


von Marcus P. (mapa)


Lesenswert?

Hallo,
Beim ersten Versuch einen Mikrocontroller (ATMEGA8-16) zu beschreiben,
habe ich Fehler gemacht!!!

Ich konnte den AVR einmal lesen und wollte danach die Fusebits setzen
und habe dies wahrscheinlich falsch gemacht. Seither kann ich nicht
mehr auf den AVR zugreifen und bekomme bei PonyProg immer einen
"Device...Fehler(-24)". Zum programmieren benütze ich die abgespeckte
Version des Si-Prog für die serielle Schnittstelle.
(http://s-huehn.de/elektronik/avr-prog/avr-prog.htm)


Nun zu meiner Frage:
Ich habe gehört, dass man die Standardkonfiguration wieder auf den AVR
bekommen und so den AVR wieder zum Leben erwecken kann.

Wer kann mir dabei helfen???

Vielen Dank
Gruß Marcus

von TravelRec. (Gast)


Lesenswert?

Wenn Du Glück hast, reicht ein QuarzOszillator (Metallbüchse mit 4 Pins)
von einigen MHz am XTAL1 Pin, wenn Du den ResetPin weggefust hast, hilft
nur noch ein STK500 oder ein anderer HV-Programmer (oder ein guter
Freund mit solchem Teil). Tip am Rand: Kauf Dir einen ordentlichen
Programmer vom Originalhersteller ATMEL, dann hast Du die Probleme in
Zukunft nicht mehr.

von Marcus P. (mapa)


Lesenswert?

Hab mir soeben den Atmel AVRISP MKII USB bei Reichelt bestellt, also in
Zukunft wird sowas nicht mehr passieren.

Mit dem Quarzoszillator (4mhz) hats nicht funktioniert!

Leider kenne ich keinen mit einem STK500, gibts noch ne andere
Möglichkeit?

von Sonic (Gast)


Lesenswert?

Funktionsgenerator, irgendwas das 5V-Frequenz erzeugt. Du musst nur den
µC an XTAL1 takten (4x programmierfrequenz), dann kannst'n auch wieder
programmieren.

von Michael U. (Gast)


Lesenswert?

Hallo,

mal eine dumme Frage: wer ist eigentlich auf die glorreiche Idee
gekommen, im Tutorial so ziemlich am Anfang die Leute mit den Fuses
rumspielen zu lassen???

Bis zum UART gibt es dafür keinerlei Grund...

Sollte mal jemad ändern. Heißt nicht, daß ich Arbeit auf andere
abwälzen will, wäre aber wohl wirklich besser.

Gruß aus Berlin
Michael

von HolgerH (Gast)


Lesenswert?

Hallo Marcus,

wo wohnst Du denn? Ich bin auf die glorreiche Idee gekommen, mir zum
Anfang ein STK500 zu kaufen (hab's seit ner Woche...).
Einfach weil ich dachte, dass sei eine sichere Möglichkeit sich über
den Programmer keine zusätzlichen Fehler einzubauen.

Wo kommst Du denn her, evtl können wir ja versuchen, mit dem STK 500
Deine Atmel zu retten.

Wobei die Preise eigentlich das Porto für's hin- und herschicken kaum
rechtfertigen würden...

Viele Grüße
Holger

von Thomas O. (Gast)


Lesenswert?

alle neueren AVRs laufen in der Standartkonfiguration mit der internen
Taktquelle auf 1 MHz, deshalb sehe ich auch keinen Grund hier dran
rumzuspielen. Allerdings wird im Tutorial noch ein älterer AVR
verwendet der nen externen Takt braucht. Das Problem ist das Ponyprog
oder auch andere Progsoftware ja nicht weiß wie die Fuses eingestellt
sind, also muss man diese erst auslesen bevor man sie wieder schreibt,
damit die alten Fuses übernommen werden.

Habe mal mein altes Ponyprog gestartet und den ATM8 eingestellt welches
ich noch auf der Platte hatte. Dort steht RSTDISBL grau hinterlegt(also
sollte man da nichts verhunzen können), glaube aber beim ATM8 kann man
den RESET-Pin eh nicht alternativ verwenden, beim ATT26 aber wäre es
möglich. Grauenhaft hier muss man für den Takt z.B. jedes Bit selbst
setzen und hat dann auch noch ein ungutes Gefühl ob das ganze nicht
invertiert dargestellt wird, beim AVR-Studio klickt man hingegen auf
die gewünschte interne Taktrate mit der entsprechenden Startverzögerung
und es passt alles.
Ich vermute jetzt das du die Fuses mit SUT00 und CKSEL0000 gebrannt
hast, dann müsste ein externer Takt reichen.

Ich gehe jetzt erstmal vom seriellen Programmer aus, da dieser nicht
extern versorgt wird. Bei der Parallelel Version gibts ja 2erlei mit
und ohne HC(T)244.

Zu deinen Anschlüssen über die Leitung MOSI gelangen die Daten vom
Rechner in den AVR, SCK ist die Taktleitung und MISO ist die Leitung
von der der PC aus dem AVR ließt. VCC, GND und RST sollte klar sein.

Du sagt der PC verschickt Daten dies sieht du an der leuchtenden LED
wenn sie zw. MOSI und GND bzw. zw. SCK und GND hängt. Dann können wir
schonmal ausschließen das du keine Portzugriffe hast.

Da du aber auf der MISO Leitung kein Signal hast, hat entweder der AVR
keinen Strom oder im fehlt der Takt. Es kann aber sein das man diese
Leitung garnicht zum Programmieren braucht. Ich denke das diese Leitung
eher dazu da ist um die Daten auszulesen oder das Verifity
durchzuführen. Deshalb denke ich hast du die Fuses zerschossen als du
auf Ignore gegangen bist.

Bau dir mal einen astabilen Multivibrator auf dann gegen wir das
zusammen nochmal durch.

von Sonic (Gast)


Lesenswert?

Beim AVRISP wird schon bei der Anwahl des 'FUSES'-Reiters der
Istzustand ausgelesen (Error falls nicht möglich), deshalb kommt's da
so gut wie nie zu Missverständnissen.

von Marcus P. (mapa)


Lesenswert?

@Holger
ich wohne im Raum Stuttgart, vielleicht sind hier noch andere aus dem
Raum Stuttgart die Bereit wären mir zu helfen??

@Thomas
Astabiler Multivibrator ist fertig, LED`s blinken. Habe diese Schaltung
genommen.
http://www.elektronik-kompendium.de/sites/praxis/bausatz_led-wechselblinker.htm

von Thomas O. (Gast)


Lesenswert?

ok jetzt musst du es nur noch hinbekommen das das ganze schneller
blinkt.

@All: wie hoch müsste die Geschwindigkeit sein? Kann man in Ponyprog
die Geschwindigkeit zum proggen runtersetzen?

von Marcus P. (mapa)


Lesenswert?

von der blink geschwindigkeit habe ich es jetzt so, dass man kaum noch
sieht das es blinkt, oder ist das schon zu schnell???

von Karl H. (kbuchegg)


Lesenswert?

Im Gegenteil.
Viel zu wenig. Treib den Multivibrator so hoch wie du
nur kannst.

von Sonic (Gast)


Lesenswert?

Wie schon mehrfach erwähnt: gutes Werkzeug ist alles! Original AVRISP
von ATMEL sagt: Taktfrequenz mindestens 4x ISP-Frequenz. Investiert
doch die 40€, dann seit ihr viele Sorgen los!

von Thomas O. (Gast)


Lesenswert?

er hat sich ja nen ARVISP bestellt, will aber seinen ATMEGA wieder
erwecken.

von Sonic (Gast)


Lesenswert?

Ich hab' mir den Luxus eines GALEP von Conitec gegönnt, der kann die
Teile zuverlässig wiederholen. Ist halt sauteuer! Ansonsten: die
Takfrequenz 4x der ISP-Frequenz, dann sollte es gehen!

von Marcus P. (mapa)


Lesenswert?

Wie hoch ist die ISP-Frequenz, wie bekomme ich das heraus?

dann nehme ich einfach einen 22uF Kondensator und 470 Ohm Widerstand,
somit habe ich eine schnelle Blinkfrequenz. Oder immer noch zu wenig!

Ich habe auch noch einen 16Mhz Oszillator da!

von Michael U. (Gast)


Lesenswert?

Hallo,

16MHz-Oszillator lohnt sich zu probieren.
Wenn der AVR nicht allzu schlecht gelaunt ist (ungünstige Verdrahtung,
fehlende 100n-Cs an Ub usw.) kommt er damit durchaus klar.

Falls mit dem Multivibrator: eine LED raus und durch ca. 3,3k ersetzen,
dort den AVR ran, sonst wird es kein sauberer H-Pegel für den AVR.
Natürlich den Multivibrator mit 5V betreiben. Die eine Diode sollte da
immernoch blinken (Rest mit Originalwerten).

Dann die 47µ-Elkos durch 2,2nF oder so ersetzen, er sollte dann
immernoch schwingen. Erkennbar nur noch daran, daß die LED mit
"halber" Helligkeit leuchtet.

Die 2,2n können auch noch kleiner sein, wenn er da noch schwingt.

Du bist dann immernoch irgendwo im oberen NF-Bereich (vermutlich
20-30kHz, keine Lust, zu rechnen), mußt also die ISP-Frequenz weit
genug runter setzen können...

Gruß aus Berlin
Michael

von Hubert.G (Gast)


Lesenswert?

Probier den Oszillator, das ist der einfachste Weg.
Ein Multivibrator mit den RC wie du geschrieben hast, arbeitet im
unteren kHz Bereich.

von Marcus P. (mapa)


Lesenswert?

ok habe nun den 16Mhz Oszillator angeschlossen, was muss ich jetzt tun,
damit der uC wieder funtkioniert???

von Thomas O. (Gast)


Angehängte Dateien:

Lesenswert?

kannst du kurz nochmal aufzählen wie deine Schaltung aufgebaut ist wo
der ATM8 drinsitzt? Ist da alles ok, kommen nach dem Spannungsregler
auch 5V raus? Hast du die empfolenen Kerkos am Spannungsregler und am
µC dran?

Wenn du jetzt nen richtigen Quarzoszilator hast kanns losgehen. 5V und
GND an die entsprechenden Beinchen des Oszi's am Ausgangpin kommen
jetzt 16 MHz raus diese musst du an den Anschluß XTAL1 hängen und das
mit möglichst kurzen Leitungen. Wenn jetzt die Fuses glücklicherweise
auf CKSEL=0000 und SUT=00 programmiert sind, müsste das auslesen der
Fuses schon gehen. Es sei den der Resetpin und das SPI sind
deaktiviert. Dann hilft wie gesagt nur noch das paralelle
Programmieren.

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.