Forum: Mikrocontroller und Digitale Elektronik Atmega88 Programmieren


von Can-Carlo D. (cancarlo_d)


Lesenswert?

Hallo Leute,

ich bin ein echter Anfänger was Löten, Programmieren von Chips und co 
angeht. Ich will unbedingt ein Board löten, die Platine habeihc auch 
schon geätzt und bestückt. Aber ich schaffe es nicht, den ATM88 zu 
Programmieren. Ich hab mir ein USBASP V2.0 ersteigert und die Platine an 
dieses Teil gepackt. Aber der Atmega wir mit avrdude gui nicht erkannt.

Wie muss ich da nun vorgehen?

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Das Problem etwas genauer schildern...
z.B. mit Fotos oder Schaltplänen...

von Can-Carlo D. (cancarlo_d)


Angehängte Dateien:

Lesenswert?

Alles klar, es gehtum das Projekt hier:

http://www.doc-diy.net/photo/smatrig21/

Und der Schaltplan ist dieser hier, im Anhang.

Mein Problem ist, dass mir avrdude immer beim Fuse lesen sagt, Device 
kann n icht gefunden werden.

von Marcus P. (marc2100)


Lesenswert?

Hi,
also laut Schaltplan fehlt dir der PULL-Up (ich nehme da immer 10K) bei 
der Reset-Leitung.
Dann solltest du (falls noch möglich) lieber Widerstände zwischen 
Portpins und Mosfets machen.

Gruß
Marcus

von Uwe (de0508)


Lesenswert?

Hallo,

noch banaler Vcc ist nicht angeschlossen, zumindest nicht im Schaltplan.
Sollte der Quarz nicht noch zwei NP0 Kondensatoren ca. 18pF nach Masse 
haben ?

Mir fehlen noch keramische 100nF Kondensatoren an Vcc-Gnd.

Wenn der ADC benutzt wird, ist Aref mit 100nF nach AGnd zu beschalten 
und AVcc per L=10µH 100nF gegen Vcc zu entkoppeln.

All das steht in den AN von ANTEL.

Nachtrag und man beachte die langsamme Quarzfrequenz, der Programmer 
darf nur 1/4 dieses benützen.

von Daniel S. (bytewaste)


Lesenswert?

Der Pullup am Reset braucht man nicht unbedingt, da ist schon intern 
einer. Von daher ist das so ok. Siehe Figure z.B. 11-1 im Datenblatt.

Was sagt avrdude denn? Am besten mal die Ausgabe hier rein kopieren.

von Andreas S. (andi1301)


Lesenswert?

Wie schon gesagt wurde sollte ein Pullup an RST und evtl. ein kleiner C 
gegen Masse (ca. 10nF). VCC fehlt ganz und die C´s gegen Masse am 
Quarz.....

von Joachim (Gast)


Lesenswert?

Moin,

auch auf die Gefahr hin jetzt wieder gegängelt zu werden: Auf dieser und 
den verlinkten Seiten findet man eigentlich fast alles, was man braucht:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

Gruß

von Tobi (Gast)


Lesenswert?

Ich glaub ja, daß VCC mittels Netzname mit dem Eingang verbunden ist. 
Dann brauchts keine "physische" Verbindung im Schaltplan.

Kann es sein, daß der Mega88 zu "neu" für dein avrdude ist? Dieses 
Problem hatte ich. Dazu muss du mal nach Beiträgen suchen, die sich mit 
"Neue Controller in avrdude hinzufügen" beschäftigen. Hab da jetzt grad 
keinen Link dazu.

von Can-Carlo D. (cancarlo_d)


Lesenswert?

Hallo Leute,

vielen Dank für Euren vielen Tipps. Das Thema ist ja echt um Welten 
komplxer als ich dachte.

Ich befürchte wohl, der USBasp kann mit meinen Atmega88 nicht umgehen... 
Und selber firmware davon updaten scheint nciht zu gehen.

Hat einer  einen Tipp, welches Programmer ich da nehmen könnte?

von Achim M. (minifloat)


Lesenswert?

