Hallo, µC-Board: ATiny2313 und einem 4053 zum exakten Umschalten zwischen ISP oder Port B. Ein 8MHz-Quarz ist angeschlossen, aber im Auslieferungszustand ist der interne Oszillator gesetzt. Abblock-Kondensatoren sind auch an allen ICs. (Schaltung >Anlage) Programmieradapter: Eigenbau-STK200 (Schaltung >Anlage) LPT-Kabel: 1,5m lang / ISP-Kabel 15cm lang Programmiersoftware: avrdude (V5) und Ponyprog 2000 (V2.04 und V2.05a) Betriebssystem: WIN2000 als Admin (sonst kann avrdude den givio-Treiber nicht laden) LPT: EPP Einstellung: avrdude: STK200 , LPT1 Ponyprog: Kalibriert nach dem Start, LPT1 , AVR-ISP I/O (Der Test ist hier auch ohne µC erfolgreich?!) Fehler: Ponyprog "Device not found (-24)" Gestartet mit avrdude-gui: avrdude "avrdude: device not responding "avrdude: initialization failed, rc=-1" Fehlersuche: Mit Drähten manuell angelegten Signalen am Programmer sind keine Fehler zu finden. Mit dem Oszi kann man wegen der kurzen Zeit keine Signale genau erkennen. Aber mit LEDs und Treibern zeigt \Reset = 0 , SCK und MISO blinken schnell. Ausweichversuch: Nach www.speedy-bl.com habe ich den "Pinwackler" Sercon aufgebaut (Sercon1.pdf). Es ist ein Pegelwandler. Mit der dazugehörigen Software at-prog.exe kann ich den µC brennen. Fazit: Das µC-Bord funktioniert! Ziel: Da ich mit WINAVR bzw. perspektivisch mit Eclipse arbeiten möchte, soll sich die erzeugt hex-Datei direkt zum µC übertragen lassen und nicht über den Umweg eines anderen Programms. Frage: Wo liegt der Fehler? Wie ist GND zu verbinden? Mein STK200 ist mit GND an die Stromversorgung angeschlossen, aber das ISP-Kabel verbindet GND nochmals. Also wo? Wie lang dürfen LPT-Kabel und ISP-Kabel sein? Den 4053 vom µC-Board wollte ich wenig belasten. Darum ist das ISP-Kabel kurz und das LPT-Kabel lang. Es ist ja zum Drucker auch 1,5m lang. Die Timing-Parameter lassen sich in avrdude.conf für jeden µC einstellen. Ist der kommerzielle Programmierdapter AVR-ISP mk2 (USB) gut? Viele Grüße Hans-Jürgen
Hallo, ich habe mir nicht alles angesehen, trotzdem etwas persöhnliche Meinung: ich benutze das STK200-Dongle am Parallelport unter Win2000 mit PonyProg v2.06f (ja, auch als Admin...). Meine Erfahrung: Kabel zwischen Parallelport und Programmer: nein! ISP-Kabel zwischen Programmer und Board: 1m Flachbandkabel (das ist die Original-Version von meinem STK200). Verlängern auf der Parallelportseite NUR mit Versuch und Irrtum. Will damit sagen: wenn der Programmer an einem Rechner absolut stabil geht, kann man ein Verlängerungskabel dazwischen stecken und schauen, ob noch irgendwas geht. Hängt sehr stark vom Kabeltyp und dem Mainboard ab. ISP-Kabel genauso, da setzen der AVR, der Boardaufbau und die Störungen in der Umgebung das Limit. An meinen Boards baue ich eigentlich nie was in die ISP-Leitungen, es hängt letztlich ja nur davon ab. was man sonst mit den Pins macht. Sind sie Ausgänge ist es die Frage, was die angeschlossenen Bauteile mit den Programmierimpulsen machen. Wenn die sowieso wegen CS = 1 nicht angesprochen werden (LCD-Display, MMC-Card, ???) ist es egal. Relais-Treiber lege ich nicht an diese Pins und Taster, die gegen GND mit internen PullUp schalten, stören auch nicht, wenn man nicht gerade beim Programmieren draufdrückt. Reset liegt bei mir (gewohnheitsmäßig) über 100n an GND und am ISP. Den 244 stört der 100n nicht, 3 Gatter parallel eines Bustreibers können das. Das STK-Dongle stört auch den Rest der Schaltung nicht, solange PonyProg aktiv ist und den Port initialisiert hat (ich schicke nach dem Start immer einen Reset mit PonyProg, dann ist steht der Port richtig. Der Adapter stört hier auch im Moment in keiner Weise, selbst ein ENC28J60 mit 3,3V am ISP mit 8MHz Takt wird durch den angeschlossenen Dongle nicht gestört. Ich finde, nur soviel Aufwand wie nötig und einfach überdenken, was mit der Peripherie passieren kann, wenn programmiert wird. Probleme gibt es nur, wenn Windows startet und am Port "rumspielt". Das gibt dann ein paar Resets auf dem AVR-Board. Gruß aus Berlin Michael
ich finde es gibt nichts besseres als den ATMEL AVRISP habe nur den seriellen aber damit gibt es keinerlei Probleme selbst mit nem längeren serielen Kabel nicht. Außerdem treten damit auch nicht so Sachen auf das man sich vom µC aussperrt was bei Ponyprog, Chipblaster AVR... gerne mal passiert ohne das man an den Fuses oder Lockbits was verstellt hat. Dein Schaltplan ist etwas unübersichtlich, hast du da nen Resetbeschaltung drin. Aber bitte nicht am Tutorial hier orientieren, da sind einige Fehler in den Werten statt pF soll es nF sein und statt 10k sollte man eher 4,7k nehmen. Auch braucht man keine Umschaltung für die Programmierung wird durch den Reset ja alles erledigt.
Hans-Jürgen, also erstmal braucht der Pin 13 von IC3B unbedingt noch einen Pullup. Ohne den wirst Du mit dem STK200-Adapter nicht glücklich, weil der im inaktiven Zustand seine Ausgänge hochohmig schaltet - kommt zumindest bei PonyProg auch während des Prog-Zyklus vor, avrdude kenne ich nicht näher - und der dann floatende HC-Eingang "krauses Zeug" an den AVR weitergibt oder wenigstens nicht akkurat dem externen Resetsignal folgt. Mit Sercon-Interface ist dieser Pullup zwar vorhanden (R1), aber nur solange es angesteckt ist. Im schlimmsten Fall kann ein floatender CMOS-Eingang übrigens seinen Chip killen... Und dann muss man für den STK200-Adapter unbedingt alle Masseadern des 10pol Kabels am Target anschließen, weil der 244 als Bustreiber sehr "knackige" Signale auf das Kabel gibt, die sonst übersprechen oder (mangels Wellenwiderstandsanpassung am Ende) heftig "klingeln" können. Das Problem tritt mit der "Sellerie" (seriellen Schnitte) normal nicht auf, weil dort die Signale sowieso immer Slew-Rate-begrenzt sind... Im übrigen verstehe ich zweierlei nicht: a) warum Du Dir mit dem 5er statt dem 6pol (Atmel) oder 10pol (Kanda) ISP-Anschluss am Target die Speisung des STK200-Adapters aus der Target-Versorgung grundsätzlich verbaut hast, und b) warum Du als Ausweichversuch noch eine dritte Lösung mit noch einer anderen Software zu Rate gezogen hast, statt das noch viel einfachere PonyProg-SI nachzubauen, das bei lancos.com frei "herumliegt". Zum Schluss noch eine Anmerkung aus der Praxis: Wenn schon ein externer Reset vorgesehen ist, sollte immer auch ein externer Pullup zumindest für SCK vorhanden sein, um den Controller unter allen Umständen daran zu hindern, während des Reset versehentlich auf Programmiermodus zu erkennen. Gruß Johannes
Hallo, @Johannes A.: du hast Dir seine Sachen merklich genauer angeschaut als ich... Probleme mit dem STK200-Dongle hatte in der von Dir beschriebenen Art allerdings noch nie (PullUp). Das Original hat keinen und meine 2 Nachbauten auch nicht. Was das Kabel angeht, kann ich Dir aber nur zustimmen. Ich nehme da sowieso schon aus Bequemlichkeit immer 10pol. Flachband und 2x Schneidklemm und beschalte auch die Stiftleisten voll. So ist mir das vermutlich einfach noch nie passiert. Zu externem Reset: ich baue nie sowas ran, habe ich bei AVR noch nie als nötig angesehen. Wenn er am ISP hängt, gibt es Reset aus dem Ponyprog-Menü, sonst Spannung kurz wegschalten. Das hat für mich auch den Vorteil, daß alles neu initialisiert wird. Ist mir mehr als einmal passiert, daß ich noch schnell was geändert habe, kurz Reset, alles ok. Am nächsten Tag alles wieder an zum weitermachen und... nichts geht mehr... Naja, ich hatte mit meiner Änderung die Display-Initialisierung versaut, das störte nicht weiter, solange es initialisiert war und ich nur den Atmel zurückgesetzt habe. Gruß aus Berlin Michael Gruß aus Berlin Michael
@Michael Zum 10pol Anschluss hast Du vollkommen Recht. Ob aus Bequemlichkeit oder sonst einem Grund - "nach Vorschrift" verdrahtet und mit 10k Pullups ist das Teil einfach gnadenlos zuverlässig. Sowohl mit dem STK200- als auch mit dem PonyProg-SI-Adapter. Ansonsten, was den externen Reset angeht, hast Du wohl nie das EEPROM eines AVR ohne Brown-Out-Reset benutzt :-) Gruß Johannes
10kOhm ist aber bezüglich von Störungen nicht das Gelbe vom Ei selbst Atmel schreibt in einigen AN's 4,7kOhm und 47nF und eine Diode gegen VCC als Resetbeschaltung(wenn keine High Voltage Programmierung zum Einsatz kommt). Im Tutorial wird hier allerdings von 10k und 47p geschrieben, dieser Filter hat aber eine sehr hohe Grenzfrequenz. 5 V / 4700 Ohm = 1mA und das sollte durch den Programmieradapter doch sauber runtergezogen werden können.
Hallo, die Geschichte mit der Diode ist eigentlich schon eine komplette PowerOn-Spar-Resetbeschaltung. Die Diode soll nur das C bei Spannungsausfall schnell entladen, damit es wieder einen sauberen Reset gibt. Allerdings waren da früher eher 1-4,7µ üblich als 47n. Die 47p im Tutorial sind ein Tippfehler, den niemand korrgiert. Oder ein Test, ob die Leute ins Datenblatt schauen. ;) Ich beschalte aktuelle AVR (also mit internem PowerOn-Reset) nur mit 100n gegen Masse und überlasse den Rest dem internen PullUp. In verseuchten Umgebungen sind sicher 4,7k ein guter Wert. Mit den 100n hatte ein STK200-Dongle auch noch nie Probleme, sind 3 Treibergatter parallel, die können das schon... Gruß aus Berlin Michael
Also ich habe nie irgendeinen C am Reset-Pin gehabt und bei inzwischen >5000 "verbratenen" AVRs nie irgendwelche Nachteile davon erfahren. Selbst mit dem "Ur-AVR" AT90S1200 nicht. Aber woher auch, wo die Reset-Schwelle bei den AVRs eh kein fester Wert ist wie bei etlichen Nicht-AVRs, sondern von jeher immer als Bruchteil der Vcc definiert ist. Ansonsten vertraue ich heute wo irgend möglich meine Anwendungen dem Brown-Out-Reset der moderneren AVRs an, mit der typischerweise empfohlenen minimalen Reset-Startup-Time, und gebe der Vcc einen größeren Elko, der reicht, um einen eventuell laufenden EEPROM- Schreibzugriff noch sicher abzuschließen, bevor die Spannung zu niedrig dafür wird. Ebenfalls ohne jede Panne bisher - selbst in den brutal "verstörten" Netzen von Straßenbahnen, für die ich allerdings ein sehr spezielles Eingangsfilter entwickelt habe. Alles zusammengenommen ist für mich die Frage, ob der Pullup am Reset nun besser 4k7 oder 10k beträgt, grundsätzlich falsch gestellt. Zumal 4k7 und 10k eh dieselbe Größenordnung sind, d.h. wenn es mit 4k7 klappt und mit 10k nicht, wird irgendein anderes Problem, typischerweise beim Layout, nur übertüncht, aber nicht gelöst. Und, dem Gesetz der Serie entsprechend, kommt es dann früher oder später doch wieder auf. Z.B. in der Form, dass in der x-ten Auflage plötzlich 20-30% der Fertigung nicht laufen, bis man dahinter kommt, dass es diesmal 2k2 sein müssen... Gruß Johannes
Hallo, Den Programmer im Anhang finde ich sehr korrekt, nicht so extrem geizig mit Teilen für ein paar Cent. Nur ein Wunder, daß ein Drucker am LPT funktioniert! Bei Reichelt gibt es jetzt wieder den AVR-ISP mk2 mit USB-Anschluß. Diesen werde ich bestellen. An IC3 / Pin 13 werde ich noch den von Johannes empfohlen Pullupwiderstand einfügen. Viele Grüße und Erfolg beim Bauen Allen hier im Thread danke ich für die Hilfe. Hans-Jürgen
Ja, das "betterSTK200" kommt dem, wie ein echter Drucker am Eingang beschaltet ist, schon erheblich näher. Fehlen nur noch die Pullups und Dämpfungs-Cs, die Klemm-Dioden gegen VCC und GND sowie die in den modernen Drucker-ASICs enthaltenen logischen "Schmutzfänger", derentwegen der LPT-Port heute nicht mehr wirklich schnell ist, aber dank des byteweisen Strobe/Acknowledge-Protokolls auch bei EPP/ECP immer noch soweit zuverlässige Übertragung erlaubt... Ein "Wunder" ist es also nicht ganz, dass Drucker am LPT immer noch funktionieren, nur ziemlich harte Arbeit für die Druckerhersteller :) Vielmehr ist es für mich ein Wunder, dass Kanda das STK200-Dongle offenbar immer noch unverändert verwendet. Heute raten sie nur absolut von jedem Stück Kabel zwischen LPT und Dongle ab - was die Benutzung am Desktop- bzw. "Under Desk"-Tower-PC nicht so ganz locker macht. Ich habe das Teil jüngst mit dem Stand-Alone "Hand Help Programmer" wieder in die Hand bekommen, und musste erst unter den Schreibtisch kriechen, um es anzustöpseln... Für das USB-Teil von Atmel dagegen konnte ich mich bisher nicht erwärmen. Es mag im Entwicklungsbetrieb zwar ok sein, aber als Production-Programmer, mit dem auch "Doofies" klarkommen sollen, ist die zugehörige Software (AVRstudio) doch reichlich kompliziert. Da ist PonyProg immer noch deutlich einfacher, weil mit dem Aufruf des e2p-Files sofort sämtliche Einstellungen inkl. Fuses stimmen. Und mit meinem minimierten SI-nach-STK200-Adapter (siehe Anhang), als feines kleines SubD9-Dongle aufgebaut, sind die Kabellängen völlig unkritisch - auf der RS232-Seite sind bis 5m erprobt, und als 10pol Flachband von 30cm bis zu Kandas originalen 1,5m. Ich hoffe, meine Plaudereien "aus dem Nähkästchen" mögen irgendwem noch nützen. Beste Grüße Johannes
Hallo Den von von Johannes vorgeschlagenen Pullup habe ich am externen Reseteingang des CPU-Boards noch eingefügt. Nun erhielt ich von www.reichelt.de den Programmer AVR ISP mk2. Damit funktionierte die Verbindung sofort. Viele Grüße HAns-Jürgen
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.