Forum: Mikrocontroller und Digitale Elektronik AVR-Tutorial: USBasb, Fuses, Anfängerprobleme


von Heuamöbe (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich bin gerade dabei mich durchs AVR-Tutorial zu kämpfen, habe aber mit 
der Software einige Probleme. Auf einem Breadboard habe ich die Fuses 
auf einem Atmega8A gut setzen können und auch das Flashen der ertsen 
beiden Beispiel-Programme hat ohne Probleme funktioniert. Daraus folgere 
ich, dass Atmel Studio und der USBasb-Treiber richtig funktionieren.
Jetzt habe ich mir die Anfangsschaltung aus dem Tutorial auf eine 
Platine gelötet, da das experimentieren auf dem Breadboard doch sehr 
unübersichtlich ist. Einmal die Fuses setzen funktioniert auch noch 
(habe ich mit zwei neuen Mikrokontrollern ausprobiert -.-), danach geht 
aber nichts mehr und AVR Burn-O-Mat meldet nur noch Fehler bzw. kann 
keine Verbindung mehr herstellen.

Habt ihr eine Idee woran das liegen könnte? Beim setzen der Fuses habe 
ich mich eigentlich genau ans Tutorial gehalten. Ich habe mal ein paar 
Screenshots gemacht, vielleicht kann man das Problem daran besser 
nachvollziehen.

Vielen Dank schonmal.

von fooo (Gast)


Lesenswert?

dumme frage

selber Controller?

von Heuamöbe (Gast)


Lesenswert?

Die Bilder sind alle vom selben Controller.
Sonst habe ich die Prozedur mit 3 verschiedenen durchprobiert. Immer das 
selbe Verhalten.

von Dietrich L. (dietrichl)


Lesenswert?

Welchen Clock hast Du gewählt und ist er bei Deiner HW auch vorhanden?

Der Klassiker ist, den internen Clock abzuschalten ohne dass ein Quarz 
oder externer Clockgenerator vorhanden ist.

Gruß Dietrich

von Heuamöbe (Gast)


Lesenswert?

Ich habe mich genau ans Tutorial gehalten: 4 MHz Quarz mit 2 Kapazitäten 
und dann die Fuses wie in den Bildern gesetzt. Auf dem Breadboard hat 
das mit den ersten zwei Programmen auch so funktioniert.

von Dietrich L. (dietrichl)


Lesenswert?

Heuamöbe schrieb:
> Auf dem Breadboard hat
> das mit den ersten zwei Programmen auch so funktioniert.

- Hast Du die selben Bauteile verwendet? Stimmen die Werte?
- Ist der Quarz mal auf den Boden gefallen und vielleicht kaputt?
- Ist die Leiterplatte in Ordnung (Kurzschluss, Haarriss, kalte 
Lötstelle, Verdrahtungsfehler)?
- Sind Stützkondensatoren verbaut?

Gruß Dietrich

von Heuamöbe (Gast)


Lesenswert?

- Die selben Bauteile habe ich verwendet. Die Werte müssten auch 
stimmen.
- Der Quarz ist mir tatsächlich mal heruntergefallen, als ich ihn wegen 
einem Fehler aus- und wieder einlöten musste. Kann man ohne Oszilloskop 
testen, ob der Quarz noch funktioniert? Oder ist es möglich einen Quarz 
anderer Frequenz zu nutzen? Einen 4 Mhz Quarz habe ich leider nicht mehr 
da.
- Die Leiterplatte habe ich mehrmals überprüft, das müsste auch stimmen.
- Mit Stützkondensator ist zum Beispiel der Kondensator zwischen GND und 
VCC gemeint? Davon waren im Tutorial einige verbaut, das habe ich auch 
so übernommen.

Am interessantesten scheint der Quarz zu sein. Wäre es denn möglich ohne 
funktionierenden Quarz die Fuses zu setzen? Weil das ging ja (einmal).

von Dietrich L. (dietrichl)


Lesenswert?

Heuamöbe schrieb:
> Wäre es denn möglich ohne
> funktionierenden Quarz die Fuses zu setzen? Weil das ging ja (einmal).

Unabhängig vom Takt geht das mit einen High Voltage (HV) Programmer.

Alternative: einen externen Takt an den XTAL1 Eingang anschließen. 
Normalerweise müssten die Fuses dann auf "ext. Clock" eingestellt 
werden, aber es sollte auch (hoffentlich) mit der Einstellung "Crystal 
Oscillator" funktionieren.

Der externe Takt kann entweder ein fertiger Quarzoszillator sein, es 
kann aber auch ein NE555 (Timer) mit passender Beschaltung oder ein 
Schmitt-Trigger-Oszillator (rückgekoppeltes invertierendes Gatter mit 
Schmitt-Trigger-Eingang, z.B. 74HC14, 74HC132, ...) verwendet werden.

Gruß Dietrich

von Wusel D. (stefanfrings_de)


Lesenswert?

Im Datenblatt des Mikrocontrollers steht, welche Quarz-Frequenzen für 
welche Einstellungen geeignet sind.

Kurz gesagt: Ja, Du kannst andere Quarze nehemn, aber nicht alle.

von Heuamöbe (Gast)


Lesenswert?

Gerade geht es mir eher darum, ob man aus dem beschriebenen Verhalten 
(einmal Fuses setzen geht, danach geht nicht mehr) auf eine Fehlfunktion 
des Quarzes schließen kann.
Die Fuses habe ich nämlich sicher auf externen Quarz (nicht 
Quarzoszillator) eingestellt.

Könnte ich probehalber einen Quarz anderer Frequenz benutzen? Woraus 
sich die benutzten Frequenzen ergeben habe ich noch nicht wirklich 
verstanden (Warum sollte man seinen AVR mit 1MHz laufen lassen, wenn es 
genauso mit 8MHz, also acht mal so schnell geht?).

von LayoutDb (Gast)


Lesenswert?

Kannst du denn einen Fehler auf der Platine ausschließen ?
PB6\PB7 (Pin9\Pin10) jeweils auf ein Bein des Quarzes (mit zwei 
Anschlüssen), und von jedem Bein vom Quarz einen 22pF Keramikkondensator 
auf Gnd ?

Kannst zur Not ja ein Foto von deinem Aufbau hochladen.

Heuamöbe schrieb:
> (Warum sollte man seinen AVR mit 1MHz laufen lassen, wenn es
> genauso mit 8MHz, also acht mal so schnell geht?).

Bin nun auch nicht der Profi, aber evtl. hilft dir das Datenblatt des 
Atamega8 weiter :

http://www.atmel.com/devices/atmega8.aspx?tab=documents

Electrical Characteristics

ATmega8 Typical Characteristics - Active Supply Current vs. Frequency

von F. F. (foldi)


Lesenswert?

Heuamöbe schrieb:
> (Warum sollte man seinen AVR mit 1MHz laufen lassen, wenn es
> genauso mit 8MHz, also acht mal so schnell geht?).

Weil man dann genau diese Fehler vermeidet, bis alles richtig läuft.
Ohne dass ich das jetzt prüfen kann, aber ich bin sicher du hast sie 
"verfused".
Nimm doch das Atmel Studio. Das ist nicht so kompliziert mit den Fuses.

von Malte S. (maltest)


Lesenswert?

Heuamöbe schrieb:
> Kann man ohne Oszilloskop
> testen, ob der Quarz noch funktioniert?

Zumindest ganz grob abschätzen. Mit dem Multimeter sollte an den 
XTAL-Pins ca. Vcc/2 messbar sein, wenn der Oszillator schwingt.

von Wusel D. (stefanfrings_de)


Lesenswert?

> Warum sollte man seinen AVR mit 1MHz laufen lassen,
> wenn es genauso mit 8MHz, also acht mal so schnell geht?

1) Weil er dann weniger Strom verbraucht, was vor allem bei 
Batteriebetriebenen Geräten von Bedeutung ist. Ein elektronisches Spiel 
von mir wird mit 37,5 kHz getaktet.

