Forum: Mikrocontroller und Digitale Elektronik Atmel µC - kein Programm zum "Brennen" funktioniert


von Oliver (Gast)


Lesenswert?

Hallo,

bin absoluter Anfänger in Sachen µC. Habe mir eine Grundschaltung auf
einer Streifenrasterplatine aufgebaut (Atmega32) und einen
STK200-kompatiblen Dongle gekauft. Mein Mainboard hat leider keine
Parallelschnittstelle - so hatte ich mir also einen
USB-Parallel-Adapter gekauft. Was leider eine Fehlkauf war, da der nur
eine USB-Druckerunterstützung bereitstellt. Dann also noch eine
PCI-Parallelschnittstellenkarte bestellt und eingebaut
(http://reichelt.de/index.html?LASTACTION=3;SORT=artikel.artnr;WG=0;SUCHE=pci%20parallel;ARTIKEL=PCI%20PARALLEL%20X2;START=0;END=16;FAQSEARCH=PCI%20I%2FO%20FIFO%20Karte%202x%20parallel;FAQTHEME=-1;FAQSEARCHTYPE=0;STATIC=0;FC=668;PROVID=0;TITEL=0;ARTIKELID=53285;FAQAUTO=1;ACTION=3;GRUPPE=E7).

Folgende Programme habe ich nun schon ausprobiert:
PonyProg2000:
erkennt die beiden LPT-Anschlüsse nicht an (im Dialog alle
LPTx-Optionen ausgegraut) - stelle ich den richtigen LPT-Port manuell
in der Config-Datei ein: Communication port not available (-16)

PonyProg: Erkennt die beide LPT-Anschlüsse - funktioniert aber trotzdem
nicht - Device missing or unknown Device (-24)

avrdude:
avrdude -p atmega32 -P lpt2 -c stk200    -U flash:w:testpp.hex

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

Also scheinen alle Programme vermutlich mit der Karte nicht zurecht zu
kommen. Am STK200 leuchtet die rote LED - also hat dieses Modul auch
Spannung. Die Verbindung zum Atmega stimmt auch (mehrfach überprüft).
Im Gerätemanager habe ich auch schon alle Optionen für die
Parallelportanschlüsse durchprobiert - nichts half. Goggle habe ich
jetzt auch schon viele Stunden bemüht - leider ohne Erfolg.

Die Schaltung selbst besteht aus einem Atmega32, einen 16MHz-Quarz, den
2 Kondensatoren á 22pF am Quarz, einem 100nF Kondensator am IC direkt
und einen 10k-Widerstand am Reset-PIN gegen VCC. Die 5V-Spannung für
die Schaltung wurde mit einer 4-Weg-Gleichrichtung, 1000µF, 5V-Z-IC,
jeweils 100nF am Eingang/Ausgang vom Z-IC und 10µF Elko (ebenfalls am
Ausgang) aufgebaut. Soweit sollte da ja alles in Ordnung sein.

Bevor ich mir jetzt noch andere Hardware kaufe (z.B. einen
USB-Programmieradapter), wollte ich hier um Rat fragen was ich noch tun
könnte, damit es endlich los gehen kann. :-)

Ich bedanke mich schon einmal im voraus und verbleibe
mit freundlichen Grüßen
  Oliver

von Oliver (Gast)


Lesenswert?

Achso: Ich benutzte Windows XP - falls das von Bedeutung ist.

von Marco S. (masterof)


Lesenswert?

Warte mal mit dem kauf von dem USB adapter.
Hast du noch eine RS232-Schnitstelle? Bau dir doch ein Serien Brenner
zum einmaligen brennen und bau dir dann eine JTAG-adapter( nicht kaufen
zu teuer ca 300euro) damit kannst du on-board-debugin machn viel besser
als der Simulator im Studio. Weil du direkt in der Zielschaltung
debugen kannst.

von Andreas H. (asmhesse)


Lesenswert?

Hi

hast Du GiveIO installiert?

Gruss
Andreas

von Frank (Gast)


Lesenswert?

ich denke mal auch dass da ein Direktzugriffstreiber fehlt. XP lässt von
sich aus keine direkten Schnittstellenzugriffe zu und darum gibts für
Sowas kleine Zusatzprogramme mit Denen XP überlistet wird. So ein
Treiber muss vor dem Brennprogramm gestartet sein, damit gebrannt
werden kann.

bye

Frank

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

