Hallo, ich hab ein kleines Problem. eigentlich dachte ich es wäre ganz
einfach, zusammenlöten, ISP anschließen und programmieren. Aber der
Atmega wird nicht erkannt :(
Also mal von Anfang an.
Ich habe mir fertige Platinen gekauft, auf denen ein Atmegax8 passt.
Die Platine hat einen 10pol ISP, 3 Pufferkondensatoren und eine
Resetlogik, 11kOhm an Plus, 100nF an Minus. VCC ist mit AVCC verbunden.
Also eigentlch nichts aufregendes. Ansonsten sind die Port an
Pfostenstecker geführt, die aber noch nicht bestückt sind.
Ich dann habe ich meinen ISP Programmierer (mySmartUSB light) genommen
und versucht den Atmega8A-16AU zu programmieren, ok eigentlich hab ich
nur versucht die CPU id auszulesen, aber er findet die CPU nicht.
Ich habe alle Leitungen überprüft, vom ISP-Sockel bis zum Atmega8A, alle
waren einwandfrei. Zu den Nachbaranschlüssen entsteht kein Kontakt
(Brücke)
1 MOSI- 15, 3 NC , 5 RST 29, 7 SCK -17, 9 MISO -16
2 VCC - 4+6, 8+10 GND 3+5 (PinISP name - Pin MPU)
Bei ID auslesen hab ich die Spannung gemessen sie lag bei 4,88V.
Der Atmega8A-AU 1133 ist neu. Das Auslesen hab ich mit AVRstudio
gemacht. Der ISP Programmierer funktioniert problemlos mit meinem
Experimentierbord Atmega16. Der Quarz und die Kondensatoren für den
Quarz sind nicht bestückt (Meines Wissens arbeitet er mit dem internen
Takt, wenn er neu ist)
Hat jemand eine Idee woran es liegen könnte? Oder was ich mal testen
könnte?
Mikel schrieb:> Hat jemand eine Idee woran es liegen könnte? Oder was ich mal testen> könnte?
ISP-Takt zu hoch eingestellt?
Der muss nämlich weniger als 1/4 des µC-Taktes betragen. Der Atmega8
wird glaub ich mit 1MHz ausgeliefert. Also muss der Takt kleiner 250kHz
sein.
Gruß Oliver
Mach mal ein aussagekräftiges Bild von der ISP-Chip Verbindung.
Mikel schrieb:> 1 MOSI- 15,> 3 NC ,> 5 RST 29,> 7 SCK -17,> 9 MISO -16> 2 VCC - 4+6,> 8+10 GND 3+5
(PinISP name - Pin MPU)
Verbinde auch Pin 18 mit Vcc und 21 mit GND.
Prüfe noch mal (mit einem Durchgangsprüfer) ob die Leitungen wirklich zu
den Pins vom Chip gehen.
Der Atmega16 (mit dem es geht) läuft auch nur mit 1 MHz(intern), Der ISP
takt ist 57,6kHz (defaultvorgabe)
Pin18, AVCC liegt an VCC, eigentlich gehört da eine Induktivität rein,
da ich die aber noch nicht habe ist es mit 0R gebrückt.
Pin 21 liegt an GND, liegt auch an.
Die Leitungen gehen wirklich von der Spitze des Stecker bis da, wo das
Beinchen ins IC geht, habe alles durchgemessen.
20 (Aref) ist offen.
Bild kommt gleich, dauert ein bißchen.
Im C8 sehe ich kein Problem, der C ist von VCC nach GND, da gehört er
auch hin. Wenn die Spule drin wäre, wäre ich mir auch nichts so sicher,
ob das so gut ist. Ist aber die Vorgabe von der Platine,
Ich hab nochmal ein Schaltplan, so wie er gelötet ist. das was weiß
durchgestrichene ist nicht bestückt, die L1 wurde überbrückt. C8 ist 1u
statt 10u, vom Reset sind nur C6 und R1 bestückt.
Der C ist auch kein Problem (und die fehlende Spule die du durch eine
Brücke ersetzt hast auch nicht).
Was aber ein Problem sein könnte: Zwischen die Vcc/GND Pärchen auf jeder
Seite des µC müssen 100nF rein.
Der Mega läuft, sobald er Versorgungsspannung hat.
Also prüfen: liegt an allen Vcc Pins auch 5V gegen Masse an.
Ansonsten bleibt nur noch, dass du irgendeinen Aderdreher im ISP-Kabel
hast. Hast du das Kabel selbst gemacht?
das Kabel habe ich nicht selber gemacht, das ist ein 6pol-6pol, aber den
adapter habe ich selber gemacht um auf 10 pol zu kommen. ich habe mit
dieser Konstellation aber schon ein Mega16 mehrfach geflashed, und auch
ein Mega128 geflashed. daraus schliese ich das es einwandfrei
funktioniert.
ich habe von dieser Platine auch schon 2 bestückt, die sich beide nicht
programmieren lassen. Die Lötpunkte (besonders die ISP und VCC ) hab ich
mit eine Lupe 45x untersucht. Auch alle Anschlüsse mehrfach gemessen,
alles sieht einwandfrei aus.
Meine einzigste Vermutung ist das die Atmegas nicht funktionieren,
kann man die noch irgendwie anders testen ob sich da was tut? Ein
Programm bekomme ich da ja nicht rein.
Was ist mit der Spiegelung des ISP-Steckers? wenn da von der L-Seite
anstatt von der B-Seite gesteckt wird, kommt nur Blödsinn heraus.
Atmegas sind recht robust, bisher haben ich nur dann einen atmega8
gekillt, wenn ich 12V drangelassen habe. auf falsche Spannung im Bereich
von 0V ..5V hat er nie ernstlich reagiert. Das müsste schon an Hardware
oder Software der ISP-Schnittstelle liegen.
Also Vcc und GND sind einwandfrei an der richtigen Stelle, damit
schliesse ich aus, das etwas am ISP verdreht ist. an den anderen Boards
funktioniert das Kabel ja auch.
Ich hab nen 11k genommen, habe gedacht der müßte auch gehen. Habe leider
kein anderen Wert da. Er ist etwas hochohmiger, deshalb dauert der rest
evt etwas länger.
Ich habe es jetzt geschafft die Boards anzusprechen. Ich hatte noch
einen anderen ISP programmer im Schrank, einer für 3Euro aus china, für
den Preis mußte ich ihn einfach kaufen :D, unter Windows lief er nicht.
vermutlich ein anderer Treiber drin. (hat eine andere Ventor und Product
ID)
Hab ihn rausgekramt, und ihn in Linux versucht zum laufen zu bringen.
hat zwar etwas gedauert, da ich mich danach erst in avrdude einlesen
mußte. Aber mit ihm ist es möglich beide Boards auszulesen. :) habe
leide immoment keine Software die ich drauf machen könnte.
Also die Boards laufen. :) da bin ich erleichtert.
Bleibt jetzt nur die Frage warum es mit dem anderen nicht geht.
Könnte es tatsächlich sein das, das timing am reset so kritisch ist,
das es bei dem mySmartUSB zu lange dauert?
werde jetzt mal versuchen den anderen unter Linux zum laufen zu
bringen. muß mal rausbekommen wie der mysmartUSB unter Linux heißt.
Hmm, hab jetzt beide Brenner dran, und jetzt gehen beide.
Das einzigste was mir dazu jetzt einfällt. Die USB Spannung von dem
anderen Rechner mit dem ich es immer versucht hatte, zu niedrig ist,
oder das das Timeing vom AVRdude unkritischer ist als von AVRstudio.
Ist es denn zum programmieren überhaupt von Nöten, AVCC und AREF zu
beschalten? Da während des Programmiervorgangs keine analogen
Komponenten benötigt werden, sollte dort doch eigentlich auch keine
Spannung angeschlossen sein müssen.
Grüße
So lala
Datenblatt sagt beschalten also beschalten! :)
Und nein, ist scheinbar nicht notwendig, ich hab Mega8er auch ohne
AVCC/AREF Belegung betrieben. Aber wenn was nicht geht ist sich NICHT an
die Spezifikation halten üblicherweise der falsche Weg...
AVCC ist erst dann notwendig, wenn das Port mit den Analoganschlüssen
benutzt wird. Erst dann sind die Treiber/Eingangsverstärker an den
entsprechenden Pins versorgt.
Aref liegt normalerweise nicht an Spannung, da wird nur ein
Pufferkondensator an die interne Aref angeschlossen, damit sie stabiler
wird.
von außen legt man nur dann Spannung an, wenn anstelle der internen Vref
eine externe Vref oder VCC als ref verwendet werden sollen.