PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega8 regungslos



Babbage
22.05.2009, 16:01
Hallo an alle

Ich versuche verzweifelt einen Atmega 8 (SMD Ausführung ATMEGA8-16AU) zum laufen zu bringen.

Ich habe den Controller programmiert via ISP. Das Auslesen des Flash funktioniert auch wieder.
Der Controller ist auf internen RC-Oscillator eingestellt. Die Watchdog und Brownout sind aus.

Das Programm besteht ausschließlich aus dem Setzen von DDRA,DDRB,DDRC sowie PORTA,PORTB,PORTA auf 255. mit darauf folgender while(1); Endlosschleife.

Allerdings tut sich an keinem der Ports irgend etwas.
Ich messe durchgehend eine Spannung von 50-200 mV also Low.

Ich habe schon diverse Atmega's zum laufen gebracht, aber dieser zeigt keine Regung.
Ein Austausch des Prozessors brachte kein Ergebnis.

Am Prozessor liegen GND und VCC an. AGND und AVCC sind auch angeschlossen. Ein Pullup von 4,7k liegt an Reset.

Vielleicht habt ihr ja eine Idee.

Babbage

Hubert.G
22.05.2009, 17:12
Kannst du auch die Fuse auslesen. Wenn das auch geht, mehrmals hintereinader mit dem selben Ergebnis, dann wird wohl dein Programm falsch sein.

Babbage
22.05.2009, 20:01
Die Fuses kann ich mehrfach mit dem identischen Ergebnis lesen und auch mit verify best'tigen.
Habe bei den Fuses auch verschiedene Optionen getestet wie cksel oder anderen Prozessorgeschwindigkeiten.
Alles ohne ein Lebenszeichen des Controllers.

Das Programm ist nur noch ein 3-zeiler.
DDRB=255;
PORTB=255;
while(1);

Habe ich auch mit verschiedenen Ports getestet, auch hier keine Regung.

Viele Fehler können da eigentlich nicht drin sein. Wenn DDR und PORT gesetzt sind dann sollte High an den entsprechenden Ports liegen.

Was ich mich schon gefragt habe ist ob irgenwelche Atmega 8 Spezialitäten zu beachten sind. z.B. irgendein SFIOR Flag.

Hubert.G
22.05.2009, 20:06
Womit hast du diesen 3-Zeiler compiliert und in den Mega8 geladen? Ich kann mir nicht vorstellen das das so funktioniert.

Babbage
22.05.2009, 21:58
Habe das mit GCC compiliert.
Genau wie es auch schon 20 mal bei anderen Projekte fuer andere Controller funktioniert hat. Das Makefile wurde natuerlich auf den Mega8 angepasst.

Im RN Bereich https://www.roboternetz.de/wissen/index.php/HEX_Beispiel-Dateien_f%C3%BCr_AVR habe ich auch das Hexfile fuer den Mega8 heruntergeladen und uebertragen. Dabei sollte der Pin B1 eine LED im sekundentakt zum Blinken bringen.
Auch hier hat sich nix am Ausgang B1 getan.

McJenso
22.05.2009, 22:51
Hallo,

wenn du alles andere ausgeschlossen hast, ist der Chip defekt. So bitter das auch sein mag.

Gruß

Jens

ps: hast du den Reset auch nachgemessen?

Babbage
22.05.2009, 23:29
Vielen Danke für eure Ideen soweit, aber der Controller kann's auch nicht sein. Ich habe 5 verschiedene Atmega8 (aus einer Lieferung) auf 2 verschiedenen Platinen getestet. Alle zeigten dasselbe verhalten. 3 Stück von den 5 habens leider nicht überlebt und sind jetzt im Controllerhimmel.

Normalerweise sind noch einige Bauteile auf der Schaltung. Bei der 2. Platine hab ich dann aber nur noch wie beschrieben den Abblockkondensator und den Pullup an Reset angeschlossen. Auch hier kam kein anderes Resultat heraus.

McJenso
23.05.2009, 10:09
Hallo,

stimmt an den Lockbits etwas nicht, vielleicht Mode2 oder so?

Gruß

Jens

Hubert.G
23.05.2009, 10:13
Was hast du für einen Programmer und welches Programm benutzt du. Was für eine Stromversorgung verwendest du.
Wenn du die Fuses wieder auslesen kannst, dann läuft der Kontroller auch, sonst würde das nicht funktionieren.
Zeig mal wie die Fuses aussehen.

Babbage
23.05.2009, 13:19
@McJenso
An den Lockbits hab ich gar nichts gemacht, also die voreingestellten Werte. Und der Mode2 sagt mir jetzt auch nichts. Sollte ich da was beachten?

@Hubert.G
Ich in diesem Fall einen Nachbau vom dem Programmer von www.klaus-leidinger.de
Aber das Ding geht. Ich genau mit diesem Programmer korrekt einen Attiny45 und einen Atmega32 geflasht. Auch noch danach zum testen.