USB-Parallelport-Adapter lassen sich, von einer Ausnahme abgesehen,
überhaupt nicht für Programmierzwecke einsetzen.
Diese eine Ausnahme war ein Selbstbauprojekt des Henrik Haftmann, das
ist aber seit Anfang April von den Datenflächen des Internet
verschwunden. Das hat beispielsweise mit PonyProg zusammen
funktioniert. Der "Trick" lag im speziellen von Henrik entwickelten
Devicetreiber, der die I/O-Zugriffe auf die I/O-Adressen der
Standard-Parallelschnittstelle abgefangen und auf den USB-Adapter
"umgebogen" hat (was auch Unterstützung der Adapterfirmware
erfordert, also nicht mit normalen USB-Druckeradaptern funktioniert).
Wie gesagt: Leider sind die auch sonst sehr interessanten Seiten von
Henriks Uni gelöscht worden.

Die üblichen Parallelportprogrammierprogramme führen direkte
I/O-Zugriffe aus, dazu benötigen sie spezielle Treiber, die sie aber
normalerweise gleich mit sich bringen; nur bei sehr schlechter Software
muss man sowas nachinstallieren.

Allerdings führen diese Programme ihre I/O-Zugriffe auf definierte
I/O-Adressen durch - nun ist zu klären, ob Deine PCI-Parallelportkarte
überhaupt diese I/O-Adressen verwendet und ob die auf der Karte
verbaute Hardware überhaupt der einer PC-Onboard-Druckerschnittstelle
entspricht.

Was sagt denn der Gerätemanager über die von der Karte belegten
I/O-Adressen?

von JojoS (Gast)


Lesenswert?

die Meldung 'Device missing' würde ich eher so interpretieren das der
Programmer erkannt wird aber der AVR nicht.
avrdude: für das -p Kommando sollte lt. Doku der Name 'm32' stehen,
nicht 'ATMega32', war das jetzt nur falsch abgeschrieben? Und wie
schon genannt 'giveio.sys' für XP muss installiert sein und du musst
Admin Rechte haben lt. Doku.

von JojoS (Gast)


Lesenswert?

eine andere Tücke können noch die 'Fuse bits' sein. Ist der ATMega neu
oder gebraucht? Bei einem gebrauchten könnte der Clock auf extern
stehen, dann muss an dem Takteingang ein echtes Taktsignal anstehen,
ein Quarz funktioniert da nicht. Auf ext. Clock könnte der ATMega
stehen wenn er vorher in einem STK500 betrieben wurde.

von Oliver (Gast)


Lesenswert?

@masterof
Eine RS232-Schnittstelle hatte ich mir auch gleich dazubestellt
(USB-RS232-Adapter). Das hört sich nicht schlecht an, ich wollte aber
erst einmal das vorhandene, falss möglich, zum Laufen bringen.

@asmhesse, Frank
Das hatte ich davor getan.
Ergebnis von status_giveio.bat (-> avrdude)

---
C:\WinAVR\bin>status_giveio.bat
status of giveio:
Type:           [0x01] Kernel driver.
Start Type:     [0x02] Automatic
Error Control:  [0x01] NORMAL: Display a message box.
Binary path:    \??\C:\WINDOWS\giveio.sys
Load order grp:
Dependencies:
Start Name:
ok.
---

Normalerweise solle aber PonyProg ohne giveio.sys laufen?

@Rufus
Mit dem USB-Adapter war wie gesagt ein Fehlkauf, hatte mich nicht genug
informiert. Sofern man die I/O-Adressen in den Eigenschaften vom LPTx
und Resourcen ablesen kann, so wären sie ja falsch. (LPT2 E/A-Bereich
von 9400-9407 und 9000-9007). Ist die korrekte Adresse aber wirklich
wichtig für die oben genannten Programme (die könnte sich ja den
aktuellen Wert holen)?

von Oliver (Gast)


Lesenswert?

@JojoS
Avrdude habe ich nicht selbst aufgerufen - Ich nutze das Paket WinAVR.
Bin im Programmers Notepad unter Tools auf WinAVR [Program] gegangen.
Nehme an das an dieser Stelle alles sein Richtigkeit hat.

Der Atmega ist neu und nicht gebraucht (von embedit.de - sowie auch der
Programmer).

von JojoS (Gast)


Lesenswert?

und zeigt der Gerätemanager dann LPT2 und LPT3 an wenn die PCI-Karte
steckt?
WinAVR: sollte klappen, hast du in dem MFile Tool die MCU, Programmer
und Port ausgewählt?
Und dann gäbe es da noch das AVRStudio4 von Atmel, das kann natürlich
auch den STK200 ansprechen. Das AVRStudio spielt jetzt auch mit den GNU
Tools zusammen, läuft hier auch gerade wieder, aber am STK500. Das hat
am neuen Laptop Dell D810 auch erst Ärger gemacht weil das keine
richtige serielle Schnittstelle mehr hat...

