PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Atmega 8 mit 12 MHz Quarz richtige Fuse



SmaXh14
09.05.2014, 22:34
Hey Leute,

ich versuche gerade das AVR Lab Tool von ullihome.de nachzubauen. Dabei wird im Prinzip ein avrisp mk2 nachgebaut. Ich mache das ganze nur als Übung, den avrisp mk2 besitze ich bereits.
In der Schaltung wird ein Atmega 8 zusammen mit einem 12 MHz Quarz verwendet. Ich bin mir jetzt allerdings nicht mehr ganz sicher welche die optimale Fuse Einstellung ist. Aktuell sitzt auf meinem Steckbrett nur der Atmega 8,
mein Wannenstecker-Adapter und ein pullup-widerstand für den reset.

Momentan wird durch meine fehlgeschlagenen Versuche, die Fuses richtig zu programmieren mein Atmega 8 nur durch einen Takt von meinem Arduino am Leben gehalten.

Als high-fuse hab ich 0xD8 und als low-fuse 0xff gesetzt. Meiner Meinung nach sind die Fuses richtig, aber sobald ich das Taktsignal abziehe und meinen Quarz inklusive zweier 22pF Kondensatoren anschließe, funktioniert das Ganze nicht mehr.
Ich bekomme dann wenn ich im AVR Studio in der Device Programmierung die Signatur auslesen will eine Fehlermeldung mit "unable to enter programming mode" und kann dann somit auch sonst nichts mehr machen.

Vielleicht könnt ihr mir ja sagen was ich falsch mache. Ach und ja ich habe bereits nach dem Thema gesucht, heute den ganzen Tag.

Vielen Dank
Gruß SmaXh

oberallgeier
09.05.2014, 22:58
... AVR Lab Tool ... nachzubauen ... Atmega 8 zusammen ... high-fuse ... 0xD8 ... low-fuse 0xff ...Hi Nachbar, woher stammt denn dieser mega8?? Der ist doch für einen Bootloader gefust ??? Siehe BOOTREST = Select Reset Vector :-/

Schau Dir doch mal bitte diese Erklärungen (http://www.rn-wissen.de/index.php/Avr#Die_Fusebits) an und diesen Fuserechner (http://www.engbedded.com/fusecalc/). Vielleicht klappts dann besser. Vermutlich kannst Du ja auch bei Deinem Lab die Fuses auslesen??

SmaXh14
10.05.2014, 18:06
Hey,

eigentlich bin ich auch von OA, allerdings kennt des hier keiner, deswegen hab ich Kempten gewählt :D

Der mega8 ist von reichelt ;) sind also beide (jetzt nichtmehr) auf Werkszustand, da es schon der zweite ist den ich ein bisschen verstellt hab. Das Ganze wird aus meinen eigenen Teilen gebaut, nach der Anleitung und es ist kein Bausatz oder so.
Den Bootloader wollte ich eigentlich danach erst aufspielen. Danke für die Links, die Seiten habe ich mir vorher bereits angeschaut und weiß auch im Prinzip was die Fusebits bedeuten, den Bootloader habe ich nicht selbst geschrieben, da liegt mir nur eine .hex Datei vor.

Der "AVR Lab" soll sich dann später wie ein avrisp mk2 verhalten. Sollte ich zuerst den Bootloader aufspielen und dann den Rest machen? Ich verstehe halt nicht, warum ich jetzt nur noch mit einem Hilfstakt vom Arduino auf diesen zugreifen kann und er irgendwie nicht mit dem 12 MHz Quarz läuft bzw. dabei dann nicht mehr über das atmel studio beschreibbar ist.


Vermutlich kannst Du ja auch bei Deinem Lab die Fuses auslesen??

Wie ist das gemeint? Ja später sollte das Lab das auch beherrschen ;)

Danke vielmals, dass Du Dir die Zeit nimmst!

EDIT: Hier noch den Link zur Anleitung (PDF) http://www.weigu.lu/a/pdf/USB_AVR_Lab.pdf

Wsk8
10.05.2014, 20:45
Ich verstehe halt nicht, warum ich jetzt nur noch mit einem Hilfstakt vom Arduino auf diesen zugreifen kann und er irgendwie nicht mit dem 12 MHz Quarz läuft bzw. dabei dann nicht mehr über das atmel studio beschreibbar ist.
Weil du höchstwahrscheinlich auf ext. Clock und nicht auf ext. Crystal eingestellt hast.

Bist du sicher dass du sowas nachbauen kannst/willst?
Du musst dazu USB1.1 softwareseitig implementieren. Du stößt aber schon allein beim einstellen der Fuses an deine Grenzen.

mfg

SmaXh14
11.05.2014, 18:06
Hey Wsk8,

