Forum: Mikrocontroller und Digitale Elektronik AVR Mega32 auf Pollin Board lässt sich nicht schreiben


von SiWi (Gast)


Lesenswert?

Nachdem ich es geschafft habe ein erstes Testprogramm zu compilieren,
habe ich jetzt das Problem, dass ich beim Versuch den Mega32 zu 
beschreiben folgenden Fehler bekomme:
Device missing or unknown device (-24).
Passiert sowohl wenn ich Avr Autodetect einstelle als auch wenn ich Avr 
Mega 323 eisntelle.
Ich hoffe mal, dass ich auf dem Board alles richtig gelötet habe(das 
Netzlämpchen leuchtet) und es nur ein Einstellungsfehler ist.

von Der F. (flins)


Lesenswert?

Steckt das serielle Kabel am ISP Stecker am Board? NICHT den RS232 
verwenden

Verwendest du einen USB-RS232 Adapter? Klappt nicht, da Bit Banging

...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hast du deine Lötarbeiten kontrolliert? Und wie versuchst du genau das 
Programm in den Atmega32 einzuspielen?

In der Artikelsammlung Pollin Funk-AVR-Evaluationsboard findest du 
eine Beschreibung für die Programmierung über echtes RS232, die 
simpele RS232-Programmierschnittstelle von Pollin und die Software 
AVRDUDE sowie über echte Parallelschnittstelle und einen STK200 
kompatiblen ISP Programmieradapter und die Software AVRDUDE. Aufpassen 
bei der Umstellung der Fuses! Werte aus dem eigenen Datenblatt nehmen. 
Im Artikel wird ein Atmega8 programmiert.

von SiWi (Gast)


Lesenswert?

Am ISP ist angesteckt. Ich schau mir jetzt mal den Artikel an.
Wie ich mine Lötarbeit kontrolierne osll weiß ich nicht genau.
Was soll ich denn da alles testen?

von SiWi (Gast)


Lesenswert?

In der bei pollin herunterladbaren Datei zum Board wird bei PonyProg die 
Einstellung SI Prog I/O.
Wenn ich diese Einstellung auswähle erhalte ich bei Probe Test Failed.
Bei der Auswahl SI Prog API dagegen erhalte ich ein Test Ok.
Gibt es dafür eine Erklärung und kann an dieser Einstellung der Hase im 
Pfeffer begraben liegen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

WAS ist "Am ISP ist angesteckt." Denk dran hier sieht niemand dein 
Board, hier riecht niemand dein Board. Du musst unsere Augen, Ohren, 
Nasen und Hände ersetzen. Wir können höchstens ein paar Hirnzellen 
beisteuern.

Hmm, Testen... wenn nix in der Aufbauanleitung angegeben ist... ich 
probiere es mal. Bei den folgenden Messungen keine µC in die IC Fassung 
stecken. Datenblatt vom µC schnappen und mit Multimeter die wichtigen 
Spannungen an der Fassung kontrollieren. Wo ist GND, dort schwarze 
Leitung/Tastspitze COM vom Multimeter anschliessen. Ist an den Pins Vcc 
und ggf. AVcc ca. 5V vorhanden, prüfen mit der roten Tastspitze? Ist an 
/RESET +5V vorhanden?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

SiWi wrote:

> In der bei pollin herunterladbaren Datei zum Board wird bei PonyProg die
> Einstellung SI Prog I/O.
> Wenn ich diese Einstellung auswähle erhalte ich bei Probe Test Failed.
> Bei der Auswahl SI Prog API dagegen erhalte ich ein Test Ok.
> Gibt es dafür eine Erklärung und kann an dieser Einstellung der Hase im
> Pfeffer begraben liegen?

Kann es.

Ich habe mit deinen Stichworten in der Ponyprog-Doku nachgesehen. Dort 
steht:

 SI-Prog interface select "serial" check-box and choose "SI-Prog API" or 
"SI-Prog I/O" in the combo-box. Windows 95/98/ME and NT/2000/XP work 
either with "PonyProg API" and "PonyProg I/O", but the latter is faster. 
Then select the COM port you want to use, if some COM ports are disabled 
it means that they are used by other programs (usually by the mouse 
driver or modem), or not installed or access denied (may need root 
privileges). If you use added COM ports (PCI or PCMCIA cards) you must 
use "SI-Prog API". Note that USB2RS232 adapters often don't work or are 
very slow.
http://www.lancos.com/e2p/ponyprog2000.html

