Forum: Mikrocontroller und Digitale Elektronik ATMega8 wird durch STK200-Programmer unter GNU/Linux nicht erkannt


von Christoph H. (der_christoph)


Angehängte Dateien:

Lesenswert?

Guten Abend an alle µC-Besitzer!
Ich würde auch gern mit einem µC programmieren und habe daher ein paar 
Dinge eingekauft und bin gerade am probieren.
Auf dem Foto seht ihr meine Schaltung.
Der Spannungsregler und die Kondensatoren liefern stabilisierte 5V, das 
LED leuchtet für mich zur Kontrolle, ob überhaupt eine Spannung anliegt.
Im Tutorial wurde empfohlen, einen Programmer zu kaufen, was ich getan 
habe. Er ist laut Beschreibung kompatibel zum STK200 und besitzt einen 
10-Pin-Stecker.
Der ATMega8 bekommt seine Daten durch den schwarzen Stecker auf dem 
Steckbrett und zusätzlich werden GND und VCC direkt in die Ports 
hineingesteckt (ist zwar eine 'russische' Lösung, aber ich hatte 
vergessen, das passende Gegenstück zu kaufen).
Soweit, so gut.
Ich nutze GNU/Linux in Verbindung mit uisp.
Der Controller kann mittels
1
uisp -dplt=/dev/parport0 -dprog=dapa
2
avrdude -v -p atmega8 -c stk200 -P /dev/parport0 -i50
als 'root' nicht gefunden werden.
i50, habe aber auch i60...i90 ausprobiert. Kein Erfolg.

Was mache ich falsch?

von H. P. Bolliger (Gast)


Lesenswert?

Die Parport-Schnittstelle braucht noch Schreibrechte für home:

Im Local-Terminal eingeben:

su chmod 666 /dev/parport0

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Wenn es selbst mit i10 nicht geht, ist was anderes Faul.

Christoph Hirler schrieb:
> als 'root' nicht gefunden werden.

Was hast du denn fuer eine Fehlermeldung ?

Fuer den Anfang wuerde ich dir empfehlen statt dem voellig veralteten 
Uisp gleich AVRDude zu nehmen und dann eine Oberflaeche drauf zu setzen, 
wie AVR-burn-o-Mat z.B. Programmiergeraet waere dann der dt006, wenn du 
als "STK200 kompatibel" dieses 4 Widerstands Dingens meinst.

http://www.brischalle.de/

Unter Linux NIEMALS direkt unter root arbeiten. Man sollte sich 
angewoehnen fuer sowas den Befehl "sudo" zu nutzen.

Das hier sollte auch helfen.

http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/avrdude_tutorial

Christoph Hirler schrieb:
> Im Tutorial wurde empfohlen, einen Programmer zu kaufen, was ich getan
> habe. Er ist laut Beschreibung kompatibel zum STK200 und besitzt einen
> 10-Pin-Stecker.

Welcher genau ?

Welche Linux Distribution nutzt du ?

von Christoph H. (der_christoph)


Lesenswert?

>Was hast du denn fuer eine Fehlermeldung ?
Ich nutze jetzt avrdude. Dort kommt
1
AVR device not responding
2
initialization faild, rc=1

>Programmiergeraet waere dann der dt006, wenn du
>als "STK200 kompatibel"
Den
http://shop.anvilex.com/pi2/pd3.html
habe ich mir gekauft.

>Unter Linux NIEMALS direkt unter root arbeiten.
Das weiß ich. Da ich aber den Fehler nicht eingrenzen kann, arbeite ich 
solange mit allen Rechten, um zumindest fehlende Rechte ausschließen zu 
können.

>Welche Linux Distribution nutzt du ?
Fedora 16.

Ich habe meine Schaltung nochmal überflogen und habe festgestellt, dass 
der Rest-Pin vertauscht wurde. Auch habe ich noch eine Diode an Plus 
geklemmt, wie es im Tutorial Selbstbau erklärt wurde.
Trotz der Änderung klappt es dennoch nicht.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Hat dein PC eine "echte" parallele Drucker-Schnittstelle, oder benutzt 
du einen entsprechenden Adapter für USB? Über USB klappt das 
normalerweise nicht...

von Krapao (Gast)


Lesenswert?

> Auf dem Foto seht ihr meine Schaltung.

