Hallo,
bin relativer Anfänger und habe einen Haufen "Einsteigersachen" von
einem Nachbarn bekommen, mit denen ich nun experimentiere. Nach den
ersten kleinen Platinen mit LEDs, Tastern usw. ging es an ein erstes
"richtiges" Projekt: Steuerung für eine Tür mit eigenem Layout.
Leider erhalte ich zum ATmega8 (den ich dazu bekommen habe) keine
Kommunikation, der Programmer (AVR Dragon) kann zwar die Spannung der
Leiterplatte auslesen (4.9V), aber weder die AVR ID, noch Fuses und/oder
Lockbits schreiben (vom Programmcode mal ganz abgesehen).
Der Quarz schwingt einfach nicht (altes Oszi steht zur Verfügung)!!!
Also bin ich mal auf Fehlersuche gegangen:
- Reset PIN am AVR ist normalerweise auf 5V, nur wenn ich den manuellen
Reset Taster drücke geht es runter auf 0V (oder der Programmer aktiv
wird/ist)
- PIN 1 vom Programmer (MOSI?) geht auf PIN 15 (PB3) am AVR
- PIN 5 ist an Reset des AVR (PIN 29) angebunden
- PIN 7 vom Programmer (Takt/SCK?) geht auf PIN 17 (PB5) am AVR
- PIN 9 vom Programmer (MISO?) geht auf PIN 16 (PB4) am AVR
- an PIN 3, 5 & 21 des AVR liegt GND an
- an PIN 4 & 6 des AVR liegen 5V an (genau: 4,94V)
- an PIN 18 des AVR liegen 5V über L=10uH an
- zw. PIN 7 & 8 liegt ein 14,7456 Quarz mit 27pF Keramik-Cs
- diese Leitungen habe ich komplett durchgepiepst/gemessen
- da es ein SMD AVR ist: es sind keine Brücken zw. benachbarten Pins
vorhanden (ebenfalls durchgepiepst)
- Stromaufnahme der Schaltung ca. 5mA
=> der AVR ist noch total neu und unprogrammiert (habe schon den zweiten
frisch ausgepackt und eingelötet). Warum schwingt der Quarz nicht an,
bzw. warum komme ich nicht mit dem Programmer auf den uC drauf und kann
die Fuses richtig für den Quarz einstellen? Wie gesagt Brücken sind
nicht vorhanden, Qualm gab es auch nicht.
Was ich schon versucht habe: Quarz und Kondensatoren gewechselt => kein
Erfolg. AVR ausgelötet (dabei kaputtgemacht...) und zweiten/neuen
eingelötet => ebenfalls kein Erfolg.
Was mache ich bloß falsch?????
Gruß, Martin
P.S. einen ATmega habe ich noch, möchte den dritten aber ungern
auspacken
Der Quarz schwingt nur wenn man ihm das auch so sagt, default ist der
interne RC dran. Ich wuerd erst mal auf die Verkableung tippen. die muss
eine Verbindung bringen. Einfach raten was deren funktion ist reicht
nicht.
Dann...Ich wuerd mal auf die Fuses tippen. Da kann man viel falsch
machen. Schau doch erst mal deren Initialzustand und deren Bedeutung an.
Wow, das war mehr als schnell...
Wie gesagt: ich würde gerne die Fuse Bits auf externen Quarz einstellen.
Aber das muss der Programmer erst mal zulassen => macht er hier halt
nicht...
Verkabelung habe ich schon doppelt und dreifach geprüft und oben extra
noch einmal die PINs hingeschrieben die verbunden werden (dafür habe ich
eine Adapterleitung statt des AVR Dragons/Programmiergerätes
angeschlossen): Durchgang besteht wirklich von einem Ende bis auf den
PIN am ATmega in der Schaltung.
Prüfe ich morgen aber wieder.
Gruß, Martin
P.S. andere ATmega8 ließen sich vorher und lassen sich immer noch
problemlos mit gleichem Programmierkabel und AVR Dragon ansprechen, nur
nicht in dieser Schaltung :=(
Martin Schröder schrieb:> P.S. andere ATmega8 ließen sich vorher und lassen sich immer noch> problemlos mit gleichem Programmierkabel und AVR Dragon ansprechen, nur> nicht in dieser Schaltung :=(
Das ist wohl die Lösung des Problems!
Martin Schröder schrieb:> - da es ein SMD AVR ist: es sind keine Brücken zw. benachbarten Pins> vorhanden (ebenfalls durchgepiepst)
Hast du den Controller evtl. verdreht (90°, 180°, 270°) eingelötet?
Hallo,
@Gregor: deshalb ja meine Frage: was braucht dieser uC zum Start, bzw.
was sind typische "Anfängerfehler"
@Juergen: 100nF sind 4 Stück im Abstand von ~8mm dran, zwei auf der
"linken" Seite für die beiden VCC PINs, sowie zwei auf der rechten Seite
für die AVCC und AREF Pins
@Magnus: nein. Habe auch wirklich am uC die PINs ab dem Punkt/PIN 1
Markierung abgezählt und habe bis zum Programmer durchgepiepst
Was braucht ihr für weitere Infos? Habe mal zwei Bilder der Leiterplatte
eingefügt. Nicht erschrecken: SMD Quarz und Kerkos habe ich
versuchsweise gegen bedrahtete Elemnte getauscht, ISP Buchse habe ich
beim Aus-/Einlöten des ersten uCs etwas angekokelt und zudem habe ich
beim Auslöten eine Leiterbahn in der rechten unteren Ecke zerlegt...
Aber wie gesagt: keinerlei Kontakt der PINs untereinander und alle
Verbindungen vom uC an den Stecker sind ok.
Gruß, Martin
Martin Schröder schrieb:> Leider erhalte ich zum ATmega8 (den ich dazu bekommen habe) keine> Kommunikation, der Programmer (AVR Dragon) kann zwar die Spannung der> Leiterplatte auslesen (4.9V), aber weder die AVR ID, noch Fuses und/oder> Lockbits schreiben
Wenn der Dragon die Spannung richtig misst, ist das schon ein gutes
Zeichen. Was meldet der Dragon, wenn Du die Fuses lesen willst?
Martin Schröder schrieb:> Der Quarz schwingt einfach nicht (altes Oszi steht zur Verfügung)!!!
Das wird er erst, wenn Du die Fuses entsprechend gesetzt hast. Davor
läuft der ATmega8 mit dem internen Taktoszillator. Vergiss also den
Quarz vorerst.
GELÖST!!!
@avr: du bist mein Held des Wochenendes. Der Dragon stand zwar auf 1MHz
im AVR Studio, aber bin nun mal auf 100kHz runtergegangen => dann konnte
ich Device ID und Fuses lesen/schreiben. In den Fuses dann den externen
Quarz eingestellt und Clock wieder hoch auf 1MHz => kein Problem!!!
ARGH, das hat mich einen uC gekostet (den ausgelöteten der Schrott ist),
einen SMD Quarz, SMD Kerkos, 1,5 Tage nervliger Zusammenbruch...
Dabei steht bei der Programmierfrequenz im AVR Studio auch noch: Takt
darf max. 1/4 des uC Taktes sein. Blöd nur, dass der Mega8 mit 1MHz
interner Clock ausgeliefert wird. ARGHHHHHH.
Nochmals ein dickes danke für den entscheidenden Tipp.
Gruß, Martin