Das liest sich für mich so, als ob "SI-Prog API" der sicherer Weg wäre. 
Das scheint sich in deinem Fall auch zu betsätigen. Man könnte nich 
hingegen und auf den Zusammenhang mit VISTA hin suchen und ob es da 
spezifische Usererfahrungen gibt. Oben in der Doku ist VISTA ja noch 
nicht erwähnt.

von SiWi (Gast)


Lesenswert?

Habe jetzt die wichtigen Pins am Sockel getest, Ergebnis: Weder an VCC 
noch an AVCC noch an RESET liegen 5V an. Wie kann ich jetzt die 
Fehlerquelle einschränken? Ich geh jetzt mal davon aus, dass es ein 
Lötfehler von mir ist, da diese Board eine miener ersten Löarbeiten ist.
Kann folgendes ein Fehler sein: Bei manchen Löchern in die die 
Komponenten gelötet werden sieht man von oben keine Lötstelle. Ist da 
normal oder ein Lötfehler?

von SiWi (Gast)


Lesenswert?

Vorherigen Beitrag bitte als ungültig betrachten.
Ich hatte nicht gemerkt, dass sich der Kontakt zum Strom vor meinen 
Messungen gelöst hatte.
Sämtliche eintscheidenden Spanungen liegen an.
Wie kann ich nun feststellen, ob ein Softwarekonfigurationsfehler, ob 
der Mikrocontroller nicht funktioniert oder ob der Programmer auf dem 
Board oder andere Bauteile falsch verlötet sind?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Du hast die Kalibrierung in PonyProg gemacht?

PonyProg läuft mit der Einstellung "SI Prog API"?

Du verwendest welches Kabel zwischen PC und Pollinboard? 
Vollbeschaltetes 1:1 RS232-Kabel (OK)? Nullmodemkabel (wird nix)? 
USB-RS232 Adapter (Kann gehen, muss nicht. Wenn's geht, ist' lahm)?

An welchem Anschluss des Pollinboards ist das Kabel angeschlossen? An 
der 9-poligen DB9-Buchse, die mit ISP (o.ä.) gekennzeichnet ist?

> Kann folgendes ein Fehler sein: Bei manchen Löchern in die die
> Komponenten gelötet werden sieht man von oben keine Lötstelle. Ist da
> normal oder ein Lötfehler?

Gehen an den Stellen oben und unten Leiterbahnen weg und sind die beim 
test mit einem Durchgangsprüfer elektrisch über die Lötstelle 
miteinander verbunden? Das sollte bei einem richtg gelöteten Board der 
Fall sein.

von SiWi (Gast)


Lesenswert?

Kalibrierung habe ich gemacht.
PonyProg läuft mit der Einstellung "SI Prog API".
Kabel ist ein RS232/Sub-D Kabel ohne USB-Adapter und ist am ISP Port 
angeschlossen.
Was ich bei Google gefunden habe, sind viele Aussagen, dass man die 
Einstellung SI I/O hernehmen sollte für das Pollinbaord. Aber 
ausgerechnet diese kann ich nicht verwenden, da aufgrund meines Vista64 
Systems die Datei DLPORTIO.SYS nicht geladen werden kann.

von SiWi (Gast)


Lesenswert?

So habe jetzt PonyProg auf ne virtuelle XP 32Bit Maschine gespielt
->Kann jetzt zwar auch die Einstellung SI Prog IO vornehmen, bekomme 
aber immer noch unknown or missing device(-24) gemeldet.
Kann mir jemand noch sagen welche Spannungen an den Programmierports des 
Mega32 vorliegen müssen, damit ich Lötfehler gänzlich ausschließen kann?

von SiWi (Gast)


Lesenswert?

Ach ja übrigens: Statt das Board mit 9V Wechselspannung zu betreiben, 
benutze ich 9V Gleichspannung. Kann das ein Problem darstellen?

von ... .. (docean) Benutzerseite


Lesenswert?


von SiWi (Gast)


Lesenswert?

Hmmm, ich weiß nicht genau, wie dieser Thread mir bei der Lösung meines 
Problems helfen könnte, da sich ja unter meiner emulierten XP Maschine 
die selben Probleme ergeben.

von Wars das (Gast)


Lesenswert?

Passiert sowohl wenn ich Avr Autodetect einstelle als auch wenn ich Avr
Mega 323 eisntelle.