2) Weil die externe Beschaltung mit geringerer Taktfrequenz einfacher 
ansteuerbar ist. Zum Beispiel LC-Displays.

3) Weil UART Kommunikation bestimmte Bitraten verlangt, die nicht mit 
jeder Taktfrequenz ausreichend genau erreichbar ist. 3.6864 Mhz eigenet 
sich für die gängigen Bitraten am Besten.

4) Weil die geringere Taktfrequenzen geringere Versorgungsspannungen 
ermöglichen.

von Heuamöbe (Gast)


Lesenswert?

LayoutDb schrieb:
> Kannst du denn einen Fehler auf der Platine ausschließen ?
> PB6\PB7 (Pin9\Pin10) jeweils auf ein Bein des Quarzes (mit zwei
> Anschlüssen), und von jedem Bein vom Quarz einen 22pF Keramikkondensator
> auf Gnd ?

Das war der entscheidende Hinweis. Das Kabel zu Ground habe ich schlicht 
übersehen. Jetzt scheint es wieder zu gehen. "Verfust" habe ich also zum 
Glück nichts.

Vielen Dank an alle für die schnelle und ausführliche Hilfe hier, auch 
bei solchen Anfängerproblemen. Scheint ein klasse Forum zu sein :)



F. Fo schrieb:
> Nimm doch das Atmel Studio. Das ist nicht so kompliziert mit den Fuses.

Funktioniert Atmel Studio denn mit dem USBasp/Avrdude? Hier auf der 
Seite habe ich nur eine Anleitung für 6.0 gefunden. Die da aufgeführten 
Ordner finde ich bei mir so aber nicht.

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.