Kann das sein, dass du deine Schaltung nicht mit Spannung versorgst? Das 
schwarz-graue Kabel rechts unten ist nirgends angeschlossen.

Der RESET Widerstand rechts in der Mitte bei AVR-Pin1 sieht auch seltsam 
aus. Für mich ist der kurzgeschlossen! Wenn das stimmt, kann kein 
Programmieradapter der Welt dden Reset auf LOW ziehen!

Ich an deiner Stelle würde meinen Aufbau, der schwer/mühsam 
nachzuverfolgen ist, komplett zerrupfen und neu gemäß 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Beispielhafter_Aufbau_auf_einem_Steckbrett 
aufbauen. Zur besseren Nachverfolgung würde ich für alle Vcc Leitungen 
ROTE  Leitungen und für alle GND Leitungen SCHWARZE Leitungen benutzen. 
GRÜN, GELB und ORANGE würde ich für MISO, MOSI und SCK benutzen. Ein 
Stück der GRAUEN Leitung inkl. angelöteten Pins für die RESET Leitung.

Die Grundmessungen mit einem Multimeter wären:

Ist +5V an allen Vcc Pins und am RESET-Pin vorhanden, wenn GND/COM 
(schwarz) vom Multimeter an GND vom AVR angeschlossen ist? Das zeigt, 
zumindest, ob der Spannungsregler arbeitet.

Ändert sich der Pegel beim Programmieren an Reset auf ~0V? Das zeigt, ob 
die RESET-Schaltung des STK200 und die Softwaresteuerung der parallelen 
Schnittstelle durch AVRDUDE arbeitet.

Weitergehend kannst du mit der Spion-LED und dem Vorwiderstand 
Pegeländerungen auf den RESET, MISO, MOSI und SCK Leitungen 
nachverfolgen. Dazu den AVR aus dem Steckbrett nehmen und die LED so 
anschliessen:

zu
untersuchender
Pin  o------------####----------|>---------o GND

Bei schnellen Pegelwechseln sieht man u.U. das Flackern nicht. Dann 
scheint aber die LED etwas dunkler als bei direkter +5V Versorgung.

Die Grundeinstellungen bei AVRDUDE wären die Kommandozeile mit -vvv zu 
ergänzen und die so erzeugte ausführliche Anzeige in eine Datei zu 
schreiben und an die Fragen anzuhängen.

Mit entnommenem AVR kannst du auch MISO und MOSI iM Steckbrett brücken. 
Dann sollte sich die Anzeige von AVRDUDE ändern: Alle gesendeten Daten 
kommen an AVRDUDE zurück - wenn die Verkabelung MISO/MOSI bis zur Brücke 
halbwegs OK ist. Es kann allerdings noch ein Tauscher drin sein.

von Krapao (Gast)


Lesenswert?

> wenn du als "STK200 kompatibel" dieses 4 Widerstands Dingens meinst.

Wenn kein Puffer-IC auf dem STK200 Adapter ist, dann bei der Spion-LED 
den Vorwiderstand so wählen, dass möglichst wenig Strom über die 
Signalleitungen aus dem Parallelport entnommen wird. Mit Puffer-IC 
hingegen dürfen es schon 10-20 mA bei normaler LED sein.

Du kannst auch mit dem Multimeter im Spannungsmessmodus (NICHT 
STROMMESSMODUS!) messen, welche auf den Pins deines 6-poligen ISP Kabels 
anliegen. Das sollten schon 5V TTL Pegel sein und keine schwachbrüstigen 
3V Pegel wie sie manche Laptop-Parallelports liefern!

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Ach das ist doch alles voelliger Kappes was du da schreibst. Wie soll er 
denn bitte mit einem Multimeter den Pegel messen ? Dir ist schon 
klar das es Signal leitungen sind ? Mit anderen Worten pulsierende 
Gleichspannung und da kann niemals 5V raus kommen.
Ja, ja, jetzt komm mir nicht mit "Aber mit einem Testprogramm..."
Auch das mit der LED ist voelliger Bloedsinn.
Mal abgesehen davon sehe ich null Sinn darin dies zu messen.

