Hallo, ich bin ein Newbie in der AVR-Programmierung, habe bisher immer mit Motorola-Controllern gearbeitet. Ich möchte den ATmega8 auf einer Programmierplatine über ein serielles Kabel am COM1-Port programmieren. Hierzu habe ich eine Programmier-Schaltung nach Anleitung im Web gebaut (http://s-huehn.de/elektronik/avr-prog/avr-prog.htm): Meine Schaltung befindet sich im Anhang (pdf), und ich bin mir relativ sicher, dass meine Platine fehlerfrei der Schaltung entspricht, habe inzwischen mehrfach nachgemessen. Hierzu möchte ich - wie in der Anleitung empfohlen - PonyProg benutzen. Kalibrierung und Hardware-Setup funktionieren fehlerfrei, was aber nicht sehr aussagekräftig zu sein scheint, da dieser Test auch mit OK abgeschlossen wird, wenn die Platine gar nicht mit Spannung versorgt ist! Dann gehe ich über "Open Program Memory (Flash) File" zu meiner (zuvor mit 'gavrasm' kompilierten HEX-Datei) und öffne diese. Nun will ich dieses HEX-File mit "Schreibe Device" auf den µC schreiben, aber dann bleibt der Balken bei 0% stehen und nach einem Augenblick kommt dann die Fehlermeldung "Falsches oder fehlendes Device (-24)". Dieselbe Fehlermeldung kommt auch, wenn ich "Erase all the Device to FF" klicke. Was mache ich denn möglicherweise falsch, was kann ich überprüfen um dem Fehler auf die Schliche zu kommen? Was würdet Ihr als nächstes überprüfen? Vielen Dank im Voraus für Eure Hilfe!!
Benuzt du eine "echte" COM Schnittstelle? Oder son USB Wandler? Auch bringen manche Laptops nicht die benötigten Spannungen...
Ich hab mal die gleiche Schaltung verwendet und musste feststellen: 1. sie ist grotten langsam (+30s Programmierdauer) 2. bei mir haben nicht alle Pony Versionen funktioniert!! Ich habe das Teil nicht mit der aktuellsten sondern nur mit einer älteren Version zum laufen gebracht. Die Version kann ich dir jetzt nicht sagen. Verwende lieber diese Teil: http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html
@laeubi: Ja, eine echte COM-Schnittstelle am PC. @ich: Na das ist ja mal ne Info, dann werde ich mir mal den Link anschauen. WER HAT DIESE SCHALTUNG MIT WELCHER PONYPROG-VERSION ZUM LAUFEN GEBRACHT? Danke!!!
@Skua: Dann sagt der Hardware-Setup-Test ebenfalls "OK" aber der Fehler beim Device Schreiben bleibt derselbe. :-/
Calibration gemacht? Ich benutzte Ponyprog 2.07c beta mit dem Pollin Board welches eine sehr ähnliche Schaltung hat.
Also bei mir lief es nur mit der 2.06f Beta. Bei den Versionen danach kam immer die Device Fehler.
@Anna-zaira Engeln (nanalisa) > Hierzu habe ich eine Programmier-Schaltung nach Anleitung im Web gebaut > http://s-huehn.de/elektronik/avr-prog/avr-prog.htm genau diese Schaltung benutze ich seit längerer Zeit ohne Probleme, allerdings bisher immer mit den alten AT90S2313. Wobei ich den 560pF-Kondi aus Platzgründen weggelassen habe. Die PonyProg-Version habe ich nicht im Kopf, da müsste ich später mal nachsehen. Den von dir beschriebenen Fehler hatte ich auch schon, war dann entweder ein Verdrahtungsfehler, fehlende Spannung am Prozessor oder einfach vergessen den Programmierstecker einzustecken. Also, auch wenn es nervt und du überzeugt bist, alles richtig verdrahtet und verlötet zu haben, kontrollier noch mal alles. Viel Glück. Reinhard PS. Vielleicht falscher COM-Port ausgewählt?
Meine Ponyprogversion war 2.05aBETA. Ich habe jetzt nacheinander 2.06f und 2.07cBETA installiert, dasselbe Verhalten: - Callibration OK - Test OK (nur, wenn ich den richtigen COM-Port ansteuere, aber egal ob Spannung an oder aus) - Fehlermeldung heißt jetzt anders: "Hardware error, is the board properly connected? (-14)" :-/
Das von mir gebaute Board ist wohl eine abgespeckte Version vom SI-Prog, für welches PonyProg ursprünglich geschrieben wurde. Nun denke ich darüber nach, ob ich nun nicht doch das SI-Prog nachbauen sollte, aber natürlich nur mit den notwendigen Komponenten. Sprich: Das Base-Board plus den entsprechenden Adapter. Hier gibts die Schematics: http://www.lancos.com/e2p/si-prog-v2_2.pdf Aber welcher ist der richtige für den ATmega8? Das einzige ebenfalls 28-pinnige Teil ist der Adapter der in der Zeichnung AT90Sxxxx genannt wird. Kann ich den denn auch für meinen ATmega8 benutzen!? Das Pinning scheint jedenfalls zu passen! Hat das schon jemand gemacht, was gibt es zu beachten?
@Anna-zaira Engeln Wenn du dich bis heute Abend gedulden könntest, da kann ich mal mit einem ATMega48 und einem ATMega32-16 auf einem Steckboard Programmierversuche mit dem Programmer machen. Reinhard
Hallo, könnte auch an dem MISO liegen, das damit dein PC oder Laptop mit dem 5Volt Pegel nicht zu Recht kommt. Probier doch mal über nen Transistor nen höheren Spannungspegel. Wie lang ist eigentlich dein Kabel ? Gruß
@reirawb: Ja wäre super, vielen Dank schonmal! @fubu1000: 1. Das Kabel ist keinen halben Meter lang. 2. Apropos Pegel - was für Pegel sollte ich denn eigentlich an welchen Ein-/Ausgängen messen? Ich hab mir mal den Spaß gemacht und die Pegel mit dem Oszi aufgezeichnet: 1=MOSI, 2=MISO und 3=SCK. Im ersten Bild sieht man den Hardware-Setup-Test und im zweiten Bild den Versuch, Daten auf den µC zu schreiben. In beiden Fällen liegen die Pegel alle bei 0V, nur der 3. Pegel, also SCK zuckt wenigstens mal zwischendurch. Das kann doch so nicht richtig sein!?
Ich habe mal alle Pegel im Ruhezustand (also Spannung an, Kabel angeschlossen aber PonyProg zu) gemessen: [01 (RST)=5V 28] [02 27] [03 26] [04 25] [06 24] [06 23] [07 (Vcc)=5V 22] (AGND)=0.06V [08 (GND)=0.06V 21] [09 (XTAL1)=0.06V 20] (AVcc)=5V [10 (XTAL2)=0.06V 19] (SCK)=-0.466V [11 18] (MISO)=0.21V [12 17] (MOSI)=0.06V [13 16] [14 15] Müsste ich nicht eigentlich an XTAL1 und XTAL2 wenigstens irgendetwas messen? Wie sollte das Signal dort aussehen? Stimmen die restlichen Pegel einigermaßen? Wieso sind meine GND-Signale nicht wirklich bei 0V?
Schau mal was Reset macht wenn du versuchst zu Programmieren. Den Transistor falsch einbauen ist ein beliebter Fehler.
Hi Skua! Der macht DAS (s. Bildchen im Anhang) hier... was bedeutet das!? Übrigens... mir ist gerade aufgegangen, dass ich die entsprechenden FUSE-BITS wohl nicht gesetzt habe, um dem µC mitzuteilen, dass da ein Quarz an ihm dran hängt (patsch). Deshalb wohl auch keine Schwingung, damit kein Takt und somit keine Kommunikation... jetzt versuche ich gerade herauszufinden, wie ich im die richtigen Fuse-Bits setzen kann, wenn ich doch keine Kommunikation hinbekomme!?
... ich hab nochmal genau nachgemessen, der Transistor ist exakt so eingebaut wie in meiner Schaltung (Fehler.zip, weiter oben) beschrieben...
Der MOSI müßte eigentlich entweder ca. +4,7V oder -0,6V haben. Null heißt, dass der serielle Pin weder high noch low hat, ist der überhaupt angeschlossen? Der interne RC-Oszillator ist im Auslieferzustand eingeschaltet, also sollte auch ohne Quarz eine Kommunikation erfolgen.
MOSI ist Pin 4, also DTR, ein Ausgang am PC, der sollte entweder auf +10V oder -10V liegen.
@Anna-zaira Engeln sorry, dass ich mich gestern nicht mehr gemeldet habe, mein Internet zu Hause (UMTS/HSDPA) war gesten Abend nicht verfügbar :-( Ich habe trotzdem etwas experimentiert und muß leider sagen, mit einem ähnlichen Ergebnis wie du. Ich habe es mit den beiden vorhandenen PonyProg-Versionen 2.06f und 2.05c versucht, die 2.07a bzw. 2.07c konnte ich leider gestern nicht runterladen, siehe oben. Ich habe es mit einem ATmega48-20 und einem ATiny13 versucht, in beiden Fällen das gleiche Ergebnis: "Falsches oder fehlendes Device (-24)", wobei beide ICs in der Device-Liste der vorhandenen Softwareversionen NICHT auftauchen. Habe es mit ähnlichen Devices und mit "Auto Device" versucht, geht nicht. Gegenprobe mit einem AT90S2313 funktioniert problemlos, aber auch nur, wenn das Device richtig eingestellt ist. Werde heute Abend mal die aktuellsten PonyProg-Versionen testen und hier berichten. Reinhard
@reirawb: Na das macht mir nicht gerade Mut. :-/ @christoph_kessler: Ich werde mich jetzt mal auf die Suche nach dem verlorenen MOSI-Signal machen, vielleicht bringt mich das ja weiter. seufz
Kann es sein das ggf der Treiber für direkte Portzugriffe fehlt?
Guten Morgen! @Läubi: Ich bin mir nicht sicher, ob ich Deine Frage richtig verstehe. Ich habe XP installiert, sollten die Port-Treiber da nicht automatisch funktionieren? Ich habe diesen Port jedenfalls schon für andere Anwendungen benutzt. ... oder was meinst Du mit "direkte Portzugriffe"? Ich habe übrigens inzwischen auch Antwort von Scott-Falk Hühn, dem geistigen Vater meiner Schaltung, bekommen: "Bei den meisten Leuten funktioniert diese Schaltung problemlos. Aber mir wurde auch schon von unlösbaren Problemfällen berichtet. Das liegt daran, dass die serielle Schnittstelle am Rande der Spezifikationen betrieben wird. Bei Problemen bitte nochmals gründlich den Schaltungsaufbau überprüfen. Außerdem muss die Betriebsspannung am Controller stabil sein und die Programmieranschlüsse des Controllers dürfen nicht mit anderen Bauteilen beschaltet sein." Die letzten beiden Punkte (Betriebsspannung und Programmieranschlüsse) werden erfüllt, aber was fange ich mit seiner Aussage aus dem ersten Absatz an?
JUHU! ER LÄUFT!!! Erst habe ich alles auseinandergenommen um dem MOSI-Signal nachzugehen. Ich konnte das -10V-Signal am PC messen, am Ende des Kabels auch. Dann habe ich alles wieder zusammengesteckt und PonyProg immer wieder befohlen, die Daten zu schreiben. Das Signal habe ich dann vom PC-Port über die Widerstände bis zum MOSI-Port des µC verfolgt und festgestellt, dass es irgendwo über dem letzten Widerstand verloren ging. Also musste die Leiterbahn des Ports ja irgendwo mit etwas verbunden sein, mit dem es nicht verbunden sein sollte. Mit einer Lupe habe ich dann gefunden, was ich suchte! Es war ein blödes kleines Lötkleckschen (eher ein Faden), der das MOSI-Signal auf GND gezogen hat. So ein Mist!! Jetzt schreibt er jedenfalls endlich die Daten! VIELEN DANK für Eure Mühen!! Nun hoffe ich, dass ich den Rest auch noch hinbekomme, da warten sicher auch noch einige Hürden auf mich. Aber nun weiß ich ja, wo ich kompetente Hilfe bekomme. DANKE nochmal!!
@Anna-zaira Engeln Na dann Glückwunsch! Ich zitiere mich mal selber :-) > Also, auch wenn es nervt und du überzeugt bist, alles richtig > verdrahtet und verlötet zu haben, kontrollier noch mal alles. Und viel Erfolg weiterhin. Reinhard
> Ich zitiere mich mal selber :-) >> Also, auch wenn es nervt und du überzeugt bist, alles richtig >> verdrahtet und verlötet zu haben, kontrollier noch mal alles. STIMMT!! Man kann sich wohl nie sicher sein, dass alles korrekt ist. Ich hatte vorher eben nur Verbindungen geprüft, und keine NICHT-Verbindungen. ;-) Dafür hätte ich erst mal wissen müssen, welche Pegel ich wo zu erwarten habe. Aber nun bin ich wieder ein kleines Stückchen schlauer... DANKE!!
Hallo, nur noch kurz zur Info, bei mir funktioniert das Programmieren der beiden ICs ATmega48-20 und ATTiny13-20 jetzt auch, und zwar mit der neuesten PonyProg-Version 2.07c. Internet geht -wie man sieht- auch wieder, also alles im grünen Bereich. Im Anhang übrigens ein Bild von meinem Programmer im 9poligen Sub-D-Stecker. Reinhard
Hallo, Ich habe dasselbe problem wie der Threaderöffner. Autor: Anna-zaira Engeln (nanalisa) Datum: 14.10.2008 09:03 Ich möchte den ATmega32 auf einer Programmierplatine über ein serielles Kabel am COM1-Port programmieren. Hierzu habe ich eine Programmier-Schaltung nach Anleitung im Web gebaut (http://s-huehn.de/elektronik/avr-prog/avr-prog.htm) Hierzu möchte ich - wie in der Anleitung empfohlen - PonyProg benutzen. Kalibrierung und Hardware-Setup funktionieren fehlerfrei, was aber nicht sehr aussagekräftig zu sein scheint, da dieser Test auch mit OK abgeschlossen wird, wenn die Platine gar nicht mit Spannung versorgt ist! ... Nun will ich dieses HEX-File mit "Schreibe Device" auf den µC schreiben, aber dann bleibt der Balken bei 0% stehen und nach einem Augenblick kommt dann die Fehlermeldung "Falsches oder fehlendes Device (-24)". Noch ein wichtiger Punkt: Die Hardware ist zu 100% ok. Ich habe mit diesem Adapter bereits erfolgreich an meinem 2. Rechner (Win 2k SP4) Den AVR geflasht. Nur unter Xp Home SP 3 will das Teil nicht laufen! Ideen? Vielen Dank im Voraus für Eure Hilfe!!
michi wrote: > Hierzu möchte ich - wie in der Anleitung empfohlen - PonyProg benutzen. Hast Du die neueste Version? > Kalibrierung und Hardware-Setup funktionieren fehlerfrei, was aber nicht > sehr aussagekräftig zu sein scheint, da dieser Test auch mit OK > abgeschlossen wird, wenn die Platine gar nicht mit Spannung versorgt > ist! Stimmt, darauf kann man sich lt. meinen Erfahrungen auch überhaupt nicht verlassen. > ... > Nun will ich dieses HEX-File mit "Schreibe Device" auf den µC schreiben, > aber dann bleibt der Balken bei 0% stehen und nach einem Augenblick > kommt dann die Fehlermeldung "Falsches oder fehlendes Device (-24)". Wenn ich das richtig verstanden habe, bedeutet das, dass er sich nicht mit einem Gerät verbunden fühlt. Hast Du den richtigen Port verbunden und eingerichtet?
Hi. Ja Pnnyprog2000 2.07c Jo und Port müsste auch stimmen Com1 ist eingestellt Calibration war auch erfolgreich. Ich hab alles genauso gemacht, wie auf dem anderen Rechner (auf dem es ja funktioniert) Hab gelesen, dass es bei Xp Probleme geben soll, weil es keine Direktzugriff auf den serial port zulässt. Das nervt mich total. Der 2000er Rechner ist unser Server hat keinen Moni drann und steht im Keller in der hintersten Ecke. Glaubst du dass es an Xp liegt? Worann kann es sonst noch liegen? Das Board ist übrigends ein ASUS P5Q Pro. Kann ich den serialport irgendwie testen? Treiber Problem? ...
Bei mir läuft es unter XP, daran kann es also nicht generell liegen. Treiber? Ja, vielleicht, hast Du das Ganze schon mal mit einem Portmonitor beobachtet? Ich benutze den hier: http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx Ansonsten: hast Du ein Oszi zur Verfügung? Kannst Du die Signal-Pegel überprüfen? Viel Erfolg!
Hi. Also ich hab es jetzt mal mit dem Portmonitor überprüft. Folgendes hat er ausgespuckt: --------------------------------------------------------------------- 0.00004309 PONYPROG2000.EX IRP_MJ_CREATE Serial0 SUCCESS Options: Open 0.00000080 PONYPROG2000.EX IOCTL_SERIAL_GET_WAIT_MASK Serial0 SUCCESS 0.00000073 PONYPROG2000.EX IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: 0.00000073 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000048 PONYPROG2000.EX IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: 0.00000092 PONYPROG2000.EX IRP_MJ_CLEANUP Serial0 SUCCESS 0.07485138 PONYPROG2000.EX IRP_MJ_CLOSE Serial0 SUCCESS 0.00004321 PONYPROG2000.EX IRP_MJ_CREATE Serial0 SUCCESS Options: Open 0.00000089 PONYPROG2000.EX IOCTL_SERIAL_GET_WAIT_MASK Serial0 SUCCESS 0.00000072 PONYPROG2000.EX IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: 0.00000299 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000515 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000472 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000452 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000457 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000447 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000414 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000449 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000449 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000509 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000035 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000089 PONYPROG2000.EX IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: 0.00000078 PONYPROG2000.EX IRP_MJ_CLEANUP Serial0 SUCCESS 0.07495202 PONYPROG2000.EX IRP_MJ_CLOSE Serial0 SUCCESS --------------------------------------------------------------------- Das war der Versuch den ATMega32 auszulesen. Sehe ich das richtig, dass Ponyprog auf eine Antwort wartet, aber keine bekommt? Einen Oszi habe ich leider nicht zuhause. Montag oder Dienstag könnte ich mir einen borgen. Läubi schreibt oben: > Autor: Läubi .. (laeubi) Benutzerseite >Datum: 15.10.2008 08:22 > >Kann es sein das ggf der Treiber für direkte Portzugriffe fehlt? Das trifft wohl auf mich zu. Ich habe keinen Treber installiert. Welchen Treiber soll ich nehmen? Habe es mit "port95nt.exe" versucht. Weiß aber nicht, was ich da einstellen soll. Welchen Treiber hast du installiert? Vielen Dank, dass du mir hilfst!
Noch hab ich Dir ja nicht geholfen... Der reine Text sagt mir jetzt leider nichts, ich habe mal folgendes gemacht, um Dir eine Vergleichsmöglichkeit zu liefern: - Portmon gestartet, ATmega8 auf Platine gepröpselt, an PC angeschlossen und mit Spannung versorgt, Ponyprog gestartet. Dabei ist die ponyprogstarten.log entstanden. - Datei auf Device schreiben geklickt: write_success.log - Spannung abgeklemmt, nochmal Datei auf Device schreiben geklickt: write_error24.log Vielleicht hilft Dir das zum Vergleich weiter? Zu den Treibern kann ich Dir leider nichts sagen, entweder ich hatte aus irgendwelchen Gründen schon die passenden Treiber installiert oder ich hab's vergessen. Kann mich jedenfalls nicht daran erinnern, extra Porttreiber installiert zu haben, tut mir leid! Viel Erfolg!
Ok danke dir. Das bringt mich schon ein Stückchen weiter. ------------------------------------------- 0.00000299 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000515 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000472 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000452 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000457 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000447 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000414 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000449 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000449 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_ON Serial0 SUCCESS 0.00000509 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS 0.00000035 PONYPROG2000.EX IOCTL_SERIAL_SET_BREAK_OFF Serial0 SUCCESS ------------------------------------------- Hier muss der Fehler liegen. Das kommt bei mir immer egal ob der Atmega32 drann hängt oder nicht. Bei dir sieht das ganz anders aus. Werd mal schaun, was ich da machen kann.
... und, wie sieht es aus? Hast Du das Problem gelöst? Wie?
ich denke, dass wenn ein device von -24 bis +32 ein groben fehler aufweist, wie auch beim ATmega8 und Ponyprog ist dies keine große sache. das wird sich wieder einpendeln.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.