Can-Carlo D. schrieb:
> Ich befürchte wohl, der USBasp kann mit meinen Atmega88 nicht umgehen...
> Und selber firmware davon updaten scheint nciht zu gehen.

Stimmt beides nicht.

Tobi schrieb:
> Kann es sein, daß der Mega88 zu "neu" für dein avrdude ist?

Nein.

____________________________________________________________
Entweder der USBasp ist kaputt oder du belastest mit dem MOS die 
SCK-Leitung zu arg.

mfg mf

von Daniel S. (bytewaste)


Lesenswert?

Can-Carlo D. schrieb:
> Hat einer  einen Tipp, welches Programmer ich da nehmen könnte?

USBasp, denn den hast du ja schon. Warum einen zweiten kaufen?

Poste doch einfach die Ausgabe bzw. Fehlermeldung. Dann kann man dir 
sicher sagen woran es liegt. Der m88 wird nämlich von einer halbwegs 
aktuellen Version von avrdude ohne Probleme unterstützt. Ich benutze den 
auch...

von Achim M. (minifloat)


Lesenswert?

Ich benutze das in genau der Kombination auch.

Der 88er ist schon sehr lang dabei.

Die USBasp Version vom 28. Februar 2009 kennt den 88er schon.

von Achim M. (minifloat)


Lesenswert?

Schalte mal deinen USBasp auf slow-modus(Jumper oder Mäuseklavier sollte 
irgendwie am ASP dran sein).

Der 88er hat im Auslieferungszustand zwar den 8MHz internen 
RC-Oszillator aktiviert, aber eben auch die CLOCKDIV8-Fuse. Der 88er 
rennt also mit 1MHz.

mfg mf

von Can-Carlo D. (cancarlo_d)


Lesenswert?

Ich habe irgendie einen komischen Ebay Programmierer. Langsam befürcht 
eich, dass es an selbigem liegt. Ichhabe nur einen JP1 der 5V oder 3.3V 
auswählen läßt, laut Aufdruck.

von Achim M. (minifloat)


Lesenswert?

Das hier ist ein USBasp:
http://www.fischl.de/usbasp/

Das was du hast, ist vermutlich ein Bascom-Teil:
http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#Bascom_USB_ISP

mfg mf

von Achim M. (minifloat)


Lesenswert?

Hast du noch einen "echten" Comport oder einen Druckerport am Rechner?
Dann steck dir doch den einfachsten Adapter zusammen.
Am Druckerport braucht man nur ein paar Widerstände, am Comport müssen 
noch ein Transistor und zwei Z-Dioden mit ran.
mfg mf

PS: http://www.pjrc.com/hub_isp/ könnte auch interessant sein.

von Can-Carlo D. (cancarlo_d)


Angehängte Dateien:

Lesenswert?

Hi,

also ich habe mal ein Bild vom Programmer und der Paltine gemacht. Ich 
denke aber schon, dass ein USBASP ist.

Die avrdude Meldung ist:

avrdude.exe: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
avrdude.exe: Expected signature for ATMEGA88 is 1E 93 0A

avrdude.exe done.  Thank you.

von Achim M. (minifloat)


Lesenswert?

Wie sieht dein USBASP von unten aus?

Wohin geht der Pin von JP3, der nicht Masse ist? Geht der an Pin 25?
Dann musst du unbedingt zwei Pins einlöten und einen Jumper stecken.
Das senkt die ISP-Frequenz, der JP3 heißt beim Fischl nämlich "slow 
SCK".

Bekommt dein zu programmierender Atmel überhaupt Spannung? JP1 ist dazu 
da, den außen dran hängenden Atmel mit 5V zu versorgen. Aber das sind 5V 
aus dem USB, die muss deine Schaltung auch vertragen. Und nicht mehr als 
100mA ziehen.

mfg mf

von Can-Carlo D. (cancarlo_d)


Angehängte Dateien:

Lesenswert?

Also hier ist mal noch die Unterseite von dem Programmer.

von Achim M. (minifloat)


Lesenswert?

Ah ok, jetzt bin ich mir sicher:
1. Das ist ein USBasp, allerdings leicht modifiziert, wenn man das mit 
http://www.fischl.de/usbasp/bilder/usbasp_circuit.png vergleicht.