Ohne zu wissen was in dem Ding drin steckt, ist es eine einzige Raterei. 
Da es ein 10-Pol SPI ist, tippe ich auf einen 74LS244 als Treiber und 
dann fehlt ihm von aussen die Betriebsspannung.
Auf seinem Board sehe ich naemlich nur 5 Pinne am SPI, fehlt also schon 
mal einer, wenn VTG gebraucht wird.
Also Gehaeuse aufmachen und nachgucken.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Ich schreibe auch mal zwei, editieren ging nicht mehr.

Ich habe nicht gesehen das du zwei Beitraege untereinander hattest. Mit 
"Kappes" meinte ich nur den unteren.
Und wenn man oben die Geschichte mit den LEDs weg laesst, ist das auch 
okay. Ich frage mich was du mit den LEDs bezwecken willst ?
Es reicht voellig die Leitungen vom SPI Adapter zum AVR duchzuklingeln. 
Am besten gleich vom geoeffneten Adapter.

von Christoph H. (der_christoph)


Angehängte Dateien:

Lesenswert?

>Hat dein PC eine "echte" parallele Drucker-Schnittstelle
Ja.

>Kann das sein, dass du deine Schaltung nicht mit Spannung versorgst? Das
>schwarz-graue Kabel rechts unten ist nirgends angeschlossen.
Natürlich gebe ich da Saft drauf, aber du lässt ja auch nicht den Motor 
deines Autos laufen, wenn du ihn nicht brauchst, oder? ;)

>Ich an deiner Stelle würde meinen Aufbau, der schwer/mühsam
>nachzuverfolgen ist, komplett zerrupfen und neu gemäß aufbauen.
Die Schaltung ist aber zu aufgebläht. Hier habe ich nur das, was ich 
brauche.

>Ist +5V an allen Vcc Pins und am RESET-Pin vorhanden, wenn GND/COM
>(schwarz) vom Multimeter an GND vom AVR angeschlossen ist?
Ich habe am RESET-Pin, AREF, AVCC und VCC jeweils ~4,3 V anliegen.

>Die Grundeinstellungen bei AVRDUDE wären die Kommandozeile mit -vvv zu
Siehe Anhang. Ich habe es sowohl mit dt006 als auch mit stk200 als 
Programmer versucht. Gleiches Ergebnis.

Zum Thema ISP habe ich das Innenleben angehangen.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Moin,

nur kurz.
Der Widerstand an der LED ist kurzgeschlossen, der am Reset auch. 
Zumindest so weit ich diese Boards kenne. Kurz unter dem LED Widerstand 
geht eine Leitung in's Nichts. Danach ist kaum was zu erkennen, da du 
das Foto schraeg gemacht hast. Man vertut sich leicht mit den Reihen. 
Besser ist du machst nochmal eins von oben. Ruhig wieder so gross.
Alles auseinander nehmen halte ich fuer unnoetig. Sind eher 
Fluechtigkeitsfehler.
Und lege die Leitungen nicht um so viele Ecken, nur weil die Draehte 
mechanisch nicht passen. Mach sie passend, die Grundschaltung bleibt ja 
dann sowieso immer gleich.

Zum Programmiergeraet.
Es ist ein STK200 kompatibles. Also in AVRDude nicht dt006 sondern 
stk200 angeben. Benutze avr-burn-o-mat, das hilft sehr.
Das Programmiergeraet benoetigt Spannung aus deiner Schaltung. Also die 
5V aus der Schaltung auf Pin 2 legen.

Beitrag "Re: Belegung AVR 6-pin ISP-Stecker einreihig (2 Versuch)"

Es ist voellig normal das Anfaenger diese Fehler machen und erst mal 
Frust aufkommt, speziell bei diesen Bastelboards, aber das bekommt man 
in den Griff.

von Christoph H. (der_christoph)


Angehängte Dateien:

Lesenswert?

>Der Widerstand an der LED ist kurzgeschlossen.
Der fungiert als Vorwiderstand der LED und ist, soweit meine 
bescheidenen Kenntnisse das zulassen, nciht kurzgeschlossen.