Mal mit Mega32 probiert ? Könnte bei einem Mega32 klappen

Gruß Wars Das

von SiWi (Gast)


Lesenswert?

Jepp habe ich schon auf dem emulierten System.
Konnte ich zuvor nur nicht auf meinem Vista64, da sich da Version 2.07 
nicht installieren lässt und die verwendete 2.05 Version die Einstellung 
Mega32 nicht hat, sondern nur Mega323.

von Skua (Gast)


Lesenswert?

Das mit dem Emuliertem System bringt nix weil die I/O Zugriffe trotzdem 
über den Host laufen.
Das Timing wird davon auch nicht besser.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Es gibt 295 Suchtreffer bei Google mit dem Suchtext +ponyprog +"vista 
64"

Zusammenfassung: Es sieht schlecht aus. Schlecht für Ponyprog und 
bestimmte andere AVR ISP Programmer.

Funkionieren soll der USBasp von Thomas Fischl und der USB-ISP von 
Ulrich Radig, wenn die Prüfung der digitalen Signatur der USB Treiber 
abgeschaltet wird:
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=44215
http://www.ulrichradig.de/site/forum/viewtopic.php?f=31&t=1319

von SiWi (Gast)


Lesenswert?

Probiere das Ganze gerade auf einem echten XP32 System aus.
-> Selbes Problem wie vorher. Hab jetzt noch getest ob die Spannung von 
Reset beim Start des Programmierens auf 0 abfällt, was sie tut.
Kann mir vielleicht noch jemand sagen, welche Ports zum Programmieren 
verwendet werden und welche Spannung die vor dem Programmieren haben und 
wie sich diese während des Programmierens verändern sollte.

von SiWi (Gast)


Lesenswert?

Hab jetzt getestet was an den Ports PB6,PB7,PB8 bei dem Start der 
Programmierung passiert(Ich glaube, das sind die, die man zur 
Programmierung benötigt, richtig?).
Nur der Port PB6 ändert sich vor der Fehlermeldung kurz auf 3-5 Volt, 
die anderen zwei nicht.
Ist das so normal?

von SiWi (Gast)


Lesenswert?

Hab da was durcheinandergebracht.
Ich hab Port 6,7,8 am IC-Sockel getestet, was PB5,6,7 entspricht.
PB5 bzw. Port6 ist der, an dem sich die Spannung verändert.

von Markus F. (5volt) Benutzerseite


Lesenswert?

Ein Tipp: Nimm zum Programmieren mal Avrdude mit "ponyser" als 
Programmer. Ich habe auch so ein Board, und mit Ponyprog geht das auch 
nicht vernünftig. Mit Avrdude klappt es bei mir aber prima.

von SiWi (Gast)


Lesenswert?

Mit Avrdude bekomme ich den Fehler AVR Device not respondig gemeldet.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Du kannst in die Kommandozeile vom AVRDUDE noch die Anweisung -vvvv 
aufnehmen. Dann ist die Ausgabe umfangreicher. Vielleicht kann man dann 
mehr erkennen.

von SiWi (Gast)


Lesenswert?

Habe jetzt das simple Parallel Programmer Kabel von 
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm nachgebaut.
Damit habe ich versuchte den Mega32 auf eine Breadboardschaltung zu 
porgrammieren.
Ergebnis: Funktioniert weder auf Vista64 noch XP32.
Daher liegt die Vermutung nahe, dass der Mega32 nicht funktioniert.
Wie kan ich testen ob er defekt ist oder nicht?

von SiWi (Gast)


Lesenswert?

Jetzt hb ich mal versucht die vom Programmer verwendeten Ports manuell 
zu setzen.
->Mosi und SCK kommen am IC-Sockel an. Das einzige, was mir dabei auf 
gefallen ist, ist dass beim Setzen auf 0 ~-0.7 V ankommen. Sollten da 
exakt 0 ankommen oder ist das beim Pollinboard so normal?

von SiWi (Gast)


Lesenswert?

Also hab jetzt mal das ganze bei avrdude mit -vvvv laufen lassen.
Was genau müsst ihr da wissen? Die Ausgabe ist nämlich ziemlich lang.
Was mir dabei allerdings ins Auge springt ist, dass vor der 
Fehlermeldung
"AVR device not reponding" 30-40 mal diese Ausgabe kommt:
bitbang_cmd(): [AC 53 00 00] [00 00 00 00]
Wenn ich die Dokumentation von AVR zum Programmer richtig verstanden 
habe, sollte also die Rückgabe des Controllers, also wohl der zweite 
Block [AC 53 00 00] lauten, richtig?
Kann man dauraus ablesen, dass der Mikrocontroller hinüber ist?