von Oliver K. (oliver-tmp)


Lesenswert?

@JoJoS
LPT2/3 werden angezeigt. Ja, habe auch mit MFile alles soweit
eingestellt. Das AVRStudio habe ich installiert - dort kann ich aber
nichts auswählen bzgl. Parallelport oder STK200 (nur STK500). Mir würde
aber schon reichen wenn PonyProg oder avrdude laufen würde. Bascom hatte
ich übrigens auch ausprobiert.

von Oliver K. (oliver-tmp)


Lesenswert?

Übrigens: Habe jetzt zum Testen avrdude den LPT1 als Port übergeben, der
bei mir nicht existiert. Habe die gleiche Fehlermeldung bekommen.

von alfsch (Gast)


Lesenswert?

des rätsels lösung...
ich habe auch auf par-port einen avr (mit selbstgeb. sp-12 )
programmieren wollen, ging aber nicht (verm. genau selbe pci karte von
reichelt) zuerst gibts mit der software ein problem, da die i/o adresse
mehr als die üblichen 8bit hat, alle mit fester 8bit i/o gehen eh nicht;
avrdude kann das, kam aber genau sowas "error responding...", mist,
...hab ewig gesucht, dann per oszi signale gemessen: siehe da, kleine
spikes beim zugriff auf dem port!
dann mal drucker weg, prog am "alten" par-port: da gehts!!!!
dachte, ich krieg n vogel!
ob die spikes nen drucker auch stören, hab ich noch nicht getestet,
aber ein sauberes signal, wie es ein prog-adapter braucht, kam bei mir
nicht raus...

von Oliver K. (oliver-tmp)


Lesenswert?

Hallo,

dummerweise kann ich nicht auf einen anderen Parallelport umsteigen da
wie gesagt mein Mainboard keinen hat.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ist die korrekte Adresse aber wirklich
> wichtig für die oben genannten Programme
> (die könnte sich ja den aktuellen Wert holen)?

Das müsstest Du die Entwickler dieser Programme fragen - da seit Äonen
die Adressen der drei "Standard"-Ports LPT1,2 und 3 durch den IBM PC
feststehen, gehen auch viele Entwickler fest von deren Adressen aus,
vor allem, wenn sie an allen Devicetreibern vorbei mit direkten
I/O-Zugriffen die Hardware manipulieren.

Wenn die Hardware mit einem speziellen Kernel-Mode-Treiber daherkommt,
der diese I/O-Zugriffe abfängt und umleitet, dann ließen sich diese
Defizite umgehen, wie es der USB-Parallelport-Adapter von Henrik
Haftmann gemacht hat, für den explizit darauf hingewiesen wurde, daß er
mit Ponyprog zusammen funktioniert.

Ein manuelles Installieren von Treibern à la giveio.sys sollte nicht
erforderlich sein - darum sollten sich die enstprechenden Programme
selbst kümmern.
Sogar BASCOM-AVR bekommt das hin.

von JojoS (Gast)


Lesenswert?

das mit dem PCI par.Port ist natürlich eine Erklärung, die PCI HW wird
ja nicht so einfach angesprochen wie die alten ISA Karten. Und ISA
Slots hat ja heute auch kein Boards mehr... Dann bleibt wohl nur ein
Programmer der über die serielle arbeitet. Oder das Teil suchen das
Rufus genannt hatte. Oder irgendwo einen alten Laptop auftreiben der
als Programmer und Terminal genutzt wird? Die moderne legacy-free
hardware ist leider nicht mehr bastelfreundlich.
Mit dem AVR Studio hattest du Recht, ich dachte die Einstellung AVRISP
macht das, aber das ist wieder ein anderer (serieller) Programmer.

von JojoS (Gast)


Lesenswert?

war bei der Parallelport Karte eine Treiber CD dabei? Einige können
scheinbar mit einer 'remap' Funktion auf ISA-kompatible Adressen
eingestellt werden. Ob sich das mit dem GiveIO.sys verträgt?

von Oliver K. (oliver-tmp)


Lesenswert?

Habe jetzt auch mal versucht den Wert von den E/A-Adressen zu ändern was
mir aber nicht gelungen ist. Scheinbar ist dieser Wert nicht zu ändern.

von Oliver K. (oliver-tmp)


Lesenswert?

Hallo,

eine Frage: Hätte ich mit diesem Parallelportcontroller unter Linux
(Ubuntu?) mehr Chancen das es läuft? Vllt. sind die Programme da nicht
so sehr fixiert auf die E/A-Adressen? Was meint ihr? Habe momentan kein
Linux drauf - würde es dann aber mal installieren.

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.