2. Spannungsumschaltung 5V und 3,3V ist tatsächlich "echt".
Auf 5V kann man soviel ziehen, wie der USB hergibt(500mA, dann sollte 
ein guter Hub oder Host abschalten). Auf den 3,3V würde ich nicht über 
100mA gehen(der kleine LM1117 auf der Unterseite kann max. 150mA). 
Eigene Spannungsversorgung des Targets geht auch, dafür den 
Spanungswahl-Jumper ganz raus machen oder "mit einem Pin in die Luft" 
setzen.

3. Löte mal zwei Pins an die Stelle JP3 ein. Dann einen Jumper stecken. 
ISP sollte jetzt <125kHz sein und dein mega88 ansprechbar sein.

Tipp zu den Fuses in deiner GUI: Gewöhn es dir an, vor dem Setzen 
neuer Fuse-Einstellungen immer erst die Fuses vom Controller zu lesen 
(read-modify-write).

Meine favorisierte GUI 
Avrfuses(http://www.vonnieda.org/software/avrfuses) zeigt die gelesenen 
Einstellungen in Form von gesetzten Häkchen gleich an. Nun kann man die 
benötigten Häkchen setzen/löschen und behält diejenigen 
Fuse-Einstellungen bei, die man nicht anrühren will.
Man muss sich somit echt doof anstellen, um was "kaputt zu fusen".

mfg mf

von Can-Carlo D. (cancarlo_d)


Lesenswert?

Vielen Dank für diese wirklich Klasse Hilfestellung. Bisher bin ich aber 
noch keinen chritt weiter. Ich habe langsam den Verdacht, entwqeder ist 
der Programmer Mist oder ich habe irgendwo etwas flasch gelötet. Ich 
sehe zwar keine Fehler, aber das muss noch lange nichts heißen.

von checkR (Gast)


Angehängte Dateien:

Lesenswert?

Ein Lötanfänger sollte halt auch nicht mit SMD anfangen. Der Pinabstand 
bei TQFP ist auch ziemlich gering. Und es tut mir leid, das sagen zu 
müssen, aber die Platine sieht Scheiße aus! Im Anhang sind mal einige 
kritische Szenen markiert. Gerade an der oberen Seite ist doch ein 
Kurzschluss zwischen Pin 28 und 29. 28 liegt auf Masse und 29 ist Reset. 
-> Merkste was?

Was du machen kannst, ist die Leitungen mal durchzuklingeln. Ein 
Messgerät mit Durchgangsprüfer haste, oder? Liegt (direkt am Controller) 
überall wo es soll VCC und Masse an? Wo geht die Reset Leitung 
eigentlich lang?
An deiner Stelle würde ich mir noch einen Controller im DIP Gehäuse 
besorgen und den entweder auf eine Lochrasterplatine oder auf ein 
Steckbrett in Minimalbeschaltung nageln.

Diese sieht bei mir so aus:
- Reset auf jeden Fall über 10k nach VCC und der Programmer muss den Pin 
auf Masse ziehen.
- VCC an 4, 6, und 18
- GND an 3, 5 und 21
- 100nF zwischen vcc und gnd
- Die 6 Leitungen des Programmers anschließen
(Wie gesagt alles andere weglassen)

Dann muss das funzen. Den USBAsp nehme ich auch. Allerdings selbst 
gebaut. Der funktioniert wunderbar.

von Can (Gast)


Lesenswert?

Danke für diese Ausführliche Mail. Ich werde mir alles nochmal genau 
ansehen. Besonders deine genannten Stellen.

Leider bin ich wirklich blutiger Anfänger und wollte iegentlich nur 
dieses Teil bauen. Aber wie langsam lernen muss, ist das nur mal schnell 
so ein Teil löten wohl nicht möglich. Aber ich versuche mich weiter 
daran. Ich melde mich, wenn es geklappt hat.

Ja und leider ist die Platine echt mies geworden. Aber das war noch die 
Beste! Ich habe es mit Toner versucht...

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.