Als Stromversorgung hab ich ein Netzteil welches auf 5V eingestellt ist.
Zum programmieren verwende ich das AVR8 Burn-O-Mat Tool. Das ruft den AVRDude auf. An den Versorgungs Pins liegen GND und 5V an.
Aber wie gesagt ich schreibe den Atmega, trenne ihn kurz vom Strom, lese wieder und die beiden Hex-File sind identisch. Auch das Verify geht.

Falls die konkrete Fuses Einstellung interessant ist, die kann ich erst am Montag wieder herausfinden.

Ich hab den programmierten Controller mal über einen Shunt betrieben und die aus dem Strom resultierede Spannung gemessen. Im Abstand von ca. 1µs gibts einen kleinen Einschwinger von ein paar mV. Das deutet für mich auf einen laufenden Prozessor hin. Die interne Frequen lag bei 1Mhz, das würde passen. Wie ich das bewerte soll ist mir nicht ganz klar.

Grüße und danke für eure Anregungen bisher

Babbage

McJenso
23.05.2009, 16:20
Hallo,


Mode 2 bezog sich auf die Lockbits. Da du das Programm wieder auslesen kannst, wird es da wirklich nicht dran liegen.

Da alles andere richtig ist, bleiben nur defekte Chips.

Im ernst, ich kann dir jetzt nur raten, deine Ergebnisse in Frage zu stellen und noch einmal alles in Ruhe zu prüfen.

Oder der Chip himmelt sich selbst nach dem Einschalten, hast du einen Schluß nach Gnd geprüft. Nach dem Motto, das Programm schießt in dem Moment den Port, wenn der Ausgang 1 wird.

Gruß

Jens

Babbage
23.05.2009, 20:10
Defekte Chips, Alle 5 Stück? Ist schwer zu glauben. Ich werde mir noch ein paar bestellen, auch mal eine DIL Variante die kann ich dann im SDK testeb.

Ein Schluß kann ich mir auch nicht vorstellen. Werde es aber am Montag nochmal checken. Das Netzteil habe ich stombegrenzt betrieben und die Strombegrenzung hat nie reagiert. Außerdem kann ich die Chips danach wieder neu flashen als ob nix gewesen wäre.
Der gemessene Strom liegt beim Anlegen der Spannung bei 6-8 mA. Also ziemlich gewöhnlich für einen Atmega im Leerlauf.

Gruß Babbage

Babbage
23.05.2009, 20:10
Defekte Chips, Alle 5 Stück? Ist schwer zu glauben. Ich werde mir noch ein paar bestellen, auch mal eine DIL Variante die kann ich dann im SDK teste.

Ein Schluß kann ich mir auch nicht vorstellen. Werde es aber am Montag nochmal checken. Das Netzteil habe ich stombegrenzt betrieben und die Strombegrenzung hat nie reagiert. Außerdem kann ich die Chips danach wieder neu flashen als ob nix gewesen wäre.
Der gemessene Strom liegt beim Anlegen der Spannung bei 6-8 mA. Also ziemlich gewöhnlich für einen Atmega im Leerlauf.

Gruß Babbage

Besserwessi
23.05.2009, 22:42
Ein Stromverbrauch von 6-8 mA kommt mir recht hoch vor. Normal wäre eher 2 mA/MHz also rund 2 mA.

Ein anderer einfacher test wäre zu sehen, ob sich Stromaufnahmen bei einem Reset ändert.

Der Fehler spricht mehr für irgendeinen Fehler in der Schaltung, vor allem das die tatsächeliche Schaltung vom geplanten irgendwie abweicht.
Ist wirklich AVCC und AGND richtig angeschlossen ?

Babbage
24.05.2009, 00:47
Habe an 5V Pin 4(VCC),6(VCC) und 18(AVCC)
Masse an Pin 3(GND),5(GND) und 20(GND)
Einen Anschluß AGND gibts hier wohl nicht.

Das mit den 6-8mA kann ich nochmal kontrollieren, kann aber sein das ich die noch bei 8Mhz gemessen habe. Ansonsten hatte ich nur die Anzeige auf dem Netzteil und die lag immer bei 0,01A halt im Rahmen der Messgenauigkeit.

Das mit dem Reset werde ich mal am Montag testen.

Ob da ein Fehler in der Schaltung ist kann ich nicht sagen aber ich habe außer den Steckern nur einen Kondensator und den Reset Pullup bestückt.
Und die Spannungen 0 und 5V liegen an. (Definitiv 0V nicht unbeschaltet, weil ich für die 0V Messsung auch mal die 5V als Messreferenz vervendet hatte.)

So gute Nacht, vielleicht hab ich oder ihr ja im Traum noch ne gute Idee.