Hallo Leute, habe das AVR-Tutorial durchgelesen und mir auch den beschriebenen ISP Programmer für den Parallelport gebaut. Danach habe ich mir die Schaltung des Tutorials mit den I/O-Ports auf einem Breadboard aufgebaut. Nun wollte ich den Atmega8-16PU programmieren. Doch leider bekomme ich bei YAAP immer den Fehler "Init failed. Is target connected and powered on". Als erstes habe ich natürlich geschaut ob Spannung an dem ISP-Progger an liegt und ob alle Verbindungen in Ordnung sind. Also den Fehler kann man ausschließen. Einstellungen sie Screenshot yaap.jpg! Ich habe das ganze auch mit PonyProg ausprobiert, aber da bekomme ich auch einen Fehler "Device missing or unknown device (-24)" Bei ponyprog habe ich AVR ISP I/O eingestellt und LPT1. Wenn ich auf Probe drücke kommt: "Test OK". Wie kann ich testen ob mein ISP Programmierer richtig funktioniert?? Wie kann ich testen ob der Atmega8 in Ordnung ist`??? Was kann ich sonst noch tun??? Gruß Marcus
parport = echt/mainboard oder pci-karte? ich nehm sp12 , der ging in meinen tests am besten
Also mein parallelport ist auf dem mainboard (Notebook), also keine PCI Karte!! Ich bin jetzt schon etwas weiter gekommen, mit PonyProg bekomme ich eine Verbindung aber erst wenn ich bei der Fehlermeldung (-24) auf Ignore drücke. Schreibend drauf zugreifen geht auch, aber erst wieder wenn ich die Fehlermeldung (... -24) wieder mit ignore bestätige. Aber es kommt nach dem schreiben die Fehlermeldung: "Write failed". An was kann dies noch liegen??? Gruß Marcus
wenn du das ignorierst werden die Daten einfach am Port ausgegeben unabhängig davon ob das der AVR mitbekommt oder nicht. Es gibt eine ini-Datei bei Ponyprog dort kann man einige Sachen einstellen die für den Reset und für die Geschwindigkeit wichtig sind. Hast du den richtigen Parallelport-Modius im Bios eingestellt?
und ganz wichtig unter WIN XP braucht du einen Treiber der den Zugriff auf den Port erlaubt da WIN XP das unterbindet ansonsten versuche es mal unter WIN98 da geht es. Es gibt da einige Programme für WIN XP die das freischalten eine wäre allowio.exe da muss man dann Ponyprog so starten allowio.exe "c:\xyz\ponyprog.exe" /a Oder es gibt da einige Treiber wie GiveIO.SYS oder FreshIO.SYS die in der Registry eingetragen werden, da kann man dann über dn Starttype einstellen ob Sie immer mitgestarten werden sollen oder nur wenn Sie gebraucht werden....
und noch ein kleiner Nachtrag PortTalk.SYS gibts da auch noch glaube das hängt aber mit dem AllowIO Programm zusammen wird also durch diesen Aufruf gestartet. Googel mal etwas nach Port Driver und du wirst bestimmt fündig.
Hallo. Ich bin im Moment auch das Tutorial am durcharbeiten. Wie es aussieht haben wir exakt die gleichen Probleme. Mit Yaap funktioniert bei mir auch nichts. Bei Ponyprog kann ich den Speicherinhalt lesen, aber auch nur wenn ich vorher "ignore" klicke. Den gelesenen Inhalt, also alles FF, kann ich auch wieder schreiben, aber ebenfalls "Ignore" klicken. Möchte ich eine andere Datei (die erste aus dem Tutorial) schreiben, kommt nach dem Schreiben eine Fehlermeldung. Ich benutze einen gekauften ISP-Programmer. Falls Du irgendwie weiterkommst, bitte hier posten. Ich probiers mal weiter, wenn ich was rausfinde melde ich mich. Gruß Christoph
ich empfehle trotzdem nen AVRISP zu kaufen da kann man aus dem AVR-Studio raus programmieren und da gibt dann auch keine Probleme mit den Portzugriffen.
Wenn du nicht auf das Device zugreifen kannst, liegt es so gut wie immer an der Hardware. Also überprüfe nochmal, ob wirklich überall die Spannung anliegt und, sehr wichtig, ob du nirgendwo irgendwelche unbeabsichtigten Brücken drin/drauf hast. Das hatte mich am Anfang auch einige Zeit gekostet, bis ich rausgefunden hab', dass ich auf der Platine eine Brücke hatte (Vom Ätzen).
@Philipp Denkst du das es am ISP Programmiergerät oder am Aufbau des Breadboard liegt?? Ich habe zwar alles schon bestimmt 8mal durchgeprüft, aber keine Fehler gefunden! @Thomas Weisst du ob es auch in einer virtuellen Maschine (VMWare) mit WIN98 geht?? Eine andere Möglichkeit habe ich nicht Win98 zu installieren. Einen IO-Treiber für XP habe ich schon installiert (den wo man für YAAP empfielt), werde aber noch den von dir ausprobieren. Im BIOS ist für den LPT1 bi-direktional eingestellt. @Christoph Welchen ISP-Programmierer hast du gekauft??? Gruß Marcus
Ich habe bei ebay eins gekauft. Die Homepage des Händlers: http://www.rasenack.com/ Die Tests mit Ponyprog sind alle positiv (unter Setup->Probe). Meine Aussage von oben, dass ich vom Mikrocontroller lesen kann, muss ich leider zurücknehmen, es läuft zwar genauso ab wie oben beschrieben, aber selbst wenn ich das Kabel vom Programmer nicht anschließe erhalte ich die selben Meldungen (auch die Erfolgsmeldungen). Im Moment gehe ich davon aus, dass irgendwo in der Schaltung ein Fehler steckt, obwohl ich alles zigmal durchgeschaut und gemessen habe. Werde heute abend die Schaltung nochmal neu aufbauen. Im Bios ist bei mir für Parallelport "ECP" eingetragen. Welche Einstellung muss es denn sein? Gruß Christoph
@Christoph also ich habe schon im Bios "ECP" und "Bi-direktional" eingestellt, aber hat beides nicht funktioniert. Was jetzt aber wirklich richtig ist konnte ich noch nicht rausfinden. Hier im Board stehen beide Möglichkeiten. Wäre nett wenn jemand sagen kann was RICHTIG wäre!!?! Werde das nun mal mit Win98 probieren, aber unter VM-Ware. Ich hoffe das unter VM alles läuft und es keine zusätzlichen Probleme macht. Sobald ich irgendein Fortschritt mache, melde ich mich hier nochmal. Gruß Marcus
ich denke nicht das es unter VM-Ware läuft mit den Portzugriffen. Kannste nciht W98 auf nen USB-Stick installieren?
Also ich habe jetzt nochmal die Spannungen am ISP Programmierer gemessen. Ich folgende Spannungen gegen Masse gemessen: (bei angeschlossenem AVR) SCK = 0,3V RESET = 5V MOSI = 0,1V MISO = 5V kann das sein?? Gruß Marcus
wenn gerade nicht programmiert wird, kommt es auf den AVR an was sich gerade an den Pins los ist. Logisch wäre es wenn die I/O-Pins als Eingang(hochohmig) mit deaktivierten Pullups konfiguriert sind(wenn er unprogrammiert ist), damit man nichts zerschießen kann. Außerdem habe ich schon oft gelesen das WIN XP den LPT Port nicht ganz losläßt um Geräte zu finden die angesteckt werden. Es könnte also sein das du da diese Pegel misst weil vom LPT-Port was an deinen Programmieradapter ausgegeben wird. Deshalb könntest du mal dem Programmieradapter 5V zuführen allerdings vom LPT-Port trennen und noch mal die Pegel überprüfen. Hast du ein Oszi zur Verfügung um zu testen ob überhaupt was zum Programmieradapter kommt, dann könnte man den Portzugriff schonmal als Fehlerquelle ausschließen.
@Thomas ne ich habe leider kein Osszi da, nur ein Multimeter. ich werde aber kurz die Werte nochmal nachmessen. Melde mich gleich nochmal!
also habe jetzt ohne AVR und ohne Anschluß an die LPT gemessen: SCK 0,6V RESET 0,6V MOSI 0,6V MISO 5V
Von deiner Versorgungsschaltung(5V) solltest über einen 4,7kOhm Widerstand an den Resetpin legen und vom Resetpin noch 47nF gegen Masse. Auf jedenfall musst du dann 5V am Reset-Pin messen, der Programmieradapter zieht dann diese 5V gegen Masse so das am Widerstand die Spannung abfällt und der AVR in den Reset geht. Wenn kein AVR in der Schaltung steckt darf auf keinen Fall 5V an den SCR, Miso, Mosi-Pins sein. Entweder haste hier ne Brücke in deiner Schaltung oder aber der HC(T)244 gibt da Spannung drauf. Klemm mal die 5V von deinem HC(T)244 ab hast du dann immer noch Spannung auf SCK, Mosi, Miso? Die Logicgrenze beim AVR ist bei 5V Versorgungsspannugn bis 1V Low und ab 3V High was dazwischen liegt kann man nicht 100%tig zuordnen. Es kann auch sein das da Impulsförmig mehr wie 0,6V anliegt aber dein Multimeter zeigt nur nen Mittelwert an außerdem kann das auf eine schlechte Masseverbindung hindeuten. Würde gerne mal ein paar Bilder deiner aufgebauten Schaltung sehen?
Damals als ich angefangen hab, hab ich meinen ersten mega8 geschrottet weil ich mit der Resetbeschaltung irgendwas falsch gemacht hab. Mit dem zweiten mega8 und richtiger Resetbeschaltung gings zuerst auch nicht. Erst nach langem rumprobieren bin ich dann drauf gekommen, dass der avr scheinbar nicht ordentlich im breadboard steckte. Selbst wenn man meint, dass er sicher steckt, würd ich, um so einen Fehler auszuschließen, einfach mal stark drauf drücken. Bei mir gings dann schlagartig. viel Erfolg
@Thomas Also sollte man statt dem im Tutorial angegebenen 10kOhm Widerstand besser 4,7kOhm verwenden oder ist das eher egal?
das ist die ATMEL Empfehlung für störende Umgebungen, die 47pF im Tutorial sind ein Schreibfehler das sollen nF sein. Es geht aber auch mit 10k Ohm.
@Thomas also hab mal ein Bild on meinem Aufbau und von meinem ISP-Programmer gemacht. Ich installiere gerade auf einem alten Notebook Win98, vielleicht geht es dann. Als Reset habe ich jetzt 100nF und 10kOhm genommen, ist das OK??? Gruß Marcus
ja ist ok. Aber wieso so eine wilde Leitungsführung auf dem Board mach doch die Kerkos direkt dahin wo sie hingehören zw. VCC und GNG, bei der Entfernung wie du sie hast kann man sie auch ganz weglassen.
@Thomas also ich habe gerade auf einem alten Notebook WinME installiert. (WIN98 CD ist defekt) dürfte aber keine Probleme machen! bekomme aber weiterhin bei YAAP den Fehler: "Init failed. Is target connected and powered on" und bei PonyProg: den Fehler: "DEvice missing or unknown device (-24)" Ich komm hier einfach nicht weiter! Hba die Schaltung nochmals kontrolliert, aber kann keinen Fehler finden!
NACHTRAG: habe jetzt nochmal die Spannungen am ISP-Progger geprüft, habe jetzt überall ein paar mV. Kann sein dass mein 74HC244 defekt ist??? Wie kann ich testen ob dieser richtig funktioniert? Wenn ich in PonyProg auf Probe drücke bekomme ich: bei eingestecktem ISP an LPT, ohne AVR: Probe OK bei eingestecktem ISP an LPT,mit ARR: Probe OK ohne alle: Probe failed Dies würde ja soweit passen! Kann es sein dass der Atmega nicht funktioniert?
steck den 244er auf dein Steckbrett versorg es mit Spannung und gibt dann mal 5V an einen Eingang jetzt müsste auch der Ausgang wechseln. Wenn das an allen Eingängen und ihrem entsprechenen Ausgang funktioniert ist er ok. Als nächstes musst du am LPT Port messen ob am entsprechenden Port was ausgegeben wird, achte aber darauf keien Kurzschluss zu bauen sonst kann es deinen LPT-Port killen. Wenn da also an den entsprechenden Pins was raus klappt es mit den Portzugriffen wenn nicht speilt WIN XP nicht mit. Solltest es jetzt mal Schritt für Schritt machen damit man den Fehler einkreisen kann. Kann es sein das du die Masse vom LPT Port nicht verbunden hast diese muss auch auf GND des 244er kommen genau so wie die Masse vom AVR. Auf jedenfall würde ich das ganze etwas kompakter aufbauen, die Kerkos müssen jeweils an ihren Einsatzort, bei dir sind die ja ellenlang vom Spannungsregler und µC entfernt, was nicht Sin und Zweck der Sache ist. Hier mal ein Bild wie ich sowas aufbaue.
Hmm .. mach dir doch einfach den STK200 Programmer, hab ich mir auch mit nem 244 gemacht. Im Bios stellt man dann "SPP" (StandardParallelPort) ein. Programmieren kannst du dein Zielboard das mit AVRDude, code schreiben in AVR-Studio. Wenn du vergessen hast Strom für dein Zielboard einzuplanen kann das auch ein Grund sein ;-)
Habe die Schaltung soeben nochmal neu aufgebaut. Aber dennoch funktioniert noch nichts. Aber mir ist aufgefallen, dass der AVR trotz festen reindrückens (bis zum Anschlag) nur locker im Board steckt und manche "Beinchen" keinen richtigen Kontakt haben. Gibt es hier spezielle Halterungen, die dickere Beinchen haben und in die ich den AVR einsetzen kann? Oder soll ich einfach an den AVR Drähte dranlöten oder ist hierbei die Gefahr zu groß den AVR zu zerstören? Danke schonmal und gute Nacht
könntest erst ne IC Fassung ins Bord stecken und den µC dann dadrauf. Aber gehe mal alles Schritt für Schritt durch. Als ersten mal am LPT-Anschluß messen ob beim Schreiben eines Files und Ignorieren Bestätigung überhaupt was am Port passiert. Wenn nicht musst du erstmal das beheben z.B. durch die Freigabe der Ports mittels Zusatzsoftware. Bei mir im Bios habe ich übrigens auch SPP eingestellt, da ich eh keine Scanner oder Drucker über LPT ansteuere und deshalb auf die etwas höhere Geschwindigkeit verzichten konnte, als ich noch den LPT-Progger verwenden habe. Wenn da also ein Signal rauskommt, prüfst du ob das auch an den Eingängen des 244er ankommt und ob die entsprechenden Ausgänge auch mitgehen, nicht das der 244er defekt ist. Wenn Sie nicht mitgehen könnte es auch mit den Pegeln Probleme geben vielleicht auch mal nen HCT244 probieren, dem reichen schon 2V am Eingang um ein High zu erkennen der HC Typ braucht ca. 3,2V und wenn die Schnittstelle am PC etwas müde ist kann das auch zu Problemen führen.
@Thomas also ich habe jetzt meinen HCT244 durchgemessen und laut meiner Erkenntnis ist der Baustein defekt. Also ich habe an PIN10 Masse angelegt und an PIN20 +5V Dann habe ich an PIN1 und PIN19 ebenfalls Masse angelegt, da laut Datenblatt /OE 0V haben muss um die Eingänge geziehlt auf die Ausgänge weiter zu leiten. Dann habe ich 5V abwechselnd an alle Eingänge gelegt und gemessen ob 5V am Ausgang ankommt. z.B. Eingang PIN2 mit Ausgang PIN18. Doch leider kamen an keinen Ausgängen 5V an. Jetzt ist natürlich auch die Frage ob ich vielleicht beim messen was falsch gemacht habe?
Die beiden Enable Pins musst du mit Masse verbinden damit die Eingänge auf die Ausgänge übertragen werden, wenn du da Spannung drauf gibst sind die Ausgänge hochohmig, also für deine AVR-Schaltung unsichtbar und kann somit nach dem Programmieren angeschlossen bleiben, weil sie weder strom liefern noch die Ausgänge des AVRs belasten. Ich dachte du hättest einen HC Typ aber gut HCT ist ja eh empfehlenswerter.
@Thomas also dann habe ich ja alles RICHTIG gemessen. Dann ist der HCT244 defekt. Nun dann muss ich einen neuen kaufen! Oder: Aber ich kann doch eigentlich einen Seriellen ISP Programmieradapter bauen. Hast du damit Erfahrungen unter WinXP geht dieser besser als der Parallele?? Ich habe diesen hier gefunden: http://s-huehn.de/elektronik/avr-prog/avr-prog.htm oder kannst du mir einen anderen empfehlen. Gruß Marcus
Hi, hatte nun ein Erfolgserlebnis, habe mir den SI-Porg von http://s-huehn.de/elektronik/avr-prog/avr-prog.htm gebaut. Mit meinem alten Atmel Atmega 8 konnte ich mit PonyProg auch nicht drauf zugreifen. Dann habe ich einen neuen ins Board gesteckt und auf "Read Device" geklickt und siehe da es hat funktioniert. Dann wollte ich die FuseBits setzen und habe dann auf Write geklickt, aber dann kam schon mein bekannter Fehler wieder. Was kann ich tun, ich werde hier noch verrückt. Bitte um Hilfe...
Seriell ist in der hinsicht besser weil die Spannungspegel größer sind und die Schnittstelle kurzschlußfest ist (bzw. laut der Norm sein soll). Auf jedenfall ist der Schutz hier größer weil mit einem Begrenzungswiderstand in jede Richtung und Z-Diode gearbeitet wird und ein extra Trnasistor hilft auch den Resetpin sicher runterzuziehen. Ich habe schon mit beiden Adaptern gearbeitet. Geht mehr schlecht als recht, nachdem es mir einige AVRs umgefused hat(liegt wohl an Ponyprog), habe ich mir den AVRISP (seriell) gekauft und hab seitdem keinerlei Probleme mehr das es aus unerklärlichen Gründen immer die Fuses zerschießt. Außerdem kann man damit direkt aus dem AVR-Studio raus arbeiten. Kannst ja auch mal das Programm Chipblaster AVR ausprobieren, hat mir besser gefallen als Ponyprog. AVRISP MKII ist inzwischen eine USB-Ausführung
Hängt aber davon ab, was genau Du mit den Fusebits gemacht hast. Soweit ich weiß kann ein STK500 parallele Programmierung. Das wäre vielleicht ein Versuch. Hast Du irgendwie den internen Takt abgeschaltet oder so? Dann hilft es vielleicht schon, von aussen einen Takt anzulegen. Viele Grüße Holger
Ich habe den AVR zuerst ausgelesen, mit Read Device: hat auch funktioniert, hatte lauter FF und danach ein Meldung Read OK. Dann habe ich folgende Fusebits gesetzt (also Häkchen hin gemacht): BODEN, BOOTSZ1, BOOTSZ0 und SPIEN(war ausgegraut, konnte ich nichts ändern) dann habe ich auf Write gedrückt und dann kam auch gleich der Fehler "...(-24)".
bevor man an den Fuses was rumstellt immer erst die Fuses auslesen, damit die alten Fuses auch übernommen werden Standartmässig ist z.b CKSEL=0001 und SUT=01 eingestellt also 1Mhz interner Takt mit 64mSek Pause bevor der AVRS losrennt. Nach deiner Aktion düfte das dann CKSEL=0000 und SUT=00 sein was externer Takt ohne Pause bedeudet. Bei Ponyprog muss man jedes Bit einzeln setzen im AVR Studio wählt man nur den gewünschten Modus aus, siehe Bild. Um das Teil jetzt zu retten musst du nen externen Takt zuführen, dazu musst du entweder nen Astabilen Multivibrator bauen oder nen anderen AVR so programmieren das er an einem Pin ständig toggelt und das dann auf den Takteingang des AVRs legen.
Ich habe mir zum "anschieben" einen Quarzoszillator auf eine Stück Leiterplatte gesetzt, eine alte Prüfspitze an den Oszill-Ausgang gehängt, 2 Strippen um das Ding mit Saft zu versorgen und "piekse" damit den xtal1 Pin an. Das war´s eigentlich schon. Ach so, die Frequenz ist wurscht, solange sie im AVR-Bereich liegt.
also damit ich das jetzt richtig verstanden habe, muss ich ein Oszillator anschließen und dann kann ich wieder auf den AVR zugreifen. OK, werde es dann mal versuchen. Nochmal was zu PonyProg, wenn ich auf ReadDevice klicke, dann ließt PonyProg doch alle Werte aus dem AVR, auch die Fusebits, oder?
Ja, haupsache irgendeinen Takt. Ohne geht nix. Check doch auch mal den thread von Thomas O. Ich arbeite nicht mit PonyProg, kann dir dabei also nicht helfen.
also ich habe jetzt mal einen quarzoszillator mit 4mhz angeschlossen, leider tut dieser danach immer noch nicht. Hab jetzt mal an MISO, MOSI und SCK eine LED angeschlossen. Wenn ich jetzt mit PonyProg auf ReadDevice drücke und danach auf Ignore und dann leuchten/bzw blinken nur MOSI und SCK, MISO bleibt dunkel. Hab die LED in bei MISO auch schon gedreht, aber hat nichts geholfen. Dasgleiche habe ich dann mit WriteDevice versucht, hat aber nichts geändert. Es leuchten immer nur MOSI und SCK. Ist das normal?
MOSI = Master Out Slave In D.h. auf der leitung kommen die daten vom master (PC) SCK ist das clock signal und sollte natürlich leuchten (bzw blinken ... siehste nur nich is zu schnell) MISO = Master In Slave Out Dort sollten daten vom controller kommen, tuen sie es nicht ist was faul (beim µC)
hmm dann funzt der uC nicht mehr richtig. Der Rettungsversuch hat auch nicht geklappt. Es sei den irgendjemand hat noch eine Idee? Wenn nicht, dann bleibt mir wohl nichts anderes übrig neue zu bestellen. Aber welche?? Auch wieder Atmega8 oder lieber andere?
Hab gehört, dass PonyProg ab und zu die fuses versaut. (Ich kenne das Programm nicht, soll deshalb keine Kritik sein) Möglicherweise ist der AVR also gelockt, dann kommt auch nichts mehr raus. Einzig wichtig ist dann µC zu löschen und eine Standartkonfiguration reinzuschreiben. Der (externe) Takt am µC muß dabei mindestens 4x höher sein als die Schreibgeschwindigkeit. Bestimmt kann dir hier im Forum jemand mit PonyProg die Grundeinstellungen für deinen AVR (welcher?) mailen. Mit denen versuchst du dann mit ext. Takt den AVR zu schreiben.Bei mir hat es schon ein paar mal geklappt, sonst hätte ich den Oszillator nicht gebraucht. ;-)
@ Marcus Mach hier im Forum doch mal einen neuen thread auf: "Brauche Hilfe bei Atmega8" oder so und beschreibe den Fehler. Im Moment läuft doch alles unter "Hilfe bei AVR-Tutorial".
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.