>Also die 5V aus der Schaltung auf Pin 2 legen.
Ich weiß. Ich habe aber keine 10-Pin Wanne zur Verfügung, sodass ich die 
ersten 5 Pins durch den kleinen schwarzen Stecker abgreife und VCC sowie 
GND, die auf der anderen Seite kommen, direkt vom Board in den 
Programmeranschluß stecke.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich kenne diese Boards nicht, damit hatte ich nie zu tun. Aber wenn ich 
die restliche Schaltung so sehe, dann sind da Fehler drin.
Ich gehe jetzt mal davon aus, dass auf dem Board so durchkontaktiert 
ist, wie ich es in Blau eingezeichnet habe. Dann muss bei Rot ein Fehler 
vorliegen. Also RST-Widerstand und LED Widerstand haben einen 
Kurzschluss. Miss nach.

Die grosse Elipse, links unten, soll andeuten warum der RST nicht
funktionieren kann, was Krapao ja auch schon vermutet hat.

Weiter habe ich jetzt nicht geguckt, ich muss auch weg.
Sind sicher einige hier die diese Boards besser kennen, aber Fehler sind 
drin, das ist so sicher wie das Amen in der Kirche.
Du hast es dir auch sehr umstaendlich gelegt. Besser du kuerzt die 
Draehte und legst nicht um 10 Ecken rum.

von citb (Gast)


Lesenswert?

Christoph Hirler schrieb:
> bescheidenen Kenntnisse das zulassen, nciht kurzgeschlossen.

Es sieht aber so aus. Wie ist die unter dem Steckbrett liegende 
Beschaltung?

citb

von H. P. Bolliger (Gast)


Lesenswert?

Die Verdrahtung von MOSI, MISO, SCK und Reset ist OK ,aber was fehlt ist 
VCC an Pin 2 des Wannensteckers. (Speisung des Programmer) Ich glaube 
nicht dass er über die parport-Schnittstelle gespiesen wird.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

H. P. Bolliger schrieb:
> Reset ist OK

Nein

H. P. Bolliger schrieb:
> aber was fehlt ist VCC an Pin 2 des Wannensteckers.

Christoph Hirler schrieb:
> und VCC sowie GND, die auf der anderen Seite kommen, direkt vom
> Board in den Programmeranschluß stecke.

von H. P. Bolliger (Gast)


Lesenswert?

Nachtrag:
Natürlich braucht es auch eine Massenverbindung zwischen dem Programmer 
und dem Target. (Pin 4,6,8 und 10 des Wannenstecker)

http://homepage.hispeed.ch/peterfleury/avr-starterkit.html zeigt ein 
Bsp. eines ISP-Adapter mit 74HC125 -Treiber

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Sag mal, liest du eigentlich mit oder tippst du nur wahllos rum ?

Christoph Hirler schrieb:
> und VCC sowie GND, die auf der anderen Seite kommen, direkt vom
> Board in den Programmeranschluß stecke.

Christoph Hirler schrieb:
> Zum Thema ISP habe ich das Innenleben angehangen.

@Christoph
Hier die Belegung von so einem Board.

http://www.markallen.com/teaching/ucsd/147a/lectures/DC%20Basics/images/Breadboard.jpg

Wie man sieht, beide Widerstaende wie vermutet, kurzgeschlossen. Sowas 
passiert jedem mal.

von Krapao (Gast)


Lesenswert?

> Ach das ist doch alles voelliger Kappes was du da schreibst. Wie soll er

Ups. Das ist aber mal eine nette Überraschung am Morgen. Naja. Tschau. 
Bin dann mal weg.

von Peter ⛄ W. (Firma: Huddel und Brassel Ltd.) (jaffel) Benutzerseite


Lesenswert?

Au man. Hast du auch nur ueberflogen oder auch verstanden was ich 
geschrieben habe ? Anscheinend nicht. Aber tolle Reaktion. Man man.

von Christoph H. (der_christoph)


Lesenswert?

Es ist zum heulen! Ihr hattet Recht!
Wie das Steckbrett aufgebaut ist, wusste ich, aber aus irgendwelchen 
Gründen ging ich davon aus, dass der Strom in meiner Schaltung erst 
durch die Widerstände fließt... Im nachhinein ist alles so logisch! 
Jetzt weiß ich auch, wieso mir gestern eine LED ausgestiegen ist, wenn 
der Vorwiderstand nicht das macht, was er machen soll. Habe das jetzt 
geändert und das Auslesen des ATMega8 funktionierte mit avrdude.
Ich weiß gar nicht, wie ich euch danken soll. Euch noch ein sonniges 
Restwochenende!

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.