danke für deinen Hinweis, allerdings sind die Fuses für den ext. Crystal eingestellt. Daher auch Low-Fuse auf 0xff!
Ich denke nicht, dass ich dabei an meine Grenzen stoßen werde, da es sich nur um das flashen handelt und ich softwareseitig überhaupt nichts implementieren muss. Denn das hat (wie ebenfalls oben erwähnt) bereits Christian Ulrich (www.ullihome.de (http://www.ullihome.de)) für mich und alle die es nachbauen wollen erledigt. Bisher habe ich mega328 geflasht und da ist bisher nie etwas schief gegangen.

Ich bin jetzt immer noch nicht sehr viel weiter gekommen und hoffte eigentlich auf Erfahrungen Eurerseits, ob es noch an was anderem liegen könnte, da ja bekanntlich die low-fuse für den externen Takt korrekt eingestellt ist. Liegt dieses Verhalten an einem (noch) nicht geflashten Bootloader oder habe ich irgendwas übersehen?

Gruß

Wsk8
11.05.2014, 19:05
Schon mal 0xCF Low Fuses probiert? (SUT0/1)
Deine Einstellung wird laut Datenblatt NICHT empfohlen.

mfg

SmaXh14
11.05.2014, 22:31
Zunächst danke für deinen Tipp, werde ihn morgen mal ausprobieren. SUT0/1 wäre dann 0xDF, 0xCF wäre SUT0/0, welche Fuse war von Dir gemeint? Wahrscheinlich 0xDF, da ja SUT0/0 nur für Keramikresonatoren ist. Hab das Datenblatt gerade eben nochmal genau durchgeschaut und im Abschnitt "Crystal Oscillator" (Seite 23 bei mir) keinen Widerspruch gelesen, vielleicht bin ich aber auch im falschen Abschnitt.

Gruß

Wsk8
11.05.2014, 22:50
Laut der im 2. Beitrag geposteten Seite ist 0xCF: SUT0 = 1; SUT1 = 1
28195 Seite 28

mfg

SmaXh14
12.05.2014, 11:11
Note: [ ] means unprogrammed (1); [x] means programmed (0).
Bedeutet ein Haken auf der Seite nicht, dass es eine 0 ist? Vielleicht bin ich gerade auch komplett auf dem Holzweg aber es ist doch normalerweise so das die Haken invertiert werden?
Genau, die Tabelle hab ich mir auch angeschaut und meine Einstellung ist aktuell die Letzte und da ist kein Vermerk wie bei den zwei Einträgen.

Gruß

SmaXh14
12.05.2014, 15:24
Habe jetzt mal neu gefused, LOW auf 0xCF und HIGH auf 0xC9. Hab den Boot reset vector rausgenommen. Weiterhin keine Veränderung, er läuft nur mit Hilfstakt.
Hab versucht mal den Bootloader zu flashen, da kommt dann bei verifying flash, also nachdem er geflash hat "Verifying Flash...Failed! address=0x18a3 expected=0xe6 actual=0x00"

Könnte es sein, dass es der falsche Quarz ist oder dieser beschädigt ist?

EDIT: Das flashen des Bootloaders war mittlerweile erfolgreich

Wsk8
12.05.2014, 19:05
1. Atmega komplett auf Werkszustand bringen (Fuses, Flash etc.)
2. LED anschließen und Programm aufspielen, dass die LED im 1s Takt blinken lässt und das auch verifizieren.
3. Quarz anschließen (überprüfen!) und nun die Fuses nur auf ext. Oscillator umstellen.
4. LED sollte nun 8x so schnell blinken. Verifizieren!
5. Hier berichten.

mfg

SmaXh14
12.05.2014, 20:55
Hab den Flash jetzt gelöscht, alle Fuses auf Werkzustand (LOW 0xD9, HIGH 0xE1). Dann geflasht, hab einfach die Blinky vom RN-Wissen genommen -> funktioniert.
Quarz wieder angeschlossen zusammen mit den 22pF Keramikkondensatoren, anschließend gefused auf 0xCF (LOW).
Led blinkt gar nicht mehr, Verbindung nicht mehr möglich.
Hilfstakt wieder angelegt, läuft.
Also ich vermute es liegt am Quarz und hab mir mal nen anderen bestellt, da ich leider grad keine Zuhause hab.

EDIT: Jetzt funktioniert alles, ich hab einfach mal die Kondensatoren weg gelassen, LED blinkt jetzt schneller :D
Außerdem hab ich gerade festgestellt, dass es 22nF Kondensatoren sind (laut Plan) und wahrscheinlich deshalb der Quarz nicht richtig anschwingen kann, oder liege ich falsch? Ich werde das Ganze mal mit (richtigen) 22pF Kondensatoren testen und glaube, dass es dann funktioniert.

Danke Wsk8 für deine aufgewendete Zeit!

Wsk8
12.05.2014, 21:32
Wie sieht den das Quarz aus?
So: http://www.shop.robotikhardware.de/shop/catalog/images/quarz.gif
Oder so wie das ganz rechte: http://www.sprut.de/electronic/pic/allgemein/resonat.jpg

mfg

SmaXh14
13.05.2014, 13:05
So wie von dem zweiten Bild der Mittlere ;) also kein Keramikquarz. Aber meinst du nicht, dass es an den Kondensatoren liegt/lag? 22nF ist ja nicht ganz so richtig.

SmaXh14
15.05.2014, 20:46
Hier nochmals für die Leute die es interessiert. Ich habe jetzt die richtigen Kondensatoren benutzt und alles hat ohne Probleme funktioniert. Gefused wurde das Ganze dann mit 0xC8 (HIGH) und 0xBF (LOW). Anschließend Bootloader drauf und mit dem Programm von ullihome.de nochmals mit Software geflasht. Funktioniert am USB Port jetzt 1A und verhält sich wie ein originaler avrisp mk2. Übung abgeschlossen, Schaltung wird so auf Platine gelötet ;)

Vielen Dank nochmals an alle und vor allem an Wsk8!