von SiWi (Gast)


Lesenswert?

Hab jetzt selber mit nem kleinen Programm versucht das Programmieren 
Signal zu schicken und die Ausgabe des Mikrocontrollers auszulesen.
->Ich bekomme auch 00 00 00 00 zurück.

von Stefan B. (stefan) Benutzerseite


Angehängte Dateien:

Lesenswert?

SiWi wrote:

> Also hab jetzt mal das ganze bei avrdude mit -vvvv laufen lassen.
> Was genau müsst ihr da wissen? Die Ausgabe ist nämlich ziemlich lang.

Macht nix, nee nicht richtig, es ist sogar sehr gut, den Text komplett 
anzugeben! Man kann dann wichtige Infos entnehmen u.a. die AVRDUDE 
Version und welche Kommandozeile du benutzt hast.

Du solltest die lange Datei in den Anhang deiner nächsten Nachricht 
hängen. Wenn du magst, komprimiere die Textdatei in ein Archiv.

Wenn die Länge der Ausgabedatei dadurch kommt, dass du ein elend langes 
HEX-File flashen willst, dann versuche nur die Fuses auszulesen und 
lasse das Übertragen der HEX-Daten weg.

Dein Parallelport ISP-Adapter ist der in dem ersten Schaltbild hier?
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

Du könntest mal einen Loopbacktest versuchen, um herauszufinden, ob 
der PC überhaupt korrekt von MISO lesen kann:

Du kannst den Test direkt am ISP Stecker machen (RESET, SCK etc. werden 
nicht berücksichtigt). Bei 10-poligen Stecker sind es die Pins 1 und 9 
auf die es ankommt.

Oder du kannst auch noch die MISO/MOSI Leitungen bis zur IC-Fassung in 
den Test einbeziehen. Dazu den Atmega32 aus der Fassung nehmen, weil der 
jetzt nicht benötigt wird und auch nicht auf Spiel gesetzt werden soll.

Dann bei einem der beiden Testaufbauen eine Drahtbrücke zwischen MOSI 
und MISO stecken. Dadurch sollte alles, was AVRDUDE sendet auch 
zurückkommen, d.h. in der Debugausgabe sollten die 00 beim bitbang_cmd 
verschwinden.

Im Anhang ist ein Mitschnitt wie ein solcher Loopbacktest bei mir 
aussieht.

Die Kommandozeile ist noch für den Attiny2313, den ich derzeit auf dem 
Pollin Funk AVR Board habe. Die Fuses sind auf externen Quarz 8 MHz 
eingestellt, d.h. du solltest die Kommandozeile nicht 1:1 
übernehmen!!! Als ISP Adapter benutze ich einen STK200 ISP-Adapter 
an LPT1. Den Test habe ich am ISP Stecker durchgeführt, weil ich meinen 
Attiny2313 nicht unnötig aus der Fassung nehmen möchte.

> Was mir dabei allerdings ins Auge springt ist, dass vor der
> Fehlermeldung
> "AVR device not reponding" 30-40 mal diese Ausgabe kommt:
> bitbang_cmd(): [AC 53 00 00] [00 00 00 00]
> Wenn ich die Dokumentation von AVR zum Programmer richtig verstanden
> habe, sollte also die Rückgabe des Controllers, also wohl der zweite
> Block [AC 53 00 00] lauten, richtig?

Richtig.

> Kann man dauraus ablesen, dass der Mikrocontroller hinüber ist?

Nicht unbedingt. Es bedeutet "nur", dass AVRDUDE die vier über MOSI 
gesendeten Bytes nicht wieder so über MISO empfängt, sondern dass 4x 00 
zurückkommt.

Wenn der Loopbacktest oben weiterhin 4x 00 zeigt, ist der Atmega32 
überhaupt nicht an der Sache beteiligt. Es kann dann ein Problem auf dem 
Pollinboard sein (kalte Lötstelle?, Unterschied Test Board/Stecker?) 
oder am ISP Adapter oder an der Einstellung des Parallelports am PC.

Beim Parallelport selbst kann man - oft im BIOS - einstellen, in welchem 
Modus der arbeiten soll. Für AVRDUDE ist der SPP Modus der sicherste. An 
zweiter Stelle kommt der EPP Modus und nicht empfehlenswert ist der ECP 
Modus: Beitrag "ISP und ECP Modus"

Du hast sicher einen arschschnellen PC, wenn du Vista 64 normalerweise 
drauf hast. Die Geschwindigkeit modernen PCs kann Probleme beim Flashen 
mit AVRDUDE machen. Hier ist ein Hinweis, wie man das Timing beim 
Flashen manipuliert: Beitrag "Re: avrdude sagt: Fehler! - Bei PonyProg ist alles ok?"

von Stefan B. (stefan) Benutzerseite


Lesenswert?

SiWi wrote:

> Jetzt hb ich mal versucht die vom Programmer verwendeten Ports manuell
> zu setzen.
> ->Mosi und SCK kommen am IC-Sockel an. Das einzige, was mir dabei auf
> gefallen ist, ist dass beim Setzen auf 0 ~-0.7 V ankommen. Sollten da
> exakt 0 ankommen oder ist das beim Pollinboard so normal?

Verstehe ich das richtig: den HIGH Pegel an MOSI und SCK kannst du 
ordnungsgemäß messen, wenn du selbst die Signale entsprechend setzt? Das 
spricht dafür, dass dein ISP-Adapter bei den beiden Leitungen und die 
Ausgabe auf dem Parallelport OK ist.

-0.7 V beim Setzen von LOW halte ich für OK. Ich vermute du erhälst 
nicht exakt 0V, weil irgendwo noch ein PN-Übergang (Diode?) im Spiel 
ist. Um da was genaueres zu sagen, müsste man wissen: Wie hast du 
gemessen? Wo war dein Bezugspunkt?

von SiWi (Gast)


Lesenswert?

Also, wenn ich die Wirebridge setze kommt bei AVR-Dude wieder alles 
genau so zurück wie es hingesendet worden ist.
Mein Bezugspunkt für die Messungen war GND an der Sockelfassung.

von SiWi (Gast)


Lesenswert?

Ach ja übrigens, an der Geschwindigkeit des Pcs kanns wohl auch nicht 
liegen, da ich bei meinem eigenem Programm eine Taktgeschwindigkeit von 
1ms-1s getestet habe. Das Problem mit meinem Programm könnte eher sein, 
dass minimal unterschiedliche Taktzeiten auftretetn können, und ich 
nicht weiß, ob der Mikrocontroller damit Probleme hat.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hmm, Loopback für MOSI und MISO gehen, d.h. diese Leitungen sind OK und 
die Parallelschnittstelle funktioniert. Aber dein Atmega32 lässt sich 
dennoch nicht programmieren. Weder auf dem Pollinboard noch auf dem 
Steckbrettaufbau, d.h. es liegt wohl nicht am Pollinboard. Vielleicht 
ist er wirklich defekt. Hast du noch einen anderen AVR?

Mit ISP Adapter (STK200-Komp.) ist im Ruhezustand
MOSI Low
MISO HIGH (2,22V)
SCK Low
RESET High.

Mit ISP Adapter (STK200-Komp.) ist im RESET-Zustand (Taster)
MOSI Low
MISO HIGH (2,22V)
SCK Low
RESET Low.

Ohne ISP Adapter ist im Ruhezustand
MOSI Low
MISO Low (-0,016V)
SCK Low
RESET High.

Ohne ISP Adapter ist im RESET-Zustand (Taster)
MOSI Low
MISO Low (-0,016V)
SCK Low
RESET Low.

> Ach ja übrigens, an der Geschwindigkeit des Pcs kanns wohl auch nicht
> liegen, da ich bei meinem eigenem Programm eine Taktgeschwindigkeit von
> 1ms-1s getestet habe. Das Problem mit meinem Programm könnte eher sein,
> dass minimal unterschiedliche Taktzeiten auftretetn können, und ich
> nicht weiß, ob der Mikrocontroller damit Probleme hat.

Kann ich nicht beurteilen. Wenn wir über AVRDUDE reden, reden wir über 
das gleiche Programm. Dein Programm kennst nur du.

von SiWi (Gast)


Lesenswert?

Wuhuu, es funktioniert. Habe jetzt den neuen Mega32 von Pollin bekommen 
und das Programmieren funktioniert ohne Probleme.
Vielen Dank für die Hilfe.

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.