Hallo AVR Programmierer, unter http://www.mikrocontroller-projekte.de habe ich u.a. eine aktuelle Bauanleitung incl. Platinenlayout (3*5cm, Eagle)) für die Atmel Application Note 910 abgelegt. Eine aktualisierte Software (im AT90S2313) mit schnellerer Programmierung und Unterstützung für die neuen AVR Controller gibt es dort auch. Vielleicht eine Alternative für geplagte LPT-Port-Programmer-Anwender. Check it out... Ciao, Klaus
Hallo nochmal, ich hatte leider die 2313 Software mit falscher LED Belegung hochgeladen =8-o Jetzt stimmts aber. Alle die vor 09.11 20:30 die Software geladen haben, bitte noch mal. Sonst bleibt die LED dunkel. Sorry! Viel Spass beim nachbauen. Ciao, Klaus
Hallo Klaus, der Programmer funktioniert wirklich super. Ich hatte schon lange vor, den AVR910-Programmer zu bauen, da der ISP-Programmer aus dem Tutorial so seine Tücken hat (ich mußte 6 (!) 74HC244 ausprobieren, bis ich einen funktionierenden IC hatte). Bisher scheiterte der Bau daran, daß ich keinen auf die neuen Modelle upgedateten 910-Programmer gefunden hatte. Aus den Informationen auf AVRFreaks bin ich als mehr oder weniger Newbie auch nicht so ganz schlau geworden. Der Schalter zum Programmieren des Programmers selbst und die LEDs zur Zustandsanzeige sind gute Ergänzungen. Eine DUO-Led ist m.E. nicht notwendig, ich nehme zwei LEDs, die ich gegenpolig parallel zwischen Pin 12 und 15 lege. Je nach Polarität der beiden Ausgänge leuchtet eine LED, während die andere sperrt. Zum Programmieren der FUSE-Bits benötigt man aber weiterhin PonyProg? Oder habe ich dieses Feature übersehen? Also nochmal volles Lob, ich hoffe Updates auf neue Modelle (Tiny2313?) folgen. Carsten
Hallo Carsten, danke für die Bluimen ;-) Die Duo Led besteht ja genau aus den beiden gegeneinender geschalteten LED in rot und grün. Braucht halt weniger PLatz und ist besser als nur eine, die nur beim Programmieren leuchtet. Wenn Du beim AVR-Prog auf den Button "advanced" drückst, kommst Du in das Menü der FuseBit Programmierung. Je nach ausgewähltem Mikrontroller sind die Anzahl und Funktion entsprechend. Ciao, und viel Spass mit dem Programmer, Klaus
hmm.. also mit dem ATTiny11 funktionierts definitiv nicht. Dieser besitzt nämlich kein ISP, mit dem dieser Programmer arbeitet. und mein Brenner - naja, die schaltung hatt ich schonmal hier eingestellt und nachgefragt, aber irgendwie gabs nie na Antwort... :(
Hallo TecDroiD, guter Hinweis! Danke. Der TTiny11 hat nur einen High Voltage Serial Programming Modus. Der TTiny12 kann programmiert werden.Ich werde mal meine Liste der "supported Devices" anpassen. Für den TTiny 11 braucht man dann eine Zusatzschaltung die die 12V an Reset anlegt (Transistor). Ciao, Klaus
Hallo alle die die AN910 von meiner Seite nachgebaut haben: Leider war der Elko C100 falsch herum eingezeichnet, das habe ich am 25.11.2003 korrigiert! Bitte bei den aufgebauten Geräten unbedingt ändern. Entschuldigung für den Fehler! Und vielen Dank an Thomas L. der es bemerkt und mir geschrieben hat! Bei mir waren mehrere Programmer eine ganze Zeit in Betrieb ohne dass es zu aussetzern oder ausfällen kam. Gut dass der Elko so stabil war. Ciao, Klaus Leidinger http://www.mikrocontroller-projekte.de
Auch wenn sie äußerlich unversehrt scheinen, sollte man falsch gepolte Elkos lieber wegschmeißen, kosten ja nicht die Welt. Ich hatte kürzlich mal eine Platine mit einem Fremdlayout bestücken lassen und getestet. Ich war geschockt, als etwa die Hälfte aller Tantals explodierte und ein bestialischer Gestank sich breitmachte. Da hatte der Idiot doch tatsächlich alle Pin1-Markierungen rein zufällig gesetzt. Peter
Tantalkondensatoren tendieren scheinbar besonders gerne zum platzen. Hatte mal einen der richtig Feuer gefangen hat und ein hässliches Loch in die Platine gebrannt hat. War auch verpolt.
helo Klaus. Construi I (Programmierer avr-prog910) 2313_v32. Ich verwende (ide)studio_3. -progeto, ursprüngliches avrprog erkennt nicht die Platte (in suported 1.37). KI, zog ich (umwandelnd) für, Maximum rs232 um. ja! es erkannte! aber, von der Störung in der Stunde (uC programmieren) der PROGRAMMIERUNG FIEL aus. uC im programmig (er nicht Antwort). ja I versuchte zur Bewegung von port(com1/com2) nicht nicht. Fragen????: er würde studio3 sein. er würde rs232 sein. uC, beim Progamming hat zu habendes das (xtal). weil in der Vorlage (bc558 bc548)ele erkennt nicht avr910. 1 attiny12 das ja dieses (progammed), von dem für rogramalooutraves. Carlos: von Brasilien. linguagen:portugues Brasilien. conprimenta Klaus.
Ich habe nach wie vor mein STK500 auf dem Tisch, kann ich das dann weglegen? Ich verwende es eh' nur für die ISP-Programmierung. paar fragen ich: - ist der Porgrammer kompatibel zum STK500 Protokoll? sicher nicht... - Die RS232-Wandlung sieht mir ziemlich abenteuerlich aus, funktioniert das so? - Wie ich der Schaltung entnehme, wird der Programmer von der Zielschaltung mit Strom versorgt, richtig? Ich bau' das mal auf. Gruß Axel
Hallo Axel, das STK500 würde ich nicht ganz weglegen, eventuell benötigst Du mal die parallele oder serielle high Voltage Programmierung. - Der Programmer ist natürlich nicht kompatibel zum STK500 Protokoll - Die "abenteuerliche" RS232 Schaltung stammt von Atmel (Application Note 910) und funktioniert bei mir einwandfrei. Ich habe ein paar Rückmeldungen erhalten, die nicht auf die 115.200 Baud übertragungsrate kommen. Das scheint aber die Ausnahme zu sein. - Stromversorgung durch die Zielschaltung Viel Spass beim basteln, Klaus
Hi Carlos es gibt schon Studio 4.08 funktioniert auch mit der AV910. Schau mal hier http://www.mikrocontroller-projekte.de gibt es eine neue Software funktioniert aber nur mit dem AVR 2313.
Hi, wie ist das mit dem High Voltage Serial Programming Modus beim ATtiny15. Oben schreibst du, dass man da eine Zusatzschaltung braucht, um die 12V dranzuschalten. So wie ich das sehe, reicht das bein ATtiny15 nicht aus - Da gibts ja mindestens eine Programmierleitung mehr als beim ISP. Kann man das vielleicht irgend wie doch machen? Gibts dafür andere Hard- und Software ? Gruß Mike
Hallo Mike, die Beschaltung zum Programmieren des ATtiny15 steht ja im Datenblatt. Da die AN910 keine 12V bietet muss zumindest dafür eine Zusatzschaltung her. Ob das dann irgendwie funktioniert, weiss ich auch nicht, da ich es nicht probiert habe. Eventuell sind noch Softwareänderungen im 2313 erforderlich. Was sicher funktioniert ist das STK500, dort sind auch die High Voltage Modes mit drauf beschaltbar. Wenn jemand mit der ATtiny Programmierung schon Erfahrung gemacht hat, immer raus damit, vielleicht kann man die AN910 ja noch erweitern. my2cent, Klaus
Hallo, das High-Voltage Programmieren funktioniert mit dem Tiny15 und STK500 wunderbar;man muß die Leitungen für die serielle Programmierung nur richtig verlegen (siehe Bedienungsanleitung). Anfangs wirkte der Aufbau etwas verwirrend, doch man gewöhnt sich daran. mfg Roman
Hallo, danke zunächst für die antworten - Ich werde sehen, was ich nun mache. Da ich das Ganze nur hobbymäßig betreibe, überlege ich mir die Anschaffung eines STK500 natürlich noch wegen des Preises. Ich werde wohl vorerst mit dem "einfachen" Programmieradapter auskommen müssen :-) Gruß Mike
Hallo, @Klaus: Deine Internetseite zum Programmer ist echt klasse! Danke! Von deiner Beschreibung motiviert, hab ich mir einen zusammengebaut. Da ich nicht alle Teile hier hatte mit folgenden Änderungen: Jumper statt Taster, 2 Leds statt Duoled, 3,6864MHz-Quarz und einfache SUB9-Buchse. Bild im Anhang. Unter Windows arbeitete der Programmer mit AvrProg sofort problemlos und auch relativ zügig. Dann hatte ich unter Linux zuerst UISP und danach AVRDUDE getestet. AVRDUDE ging erst nach zwei kleinen Änderungen. Um eine 6380 Bytes große Datei in einen ATMega8 zu verbannen, brauchten beide aber halbe Ewigkeiten. Grund dafür ist wohl das Protokoll, welches ein ständiges "Umschalten" zwischen Senden und Empfangen erfordert. Mit einem "setserial /dev/ttyS1 low_latency" kann man zwar diese Zeiten schon um einen Großteil verkürzen, aber recht zufriedstellend ist das immer noch nicht. Deshalb hab ich mir die Firmware mal genauer angesehen und mir folgende zusätzlichen Befehle ausgedacht: 1. Aus Flash auslesen: Hier wird einfach nach dem Kommando die Anzahl der zu lesenden Words übergeben. Danach schickt der Programmer alle Bytes in einem Schwung zum PC, ohne etwa dazwischen eine Bestätigung vom PC zu erwarten. 2. Ins Flash schreiben: Der 2313 hat ja SRAM, der bisher noch ungenutz war. Man kann diesen also nutzen, um nicht nur byteweise die Daten vom PC zu übertragen, sondern gleich mehrere auf einmal. Diese werden vom Programmer im SRAM zwischengespeichert und erst danach einzeln ins Flash geschrieben. Wenn alle Bytes im Flash gelandet sind, wird eine Bestätigung zum PC geschickt. Diese zwei Befehle hab ich nun mal grob in die Firmware mit eingebaut und AVRDUDE entsprechend angepasst. Die Ergebnisse lassen sich sehen (für 6380 Bytes bei einer Baudrate von 115200baud, Schreiben/Lesen): Mit "setserial /dev/ttyS1 ^low_latency": Vor Modifikation: 66.79s / 31.91s Nach Modifikation: 5.99s / 1.78s Mit "setserial /dev/ttyS1 low_latency": Vor Modifikation: 6.00s / 31.90s Nach Modifikation: 2.87s / 1.78s Wenn Interesse besteht, könnten wir versuchen, dies ordentlich in die Firmware und z.B. AVRDUDE einzubauen... Thomas
Hallo AVR910 Nutzer ;-) wegen der häufigen Anfragen zu anderen Quarzen haben ich den Source um einige Zeilen erweitert, und die entsprechenden Defines für 4.0 und 8.0 Mhz Quarze noch eingebaut. Jeder kann sich jetzt die richtigen heraussuchen und auskommentieren (die anderen dann wieder kommentieren und den Code neu compilieren) und braucht nicht ins Datenblatt zu schauen. Hier die defines: ;*********************************************************************** **** ;**** Baudrates for 8.000 Mhz Chrystal ;.equ XTAL = 8000 ;XTAL frequency, Khz (8.0 Mhz) ;*********************************************************************** **** ;******** ;.equ BAUD = 38400 ;Data rate, bauds ;.equ N = 12 ;for 8.0 Mhz/38.400Baud ;******** ;.equ BAUD = 19200 ;Data rate, bauds ;.equ N = 25 ;for 8.0 Mhz/19.200Baud ;******** ;.equ BAUD = 9600 ;Data rate, bauds ;.equ N = 51 ;for 8.0 Mhz/9.600Baud ; ;*********************************************************************** **** ;**** Baudrates for 4.000 Mhz Chrystal ;.equ XTAL = 4000 ;XTAL frequency, Khz (4.0 Mhz) ;*********************************************************************** **** ;******** ;.equ BAUD = 19200 ;Data rate, bauds ;.equ N = 12 ;for 4.0 Mhz/19.200Baud ;******** ;.equ BAUD = 9600 ;Data rate, bauds ;.equ N = 25 ;for 4.0 Mhz/9.600Baud ;******** Mehr als 38400 Baud mit 8Mhz ist allerdings nicht "drin". Die Änderungen die Thomas im letzten Beitrag erwähnt, sind gerade von uns beiden in Arbeit. Leider können davon aber nur AVRDUDE Anwender profitieren. Wenn alles klappt, wird es in kürze eine eigene Sektion auf der AVR-Prog Seite dafür geben. Das, und noch viel mehr findet Ihr auf: http://www.mikrocontroller-projekte.de Viele Grüsse, und viel Spass, Klaus
Hi Klaus! Hab mir deinen ISP-Programmer als Print in meiner Schule anfertigen lassen und stand dann vor dem typischen "Henne-Ei"-Problem! Teil deines Programmers ist ja ein AT90S2313 mit 2kB Programmspeicher. Wie sollte ich das Programm für den Programmer in den 2313 bekommen, dachte ich mir - denn auch dazu braucht man einen Programmer! Also hab ich mir einen Billigst-Programmer via LPT1 aufgebaut (nur vier Bauteile inkl. 74HCT244) und ein Testprogramm zum auf einem Steckboard aufgebauten 2313 gesendet, was auch klaglos funktioniert hat. Dann habe ich versucht, deine HEX-Datei für deinen Programmer über meinen Mini-Programmer mit der ISP-Software 2.65 zum 2313 zu senden (die Kombination ISP-Software 2.65 und der Programmer am LPT funktionieren klaglos, wie mein vorhergegangener Test gezeigt hat). Jedoch hatte ich KEINE CHANCE, eine 3,76 kB große Datei in den 2 kB großen Programmspeicher des 2313 zu schreiben! Was habe ich falsch gemacht? P.S.: Ich habe erst heute dieses Forum entdeckt und verspreche mir dadurch eine große Hilfe. Will aber nicht nur Empfänger von Hilfe sein, sondern das von mir erworbene Wissen natürlich auch an alle anderen verteilen! Als zeichen dafür habe ich eine PDF-Datei mir einer von mir erstellte Lernhilfe zu meinem Beitrag dazugehängt, die ich mir vor kurzer Zeit als Einstieg selbst erarbeitet habe. Inhalt? Allgemeines zu µC, spezielleres am Beispiel des AT90S8515, Assembler-Programmierung-Einführung und ein Konvolut an von der englischsprachigen Originaldatei ins Deutsche übersetzte Assembler-Befehlen! Rückmeldungen zu dieser Datei (positive und negative Kritik einfach an meine Email schicken - auch Verbesserungsvorschläge) So Long - AVR-Users Danke im Voraus für deine Hilfe bezüglich des Programmierens des 2313 mit der HEX-Datei - im Voraus!
Hallo Hans, wichtig ist hier die richtige Einstellung auf das Fileformat. Eine HEX Datei ist (normalerweise) im Format "Intel Hex", also eine ASCII Datei mit Checksum usw. (suche mal in diesem Forum oder z.B. Google danach) Der Programmer muss auf auf dieses Dateiformat eingestellt werden (Normalerweise werden binär, Intel Hex, Motorola und ev. noch Atmel Object Dateien unterstützt). Der Programmer wandelt dann das ASCII Format in Binär um und das passt dann auch in den 2313 rein ;-) . Falls kein HEX vom Programmer unterstützt wird, musst Du den Sourcecode noch mal mit AVRStudio kompilieren und in den Optionen "Binärformat" angeben. Viel Erfolg mit dem Programmer, Klaus
Hi Klaus! Danke für Deine wirklich prompte Antwort - irgendwie ist es mir letzte Nacht vor dem Einschlafen (ca. 3 Uhr früh, weil ich gerade eine Diplomarbeit, die nix mit dem AVR zu tun hat, fertigstellen muss)geschossen, dass eine HEX-Stelle ja nur 4 Bit (für 0..9 und A..F) hat und nicht 8 Bit, jedoch ohne genaueren Gedanken, wie ich diese Idee nutzen könnte. Du hast mir mit Deiner Info sehr geholfen. Ich werde, sobald ich die Print fertig habe und einen Testlauf gemacht habe, darüber Bericht geben. Als nächstes Projekt dann will ich ein reines Programmierboard für alle ISP-tauglichen AVRs entwickeln, auf welchem ich eine einzige Nulldruckfassung für die AVRs verwenden will, wobei ich noch an der Lösung wegen den unterschiedlichen Pin-Belegungen tüftle (habe mir bereits eine Vergleichstabelle angefertigt) und wie ich dies schalten könnte. Allerdings habe ich dazu noch ein paar Brocken zu bewältigen: Kann ich die Leitungen vom Quarz zu den XTAL-Anschlüssen (nur für dieses Programmierboard) über einen 4016 bzw. 4066 (bilateraler Analog-Switch) schalten? Wie sieht dies mit den MISO-,MOSI-,SCK-,/RESET-,GND- und VCC-Leitungen vom Programmer zum AVR aus, kann ich diese (nur für dieses Programmierboard) über einen 4016 bzw. 4066 (bilateraler Analog-Switch) schalten? Danke nochmal wegen dem Programmer LG Hans
Hallo Hans, jetzt wird es langsam off Topic ;-) Schau Dir mal auf meiner Seite das 2313 Mikrocontrollerboard an, das hat die Umschaltung mit 4066. Bei den Quarzanschlüssen bin ich mir nicht so sicher, das das funktioniert, besser ist vermutlich einen Takt auf XTAL1 aufzuschalten. Ausprobieren hilft sicher... Viele Grüsse, Klaus http://www.mikrocontroller-projekte.de
Hallo, ich habe mir jetzt auch den Programmer nach der Appn. 910 gebaut,.. er funktioniert hervorragend. Aber, ich habe ein kleines Problem, ich habe bis jetzt immer Yaap benutzt, da war es möglich ein Flash file und eines für das Eprom zu definieren und das wurde dann alles mit einem mausklick geflasht. das scheint bei dem AVR Prog, das aus AVR Studio nicht mehr zu gehen. Gibt es vielleicht ein AVRProg das man per komandozeile steuern kann? oder gibt es vielleicht ein alternatives frontend für AVRProg wo man ein wenig mehr einstellen kann? Zum Beispiel das nach dem flashen des Flash+EE gleich die Lock bits gesetzt werden usw. . Ich würde mir ja auch selbst einem frontend schreiben, aber ich habe da irgendwie keinen ansatz. MfG Sebastian
Hallo Sebastian, wie weiter oben in diesem Thread beschrieben geht auch z.B. AVRDUDE. Das ist ein command Line tool und es gibt es im Source und für Linux und Win (WinAVR, also die GCC Umgebung). Das dürfte als Ansatz schon eine ganze Menge sein... Ein Link dazu ist auch auf meiner AVR-Prog Projektseite. Bitte halte uns über das Ergebnis auf dem laufenden. Ciao, Klaus
das werde ich mir mal anschauen,.. wenn ich ein brauchbares frontend gemacht habe werde ich das auf jeden fall als source und mit den compilierten daten zur verfügung stellen. Der Programmer arbeitet bei mit jedenfalls schon mal bestends und auch mit einem USB->Seriell konverter fürs Notebook. Die SW sollte relative schnell gemacht sein wenns schon ein fertiges command line tool gibt. Sebastian
Danke Klaus - werde das mit dem Switchen der XTAL-Anschlüsse ausprobieren und vom Ergebnis dann hier posten bzw. mitteilen. Hans
Hallo, ich habe heute mal den AvrDude Programmer ausprobieren wollen (erst mal nur in der Komandozeile), dabei hat dann die Software gesagt sie findet den Programmer nicht. Mit dem Prog. vom AVR Studio geht es aber. Kann es vielleicht sein das es mit den verschiedenen Baudraten Problem gibt? Ich benutze den 8 Mhz Quarz mit 38.4KBaud. Hat jemand mal beide varianten auprobiert? Sebastian
Hi Klaus! Natürlich - so wie Du sagtest - ich hab anscheinend eine winzige Kleinigkeit falsch gemacht - heute hat das Beschicken des 2313 mit deiner HEX-Datei über meinen MINI-ISP und die ISP-Software funktioniert! Werde nächste Woche (muss jetzt die Diplomarbeit fertig machen) dann deinen AVR-Programmer löten, den 2313 einsetzen - und bin natürlich zuversichtlich, dass es auf Anhieb im AVR-Studio funktionieren wird. Danke nochmals Hansi P.S: Ich werde zu meine Lernunterlage einen eigenen Thread aufmachen, da anscheinen Bedarf ist.
@Sebastian, AVRDude erwartet den standart AVR910 mit 9600 Baud, Du kannst Die Baudrate im configfile oder dem Source anpassen. Unbedingt die neuesete AVRDude Version nehmen! Welches Betriebssystem benutzt Du? unter Win (Cygwin) musst Du den com1 Port mit /dev/com1 auswählen, sonst funktioniert es nicht. Ansonsten probier mal den AVRDude Mailalias, die Jungs sind recht schnell. @Hans, freut mich das es jetzt auch mit dem brennen klappt ;-) Wenn Du einen Oszillator als Takt benutzt, hast Du ja ein TTL Signal, das kann z.B. mit Gattern umgeschaltet werden und braucht keine Analogschalter. Ciao, Klaus http://www.mikrocontroller-projekte.de
Ich habe die Version 4.30 http://savannah.nongnu.org/download/avrdude/ da runtergelade, http://savannah.nongnu.org/projects/avrdude/. Ich benutze windows XP und die WIN32 distribution des Programmers. Wenn ich wieder die 9,6KBaud nehme mache ich mir ja wieder alle vorteile des Programmers zunichte. an wen kann ich mich wenden? ich habe da keine support oder kontaktadresse gefunden. Sebastian
gibts nun eigentlich irgendwo nen simplen high-voltage-programmer für den tiny11? bräuchte da dringend einen..
Hallo, ich habe jetzt auch mal den AN910-Programmer aufgebaut und benutze ihn mit AVR-Prog. Er funktioniert wunderbar bei Betrieb an einer normlen seriellen Schnittstelle. Probehalber hab ich ihn auch mal an einen USB-Seriell-Converter (FT232, TxD und RxD des FT232 direkt an den AT90S2313 da kein MAX232) angeschlossen, auch hier funktioniert er doch leider extreeeeem langsam (etwa Faktor 10!!!). Hat einer eine Idee, wie man dieses Problem lösen könnte ? Ich vermute mal, daß ist wieder irgendein Problem mit den VCP-Treibern. Ich habe mal die Latency verändert, doch das hatte keinerlei Wirkung, auch neuere bzw. ältere Treiber brachten nichts. Gruß Thorsten
hat der FT232 RTS/DTR und sowas? vielleicht mit beschalten. nur so ne Idee... Axel
Ich hab RTS-CTS und DTR-CTR gebrückt, der AN910-Programmer unterstützt ja kein Hardware-Handshaking. Thorsten
Hi Klaus! So, Diplomarbeit fertig - und ran an den Programmer. Also, Dein AVR-Programmer mit dem 2313 funktioniert prächtig im AVRStudio! Danke nochmals So long Hans
Hallo, hat schon mal jemand den AN910-Programmer unter folgenden Bedingungen zum laufen gebraucht: WinXP Avrdude 4.3.0 8MHz Resonator 8MHz mit Skop nachgemessen avrdude.conf auf 38400 Baud eingestellt Aufruf mit: avrdude -v -p AT90S2313 -P com1 -c avr910 -U flash:w:lwa_mq.hex bei mir läuft es nur teilweise. Es wird mit folgender Meldung abgebrochen: Version usw... Version 3.0 und auch die neue 3.2. Jeweils mit Anpassung der Taktfrequnz. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x01911e avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "lwa_mq.hex" avrdude: input file lwa_mq.hex auto detected as Intel Hex avrdude: writing flash (1832 bytes): Writing | | 0% 0.00savrdude: error: programmer did not respond to command: clear LED Meine Signale auf der seriellen Schnittstelle sehen gut aus. Mit dem AVR-Studio funktioniert das programieren auch. Als Pegelwandler verwende ich einen MAX232. MfG Oryx
Hallo Oryx, probier mal im 2313 Source den Befehl rcall getc beim Kommand "x" und "y" herauszunehmen. Wenn ich mich richtig erinnere, ist das zwar in der Kommandbeschreibung so verlangt, aber es gibt unterschiedliche Implementierungen. Siehe hierzu auch den tread: http://mail.gnu.org/archive/html/avrdude-dev/2004-03/msg00016.html Man kann auch im avrdude Source was ändern, aber das ist wohl etwas aufwändiger. Schreib bitte mal, ob es geklappt hat. Ciao, Klaus ;====== 'x' - Set LED w6: cpi u_data,'x' ; 'x' Set LED (LED off or green) brne w61 ;--> rcall getc ; get parameter ;@@KL set_LED rjmp put_ret ;====== 'y' - Clear LED w61: cpi u_data,'y' ; 'y' Clear LED (LED on or red) brne w7 ;--> rcall getc ; get parameter ;@@KL clr_LED rjmp put_ret ;======================================================================= ===
Ich hatte das gleiche Problem mit AVRDUDE und habe die oben genannten Aenderungen gemacht. Der Fehler mit dem LED-Kommando ist verschwunden. Jetzt meldet AVRDUDE error: programmer did not respond to command: flush pages Michael
Hallo, neben dem LED-Kommando gibt's noch ein Problem mit AVRDUDE. Und zwar stimmt die Reihenfolge der Schreibkommandos mit z.b. AVRProg nicht überein. Und wenn ich mich recht erinnere, war das genau diese Fehlermeldung. Ich hab bei mir eine Zeile eingefügt, um dieses Problem zu beheben. Siehe hierzu: http://mail.gnu.org/archive/html/avrdude-dev/2004-03/msg00012.html Thomas
Hallo, danke für die schnellen Antworten. Ist das nun ein generelles Problem zwischen Avrdude und der Software im 2313 oder ist es nur ein Problem mit den 8Mhz und den 38400 Baud? Mir scheint es eher ein generelles Problem zu sein. Mit UISP habe ich auch nichts zum laufen bekommen. Gibt es für den 2313 auch einen C Quellcode? MfG Oryx
Hallo, @Oryx: Die Geschwindigkeit spielt hier keine Rolle, wichtig ist nur, dass avrdude und der 2313 die gleiche haben. Einen C Code für diese 2313 Firmware gibt es nicht. Das Problem der unterschiedlichen Implementierungen kommt vermutlich daher, dass die Entwickler eine andere Basis des 2313 Programmes benutzt haben als die auf meiner Seite. Im Forum von http://www.avrfreaks.net wurde auch schon mal eine andere Version der Firmware hochgeladen, die ebenfalls block write mode unterstützt. Man kann also davon ausgehen, das es mehrere "Codebasen" für die 2313 Firmware gibt. Die sind zwar alle mit der "Ursprungssoftware" von Atmel Kommandokompatibel, aber anscheinend nicht "Antwortidentisch". Ausserdem kommt es darauf an, was Die avrdude Entwickler als basis hatten. ...und: keine Software ist fehlerfrei. Zumindest ist bei avrdude der Algorhytmus anders als bei AVRprog, was Thomas ja auch schon zu spüren bekommen hat ;-) . Ich habe übrigens gerade mal zum Test die avrdude 4.3.0 für Linux geladen und frisch compiliert. Das LED Problem tritt bei mir nicht auf, wohl aber das Problem beim schreiben des Flash. In der Original Source von Atmel (die Version mit AT90S1200, Version 2.2) wird übrigens trotz anderer Dokumentation beim LED Kommando (x,y) kein zusätzliches Datenbyte abgefragt. Hier könnte man mal testen, was AVRprog beim umstellen des Kommandos macht. Bleibt die Frage: wer hat eine mit avrdude funktionierende AVR910 Firmware, und welche ist das? Soweit für heute, ich bleibe an dem Thema mal dran. @Thomas, wie siehts bei Dir zeitlich aus? Ich bräuchte Unterstützung beim C Code von avrdude ;-) Ciao, Klaus
Hallo, der link wurde bereits im forum gepostet, mit der SW geht AVRDude, der CodeVision Programmer und AVRProg. http://www.icplan.de/seite20.htm aud der seite sind die sources und die hex dateit als zip zum runterladen, aber nur mit 9,6KBaud. Sebastian
Hallo Klaus, ich habe deine Änderungen ebenfalls ausprobiert. Jetzt laufen bei mir Avrdude und Uisp mit 8MHz und 38400 Baud. Danke. Leider habe ich der Meldung von Michael getraut und den Code von Sebastian getestet. Daher hat es etwas länger gedauert. Kann es sein, das im avrdude-code ein Problem vorhanden ist, das dann durch den LED-Befehl kaschiert wird. Datei avr910.c ab Zeile 358 /* * For some reason, if we don't do this when writing to flash, the first byte * of flash is not programmed. I susect that the board got out of sync after * the erase and sending another command gets us back in sync. -TRoth */ static void avr910_write_setup(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m) { if (strcmp(m->desc, "flash") == 0) { avr910_send(pgm, "y", 1); avr910_vfy_cmd_sent(pgm, "clear LED"); } } Ich werde den Programmer morgen mal richtig testen. Ansonsten bin ich schon mal sehr zufrieden. Die Zielhardware läuft ohne irgendwelche Störungen vom PC. Soll ich meinen Code irgendwo hinsenden? Nochmals Danke Oryx
Hallo, @Oryx: freut mich, das es jetzt soweit schon mal funktioniert. Ich habe mich noch nicht ausgiebiger mit avrdude auseinandergesetzt, meinen funktionierenden acrdude-Code habe ich von Thomas Fischl. Er hat schon mehr Erfahrung damit. Ich bin aber gerade dabei meine AVR Programmierumgebung auf Linux zumzustellen. Ich werde auf jeden Fall meine Erfahrungen posten. Was ich aber schon gemerkt habe ist, dass avrdude auch so seine Macken hat ;-) insbesondere die Programmiergeschwindigkeit ist (noch) nicht so toll. @Sebastian: Soweit ich das sehe, ist der Code in Deinem Link bis auf die geringere Baudrate der Code von meiner Seite. Hast Du noch andere Änderungen gefunden? Ciao, Klaus
Hallo, @Klaus: Im CVS von avrdude liegt eine Firmware. Auf die wurde, denk ich, avrdude zugeschnitten: http://savannah.nongnu.org/cgi-bin/viewcvs/avrdude/avr910/ @Oryx: Genau, das ist die Stelle im avrdude-Code, die Probleme macht. In der aktuellen CVS-Version wurde dies aber bereits behoben. Dann bleibt für "unsere" Programmer nur noch das Problem mit der Reihenfolge der Schreibkommandos. Evtl. sollten wir mal den Firmware-Code vom Link oben genauer ansehen, ob die beim Flashen was anderes ganz machen?! Thomas
Hallo, ich habe gerade festgestellt, daß der Programmer den AT90S1200-4SI nicht programmieren kann, wenn der interne RC-Oszillator (1MHz) aktiviert ist. Kann das zufällig jmd. bestätigen ? Thorsten
Hallo *, ich hab gestern mal mit Portmon die LED sequenz von AVRProg und meinem Programmer mitgeloggt, und dann die weiter oben beschriebene Änderung in der 2313 Firmware beim LED Kommando eingebaut und wieder geschaut. Das Ergebnis: AVRProg (Atmel Software unter Windows) sendet nach dem LED Kommando noch ein Zählbyte, der Code auf meiner Seite passt daher. avrdude basiert auf einer alten Firmware, bei der von Atmel das LED Kommando noch nicht wirklich implementiert war und sendet KEIN 2. Byte. Deshalb die Probleme mit meiner Firmware und avrdude. Wenn man die Firmware jetzt "avrdude gerecht" ändert, also das "rcall getc" Kommando in der Firmware auskommentiert klappt avrdude. AVRprog kommt damit auch zurecht, da das "unerwartete verhalten" des Programmers abgefangen wird und der RS232 Puffer gelöscht wird. (AVRprog sendet das LED Kommando mehrmals, und erkennt an den zurückgegebenen Codes das Verhalten) Danach gehts normal weiter, und die LED funktioniert auch so wie es sein soll. Fazit: man kann die Modifikation (weglassen des 2. getc) für avrdude schon machen, unter Win funktioniert es trotzdem. Alle Win only nutzer, lassen es besser so wie es ist. Bis bald, Klaus Wen es genauer interessiert, der schaut in den Dateianhang.
Ich habe gerade mit dem Gerät einen ATmega128 programmiert. Der Programmer funktioniert super. Vielen Dank dafür! Ich verwende allerdings einen MAX232 Baustein. MfG formtapez
@ Klaus: In welcher Zeile soll man denn das "rcall getc" auskommentieren damit avrdude funktioniert ? Kannst Du vielleicht ein alternatives Hex-File zum Download anbieten ? MfG formtapez
Ach ich war anscheinend blind ;-) Jetzt funktioniert es mit AVRProg und AVRDude problemlos mit 115200 Baud. MfG formtapez
Komischerweise funktioniert es plötzlich nicht mehr mit AVRDude. Fehlermeldung: --------------------<schnipp>------------------------- AVRDUDE: writing flash (388 bytes): Writing | ################################################## | 100% 0.43s AVRDUDE: error: programmer did not respond to command: flush final page --------------------<schnapp>------------------------- MfG formtapez
Im Anhang sind zwei Hex-Files für den Mega128. Bei dem File geht_nicht.hex kommt der o.g. Fehler. Bei geht.hex habe ich im Programm nur die RS232-kommunikation deaktiviert und es lässt sich mit AVRdude programmieren. Vielleicht reagiert der Prommer falsch auf irgend ein Zeichen. MfG formtapez
Hallo formtapez, ich habe deine beiden Dateien mal auf einem Mega8 getestet. Ging beides nicht. Die gleiche Fehlermeldung wie bei dir. Einen MAX232 verwende ich auch. MfG Oryx
Hallo ! Ich habe jetzt den unteren Teil (nicht den Teil mit dem ESC-Zeichen) des Patches von http://mail.gnu.org/archive/html/avrdude-dev/2004-03/msg00012.html auf die avr910.c angewandt. Mit der angepassten 2313er Firmware (ohne die beiden "rcall getc" wie oben beschrieben) kann ich jetzt problemlos Programmieren. Ich habe für die Windows-User eine entsprechend kompilierte Version im Anhang hochgeladen. Enthalten ist auch die geänderte Firmware des 2313ers. Viel Spass beim Programmieren :-) MfG formtapez
Hallo, gerät jetzt zwar etwas offtopic, aber : Es gibt die Application Note 309 von Atmel, da wird ein 2313 bzw. Mega8 dazu verwendet die USB-Kommunikation zu machen. Nun wäre es ja schön, wenn man diese beiden kombinieren würde. Raus käme im Groben eine Schaltung mit zweimal 2313 und direktem programmieren per USB. Was hält die Gemeinde davon, könnte man doch auch in einen AVR quetschen, order ? Gruß Dominic
Hallo formtapez, ich habe deine avrdude Version getestet. Scheint mit 38400 Baud (conf-Datei geändert) auf einem Mega8 und einem 2313 zu laufen. Super!! MfG Oryx
Hi, ich kenne diese ARt von USB-Interface. Das ist im Grunde eine ganz tolle Sache, sie hat aber einen Haken: Die USB-Implementierung benuzt langsame control-transfers, und schaft gerade mal ca 120 Uebertragungen pro sekunde mit maximal 4 Byte Nutzlast. Die Geschwindigkeitsangabe von 100Byte/s auf der Page scheint mir daher realistisch. Das macht fuer 8KB ca 80s und ist daher unertraeglich langsam. Neu ist mir, dass es auch linux treiber gibt Gruß Tobias
Wie schon bei meinem Bootloader beschrieben, nehme ich ein USB-UART-Kabel (29,99). Damit hat man dann keinerlei Probleme mehr, ein LINUX-Treiber ist auch mit dabei. Ich komme dann über USB auf 17s für meinen Mega162 und das ist voll o.k. Den Mega128 wüßte ich eh nicht, wie ich den vollkriegen soll. Peter
Hallo Peter, hast Du das USB-UART Kabel mit dem AVR910 getestet, oder ausschliesslich mit Deinem Bootloader? Das AVR910 Protokoll ist leider etwas "geschwätzig", besonders bei den alten AVRs, die noch keinen page Mode beim Programmieren unterstützen. Latenzen kommen also dort besonders schmerzlich zum tragen. Wenn der USB Umsetzter mit AVRprog und am besten noch mit avrdude in ordentlicher Geschwindigkeit funktionieren würde, wäre das toll, die Anfrage hatte ich nämlich schon öfter ;-) Woher hast Du denn Deinen USB-UART adapter? Viele Grüsse, Klaus
<schnipp> Hey Dominic, schau dir mal das hier an: http://unpy.net/avr/usb/ <schnapp> Hoppla, da war einer schon schnellr mti meiner Idee. Aber 100Baud ist wirklich nicht die Welt..... Habe hier übrigens einen USB2Seriell wo der AVR-ISP angeschlossen ist, das geht wirklich super schnell, kann man nix sagen... Danke Dominic
@Klaus, ich habs nur mit meinem Bootloader getestet und der sendet bis 512 Bytes am Stück und wartet dann auf die Fertigmeldung. Peter
Hallo Klaus. Ein dickes Lob an dich wegen der guten Anleitung auf deiner HP zum Bau des Programmers. Hat alles auf Anhieb funktioniert. Nun bin ich endlich meinen Parallel-Port-Prommer los :) Grüße, Alex
Hallo Klaus, habe den Programmer auch nachgebaut, leider läuft er nicht, die bekannte Meldung "No supported board found" kommt. Die Firmware ist drin, auch ein 2313 ist mit 115200er FW bestückt, auch das mit dem Terminal mit x und y läuft nicht. Habe jetzt statt bc547 --> bc548 genommen, evtl. liegt es daran, ich prüfe nochmal die Schaltung genau. Die Schnittstelle habe ich auch auf 115200 eingestellt. AVR Prog sucht wohl auch nach COM-Ports, denn mein Modem klickte leicht und dann kam der Fehler. Gruss A. Arndt
Hallo Alexander, die Transistoren funktionieren schon so, wie in meinem Schaltplan. Der wurde bisher schon so oft nachbebaut. Hier die häufigsten Fehler: Falsche Sub-D Buchse. Es muss eine Buchse sein! Falsches serielle Kabel: es muss ein 1:1 Kabel sein, eine Seite Stecker, eine Seite Buchse, jedenfalls dann wenn es ein 9pol/9pol. Kabel ist. Der AVRProg muss an 5V angeschlossen sein, er bekommt keinen Strom über den com Port Seltener klappt der PC Port nicht mit 115200 Baud, dann die Firmware auf 57600 umstellen und neu brennen. Hast Du meinen Layoutplan verwendet? Wenn nicht prüfen ob die Brücken an der Sub-D Buchse gemacht sind (und natürlich ob sonst alles stimmt) Wechselt die LED beim Einschalten die Farbe? Wenn ja, stimmt schon mal die Firmware und Du kannst Dich auf den seriellen Teil konzentrieren. Die Tests hierzu stehen auf meiner Seite. HTH, Klaus
Hallo Klaus, jetzt läuft es auch bei mir, habe leider die SUB-D-Buchse falsch angeschlossen, das ist auch immer sehr verwirrend, aber nun klappt es. Wie kann man nochmal die Auswahl beschränken auf wenige Modelle die man braucht bei AVR-Prog vom Studio ? Gruss Alexander
Hallo Alexander, am Ende des Sourcecodes befindet sich die sektion mit den "bekannten" Controllern. Einfach alles auskommentieren, was Du nicht haben willst. Dann neu compilieren, brennen, fertig. Ciao, Klaus P.S. und immer die Beschreibung lesen...
Hallo AVR910 Nutzer, ich habe meine AVR910 Seite etwas überarbeitet (detailliertere Beschreibung der Steuerprogramme, mehr Tipps zur Fehlersuche usw.) und zusammen mit Thomas Fischl habe ich die weiter oben angesprochene Beschleunigung für avrdude eingebaut. Für alle, die diesen Programmer zusammen mit avrdude benutzen, gibt es einen neuen Beitrag in diesem Forum: http://www.mikrocontroller.net/forum/read-4-95689.html Dort bitte Eure Erfahrungen, Bugs usw. zur Beschleunigten avrdude Version eintragen. Für allgemeine Fragen, Kommentare usw. bitte weiter diesen Beitrag benutzen. Alle die avrdude nicht benutzen, können eventuell trotzdem etwas von der überarbeiteten polling Routine profitieren. (und mal die selfprogramming Funktion testen ;-) ) Ciao, Klaus Hier noch mal der Link zur AVR910 Programmer Seite: http://www.mikrocontroller-projekte.de (AVR910-Prog)
Ich hab jetzt auch mal den Prommer gebaut. Habe ihn allerdings noch etwas miniaturisiert. Bringt zwar nix, fand ich aber mal ne Herausforderung. Das Ding passt jetzt in einen RS232-Stecker... wenn auch nur knapp... Die herausragenden Pins muss man zum Updaten der Firmware kurzschliessen, für einen Taster war kein Platz. Allerdings finde ich den Prommer nicht sonderlich schnell. Um ca. 16 KB zu schreiben braucht er ungefähr 10 Sekunden. Eingestellt ist er auf 115200baud und ich habe es mit avrdude unter Windows gemacht. Habe den Patch von der Seite eingespielt und in der Config und Firmware lediglich dem ATmega162 einen device code verpasst, sonst nichts geändert. Habe ich etwas übersehen, oder wird das nicht schneller? Mit Ponyprog und Parallel-Prommer dauert es nämlich genauso lang.
Hallo Christof, schöner Aufbau im SUB-D Gehäuse. Kompliment. Gut gelöst. Gibts auch ein Bild mit offenem Gehäuse? >Allerdings finde ich den Prommer nicht sonderlich schnell. Um ca. 16 >KB zu schreiben braucht er ungefähr 10 Sekunden. >... >Habe ich etwas übersehen, oder wird das nicht schneller? >Mit Ponyprog und Parallel-Prommer dauert es nämlich genauso lang. Zum Vergleich solltest Du mal die Original Firmware ausprobieren ;-) Wenn er genau so schnell wird wie der Programmer am Parallelport ist das eigentlich mehr als ich erwartet habe... Voraussichtlich nächste Woche stelle ich die neue Version mit Beschleunigung auch für AVRProg online. Läuft bei mir schon. Bringt dort ungefähr die gleiche Zeit wie jetzt mit dem avrdude Patch. Ev. geht dann noch was mit avrdude, da ich die block Schreib Routine etwas geändert habe. (1,6K in 0,76s bei Mega8) Bis dann, Klaus
AVRProg kann ich vergessen, der unterstützt den 162er nicht. Daher bin ich grad mit AVRdude am werkeln. Beim Herstellen der Prommers habe ich die Platine leider etwas überbelichtet, so dass die Oberfläche leicht porös geworden ist. Hatte den Nachteil, dass ich sehr schlechte Lötstellen hatte. Nach x-maligem Nachbessern will ich das Gehäuse jetzt lieber nicht mehr öffnen. Ausserdem wäre das jetzt mit den vielen Nachbesserungen auch nicht mehr hübsch g Der Aufbau ist "vertikal". Es sind eigentlich zwei dünne 0.8mm Platinen, ein SMD 90S2313 und paar SMD-Widerstände und Kondensatoren. Transistoren und Elko sind "normal", da ich keine SMD bauteile passend da hatte. Als Quarz habe ich einen 11,... MHz genommen. Damit ist der AVR zwar etwas übertaktet, das stört ihn aber nicht. Versuche jetzt mal den mit AVRdude und 230400baud laufen zu lassen.
Bah, das Ding fällt mir wieder auseinander. So schick klein das auch sein mag, es hatte paar Macken und die Lötstellen hielten der mechanischen Belastung nicht stand. Wenn ich mal Zeit habe, baue ich die Schaltung noch mal richtig in Makro- und nicht Nanobausweise ;)
Hallo, die neue Firmware (Version 3.6) für den AVR910 Programmer ist jetzt fertig. Es ist jetzt die Protokollerweiterung nach der Atmel Application Note 109 implementiert, die u.a. von AVRProg und avrdude unterstützt werden. Durch die Beschleunigung des Protokolles (Blockmode) gibt sich eine deutliche Geschwindigkeitsverbesserung für den Einsatz von serial<-> USB Wandlern. Alles weitere auf meiner Homepage: http://www.mikrocontroller-projekte.de (AVR910 Prog) Viel Spass, Klaus
Hallo Klaus, ich habe ein kleines Problem mit Deinem AVR910-Programmer. Ich habe damit bisher problemlos die Klassik-AVRs und Mega8 programmiert. Mittlerweile bevorzuge ich den Mega8535 (mehr Pins). Leider ist dieser MC in der Auswahlliste des AVRProg des AVRStudios (Version 4.09 Build 338) nicht zu finen, obwohl der Mega8535 in derFirmware vom Oct 03 2003 als auch Sep 30 2004 unter "dw 0x6A ;m8535" aufgeführt ist, d.h dieses Problem tritt in beiden Versionen bei mir auf. Bin ich einfach nur zu blind oder mache ich einen anderen Fehler? Carsten
Hallo Carsten, der Fehler liegt bei mir ;-) Der m8535 wird nicht erkannt, ich werde mal probieren, ob er in einer alten AVR-Prog Version drin war (kann ich mir aber nicht vorstellen), oder ob mir der m8535 einfach "reingerutscht" ist. Da meines Wissens nur Speichergrössen und Programmiermodus (block mode) abgefragt wird, kannst Du z.B. den m8515 einstellen, falls keine anderen Fuses eingestellt werden (hab jetzt nicht geprüft, ob andere Fuses vorhanden sind). Danke für den Hinweis, ich werde dem nachgehen. Ciao, Klaus
Hi, ich haette da auch eine kurze Frage zu deinem Programmer. Du arbeitest mit Transistoren zum Levelshiften (12V->5V). Ich hatte ueberlegt die ganze Transistorenbeschaltung gegen ein MAX202 auszutauschen oder gibt es einen speziellen Grund das du mit Transistoren arbeitest? (ausser Preis). Mfg Dirk
man kann auch einen max dafür verwenden. läuft bei mir einwandfrei. aber der max202 schafft laut datenblatt nur 64kbaud. das ist ein bisschen wenig
Hi, ich benutze den MAX202 mit 115kbaud und hatte bis jetzt noch keine Probleme. Vielen Dank fuer Information. Mfg Dirk
Hi, @Tobi hier mal eine Korrektur "Data Rate (kbps) max 120 ". Mfg Dirk
hmm... ich bin von der tabelle im anhang ausgegangen. ist aus nem maxim datenblatt vielleicht ja mittlerweile überholt...
Hi, so ist es (ist ueberholt) und so teuer ist der MAX202 auch nicht mehr im Gegensatz zu dem MAX232. Ich verwende ihn am liebsten wegen den kleinen 100nF Pillen :) Mfg Dirk
Hallo Dirk, der 2. Grund ausser dem Preis ist der geringere Platzbedarf, oder besser gesagt die bessere Platzausnutzung in den Ecken des Gehäuses wenn man "nicht SMD" Bauteile verwendet. Ciao, Klaus
Hallo avr910 Nutzer ;-) ich habe eine neue Version der avr910 Firmware auf meiner Seite zum download. Diese Version (V 3.7) fixt einige Probleme beim brennen von ATTiny 15 und 26, sowie einiger AT90S Chips. Ausserdem habe ich Support für den ATTiny2313 eingebaut. Brennen kann man diesen aber leider nur mit avrdude, die Anpassungen dafür im avrdude.conf file habe ich auf meiner Seite beschrieben. Fehlerberichte und Kommentare bitte in diesem Thread. Die Firmware funzt auf praktisch allen Brennern, die auf Basis der Atmel Application Note 910 aufgebaut sind (insbesondere geeignet für Varianten mit USB Adapter, da schneller). Die ev. erforderlichen Änderungen sind auf meiner Seite beschrieben. ...let it burn, Klaus http://www.mikrocontroller-projekte.de (avr910 Prog)
Hallo avr910 Fans, Atmel hat mit der letzten AVRStudio Version 4.11 (build 401) überraschenderweise eine neue AVRProg Software (V1.40) mit herausgebracht. Dort sind jetzt auch ATMega64, ATMega169 und ATMega8535 unterstützt. Diese waren in meiner letzten Firmware schon drin, aber nur mit avrdude zu benutzen. Wer einen dieser Controller brennen möchte, sollte sich das neue Studio holen. Ciao, Klaus
Ich habe meinen AVR910 nun auch mal wieder aktualisiert. Funktioniert wunderbar. Ich habe hier jetzt einen ATmega162 bei dem ich FuseBits programmieren will. Der neue AvrProg von Atmel unterstützt den ATmega162 leider nicht. Kann mir jemand sagen wie ich das mit avrdude (oder einem anderen Programm) mache? MfG formtapez
Schon gut :) Geht beispielsweise so: avrdude -p m162 -U hfuse:w:0xD9:m Auslesen im Terminal-Mode (avrdude -p m162 -t): dump hfuse MfG formtapez
Hallo formtapez, probiere doch mal bei AVRProg einen "Nachbartypen" mit gleicher Memory Bestückung und Fuses aus (Datenblatt). M163 und M169 kommen ev. in Frage. Ansonsten, in avrdude hast Du es schon voll drauf ;-) Ciao, Klaus
Hallo Hatte mir zwei der Programmer gebaut. Einer hat jetzt nen merkwürdigen Fehler. Das Schreiben und lesen des Flash z.B von einem Mega32 funktioniert tadellos. Aber er erkennt die Signature nicht und die Fusebit`s werden auch nicht gelesen. Mit dem anderen geht es tadellos. Habe es mit dem löschen und programmieren des Programmer's versucht. Ergab aber keine änderung. Mfg Sascha
Hallo Sascha, wenn beide die identische Firmware haben, vertausch mal die gebrannten Chips auf den Programmern gegeneinander. Wenn der fehler nicht mitwandert, liegts am Board, oder Kabel wenn nicht, probier einen anderen 2313. Hast Du die neueste Firmware von dieser Woche? Version 3.7e. In einer alten Version gabs manchmal Probleme, wenn der Zielcontroller langsam getaktet war. HTH, Klaus
Hi, getauscht hatte ich schon. Es tritt dann auch der Fehler auf. Liegt also nicht an der Schaltung. Werde es mit der "neuen" Version testen. Wobei ich bezweifel, das es daran liegt. In beiden ist die V1.37. Mfg sascha
Hallo, 1.37 ? das ist die Version von AVRProg. Ich meinte die Firmware. Sonst keine Unterschiede? Gleiches Zielboard, gleiches Kabel? Was ist, wenn Du einen anderen Controller nimmst, kann er dann die Signatur lesen? Ciao, Klaus
Gibt es eine Chance daß man den mega88 damit programmieren kann? Tut sich da noch was in der Zukunft oder ist da das Ende der Fahnenstange? Ich fande das echt gut. Weil man hat nicht immer das STK zur Hand.
Hi, @Klaus, sorry meinte V3.7. Ich habe jetzt V3.3, V3.6, V3.7 ausprobiert. Mit jeder Version ging das Flashen, Lesen und Verify des Flash. Nur Signature und Fusebits nicht. Nach tausch des 2313 ging es. Vermute einen defekt des 2313. Fragt sich nur, warum die programmierung des Flash geht. Mfg Sascha
@Armin, hängt davon ab, mit welcher Software Du programmierst. Auf Atmel und AVRProg hab ich wenig Einfluss, wie es bei avrdude geht, hab ich auf meiner Seite ja beschrieben. Wenn Du avrdude benutzt, mache ich Dir gerne eine Version, wenn Du im Gegenzug testest. (auch Mega48 ist interessant) Schreib mal was Du benutzt. @Sascha Seltsame Geschichte. Das lesen von Fusebits ist elektrisch auch nicht anders als das vom einer Speicherstelle Ciao, Klaus
@Klaus Das denke ich ja auch. Aber leider ist es so. Habe den "defekten" 2313 jetzt schon mehrmals mit mit den verschiedenen Versionen des AVR910-Programmers geflasht. Der Verify spuckt keinen Fehler aus. Alles sehr suspekt. Mfg Sascha
@Klaus, ich benutze den AvrProg. Den aktuellen Programmer mit der aktuellen Firmware habe ich, aber der mega88 ist wie gesagt nicht dabei. Ich habe mal AVRdude installiert, und bin bereit das zu testen. Armin
Ich habe mir ein board mit einem CoController AT90S2313 gekauft. Ich will Assembler Programmierung lernen und habe mir ein Buch ausgeliehen.Muss ich irgend etwas beachten, weil das Buch nur für eine bestimmte Mikrocontroller Familie geschrieben ist.
@Klaus Hallo, ich habe dein programmer nachgenaut. Nur mit FT232. Es muß doch auch irgendwie möglich sein as ganze an das STK500 Protocoll anzupassen. Oder ist das unmöglich?. Vieleicht kennst du ja das Projekt mit dem Mega8(SMD). Dessen Firmware passt aber nicht auf den 2313. Wenn man jetzt den 2313 austausch mit einem Pinkopatiblen µC mit größerem speicher sollte es doch gehen den Programmer auf das STK500 Protokoll um zu stellen. Wieso geht eigentlich self programming nicht bei dieser Version. Ich habe auch da ENtwicklungsoard von Atmel. Da muß ja die Firmware auch irgendwie drauf. Dort habe ich auch schon updates gemacht. Wie funktioniert das also beim STK500 Board.
@Jens klar kann man auch einen Programmer bauen, der das Protokoll des STK500 spricht, dann ist es aber kein AVR910 mehr ;-) Der Sinn dieses Programmer war ja mit möglichst wenig Hardwareaufwand und Open Source Software preiswert zu einem Programmer zu kommen, der auch direkt aus dem AVRstudio funktioniert. Es gibt auch keinen zum 2313 pinkompatiblen Chip mit mehr Speicher (jedenfalls noch nicht). Selfprogramming bei diesem Programmer bedeutet dass es selbst Programmiert wird. Man braucht also einen zweiten Programmer um den 2313 neu zu brennen. (auch zum ersten Programmieren braucht man ja einen zweiten Programmer). Wenn Du was möchtest mit stk500 Protokoll: http://www.der-hammer.info/hvprog Der kann auch ISP und arbeitet mit der original Atmel Firmware des STK500. Das STK500 hat einen AVR910 (90S1200) mit auf dem Board, der sorgt für die updates. Eine weitere sehr schnelle Schaltung mit USB hat Matthias Matwei: http://matwei.de/ger/index.php?page1=elektronik&page2=usbisp Die unterstützt auch das STK500 Protokoll. Da dürfte dann ja was für Dich dabei sein. Viele Grüsse, Klaus
Hallo an alle AVR910 Experten Ich habe auch den Programmer mit AT90S2313 von Klaus Leidinger gebaut. Funzt bis jetzt eigentlich ganz prima. Eine Frage habe ich jedoch. Zu AVRProg von Atmel wird gesagt: Einfach den Tiny 26 einstellen wenn man einen tiny 2313 programmieren will. Funktioniert das dann komplett mit allen Fuse bits u.s.w. oder welche Einschränkungen gibt es ? Schönen Gruß Michael Noss
@Heinz, die Frage ist eher: mit welcher Steuersoftware programmiert man das. Für avrdude habe ich das vorgehen auf meiner Seite beschrieben. Wenn Jemand Erfahrungen damit gemacht hat, bitte um Rückmeldung. Wenn ich einen Mega48/88/168 hier habe, probiere ich es selbst mal aus.
@alle Benutzer des avr910 Ich habe heute die neue Firmware V3.8 online gestellt. Sie beinhaltet jetzt einen verbesserten Support für das lesen und schreiben der Lock- und Fusebits. (voller Befehlssatz der Appl. Note avr109 implementiert) Die Version 3.8 ist mit der aktuellen avrdude Version 5.0 kompatibel. Ausserdem sind einige Devicecodes für neue, von avrdude unterstützte Controller eingetragen. (eine angepasste avrdude.conf für 5.0 gibts ebenfalls auf meiner Seite) Erfahrungen und Testberichte bitte hier posten. Viel Spass damit, Klaus Leidinger
Servus! Habe heute deine V3.8 auf Anhieb zum laufen gebracht, verwende max232 und 8 MHz Quarzoszillator bei 38400 Baud. Das ganze läuft unter Avr-Studio 4.08 mit Windows XP. Habe die Schaltung (Eagle) hochgeladen, vielleicht kanns jemand gebrauchen. Einen Atmega8 habe ich damit gerade erfolgreich programmiert. Super Software, Danke! Gruss Andi
Ich hab mal versucht, mit Avrdude 5.0 und dem AVR910 Programmer zu programmieren. Nur, es klappt nicht. Es wird erfolg- und endlos nach dem Programmer gesucht. "Connecting to programmer: ." Im STK200-Modus geht's zwar, aber ich möchte ja gerne mit dem AVR910 arbeiten. Mit einer älteren Avrdude-Version geht's nach wie vor. Wo liegt das Problem? Was fehlt? Habe im Programmer die Softwareversion 3.8a bei 3,6864MHz drin. Auch AVRprog funktioniert tadellos.
Komisch jetzt geht's. Versteh ich nicht so ganz, was das jetzt war. (Ja, COM-Port war frei und der Strom war dran)
Hallo zusammen, habe folgendes Problem mit der Version 3.8 (benutze die Version mit 3,686 MHz und neustes AVR-Studio): Wollte den Mega8535 programmieren und die Fuses auslesen. Doch schon beim einlesen der Fuses dauert es schon eine gewisse Zeit, bis er diese Anzeigt. Und das auch noch falsch! Wenn ich erneut auf Einlesen drücke, gibt AVRPROG "Flushing" als Antwort. Das schreiben und auslesen vom flash geht auch nicht. Habe es ebenfalls mit einem Mega16 probiert, und es gab den gleichen Fehler. Einen Tiny2313 habe ich aber erfolgreich programmiert! Da ich vorher die Version 3.3 zum Programmieren hatte, und ich bis dahin mit den M16, M8 usw. keine Probleme hatte, habe ich diese Version wieder auf den Programmer drauf gespielt und siehe da, Mega16 und Mega8535 (im Mega8515 Modus) lassen sich ohne Probleme programmieren und auslesen. An der Hardware liegt es anscheinend nicht. Brauche aber die Unterstützung des Mega8535 (will auf ihn die Software des HV-Prog laden). Hat jemand einen Tip für mich, woran es liegen kann, das ich die Mega's nicht mit der Version 3.8 Programmieren kann? Könnte ich den Mega8535 auch im "Mega8515-Modus" programmieren und die Fuses setzen? Danke und Gruß PatrickHH
Hallo Patrick, ich gehe mal davon aus, das Du XTAL und N im Source passend für den 3.686MHz Quarz eingestellt und neu compiliert hast? Gehen würde er auch ohne Änderung, allerdings ist die SPI Clock dann falsch getaktet. Flushing deutet darauf hin, das der Programmer bei gestartetem AVR-Prog aus und wieder eingeschaltet wurde, oder dass mit der seriellen Verbindung eine Störung aufgetreten ist. Fuse setzten im m8518 mode wird wohl nicht ohne weiteres gehen. Da ich weiss, das ausser mir noch einige andere den Mega8535 mit der 3.8er Software gebrannt haben (auch mit 3.686 MHz Einstellung) vermute ich das Problem eher in der Zielschaltung, oder in einem temporären "Wackler". Die Verzögerung beim Fuse klesen deutet auf eine Unterbrechung beim Reset hin. HTH, Klaus
Compiliert habe ich ihn mit den neuen Angaben. Und wie schon gesagt klappt das Programmieren mit der selben Zielschaltung und Programmer, aber mit der Version 3.3. So kann ich die Zielschaltung ja eigentlich ausschliessen. Meinem Programmer habe ich jedoch etwas verändert. D.h. ich habe ihm für die Serielle Kommunikation einen MAX232 spendiert, anstatt dem Vorschlag von dir. Aber daran wirds wohl nicht liegen, da ich ja erst ab der neuen Version die Probleme habe. Was ich heute Abend noch probieren werde ist, mal einen anderen Rechner zu nehmen. Danke und Gruß PatrickHH
>...klappt das Programmieren mit der selben Zielschaltung und > Programmer,aber mit der Version 3.3. So kann ich die Zielschaltung ja > eigentlich ausschliessen... Nicht unbedingt. da Du ja den ISP Stecker umstecken wirst, wenn Du die neue (oder alte) Software flashst kann ein Wackler dadurch kommen und gehen (Reset Pin) Hast Du mal probiert einen gebrannten Mega8535 mit der version 3.8 zu "bearbeiten"? >Was ich heute Abend noch probieren werde ist, mal einen anderen Rechner >zu nehmen. Was soll das bringen? Am Rechner wirds wohl am wenigsten liegen. Miss mal den Pegel des Reset am Zielcontroller. Kannst Du einen anderen Controller mit der Version 3.8 brennen oder auslesen? Viele Grüße, Klaus
So habe nochmal etwas ausprobiert. Habe nun den Mega8535 mit der Version gebrannt bekommen, aber nur, wenn ich als Device den Mega8515 einstelle. Kann dann den Flash schreiben, auslesen und Fuses setzten. Ich muß noch dazu sagen, dass ich den Code vom Programmer etwas an meiner Schaltung angepasst habe: --Ports Definitions-- LEDH von PB3 auf PB2 Reset von PB4 auf PB3 kann es auch daran liegen? Sonst muß ich mal die Schaltung an die "Original" Pinbelegung anpassen (hatte ich gemacht, da ich damals nur einen AT2313 hatte, wo der Pin PB4 defekt war). Gruß PatrickHH
Hi, mit dem Reset Pin hat es nichts zu tun, das ist OK. Ist aber sehr seltsam, ich habe gerade noch mal verglichen, m8515 und m8535 werden von avrprog bis auf den unterschiedlichen Devicecode gleich behandelt. Im avr910 gibt es auch keine Unterscheidung. Es macht also keinen Untesrchied was eingestellt ist, gehen sollte es aber trotzdem mit beiden Einstellungen (bei mir tut es das) Was passiert denn, wenn m8535 eingestellt ist? Welchen Takt hast Du in der Zielschaltung? In der Version 3.3 war noch ein andere SPI Takt eingestellt, allerdings war der schneller als in 3.8, da die m8151 Einstellung aber geht... Mir fällt sonst im Moment nichts ein. Ciao, Klaus
Also Takt ist wie im Auslieferungszustand. Wenn ich die Fuses anschauen will dauert es sehr lange, bis das Fenster aufgemacht wird (ca. 5sek). LED ist dabei auf rot. Dann sind einige auswahlen grau hinterlegt (nicht änderbar). Wenn ich dann nochmals auf Fuses lesen gehe, kommt "Flashing" als hinweis. Wie die Anzeige der Fuses genau ist kann ich jetzt nicht sagen. Muß ich nochmal am WE ausprobieren und hier posten. Und was nochmal beim Flashen passiert? Muß ich ebenfalls nochmal probieren. Danke und Gruß PatrickHH
So habe eben mal den Programmierchip gegen einen neuen Tiny2313 getauscht. In der Firmware habe ich dann nur den Crystal und die Baudrate angepasst. Die Pinbelegung ist jetzt wie im Original. Und siehe da, jetzt funktioniert alles. Kann den M8535 Flashen und die Fuses ohne Fehler setzten. Also am besten nicht an den Port Definitionen rumspielen. Trotzdem ist es schon merkwürdig, dass man vorher den Tiny2313 programmieren konnte, aber den Mega nicht. Danke und Gruß PatrickHH
Ich habe mich auch an den Programmer AVR910 gewagt und ihn nachgebaut. Das eigentliche Problem kam aber erst bei der Programmierung des AT90S2313 bzw AT90S1200. Habe den Source-Code von K.Leidunger genommen (letzte Version) und auf meinem Quarz 8Mhz angepasst. Nach dem Komplieren mit WAVRASM und auch GAVRASMW bekomme ich etliche Fehlermeldungen, die die Kompilation abbrechen. Am SourceCode habe ich nichts geaendet bis auf die Takt EQU's. Kann mir jemand weiter helfen? Ich weis es geht ganz einfach, anderen Quarz. Moechte ich aber nicht, weil es fuer mich eine Herausforderung ist und ja auch mit 8MHz gehen muss laut Forum.
@trinity4711: Das Problem mit den Asseblerfehlern liegt ja nicht an der Quarzfrequenz, sondern an der Inkompatibilität der von Dir verwendeten Assembler mit dem Assembler des AVRStudio. Vermutlich haben .equ und/oder .defines einen anderen Syntax. Genau wie Volker oben geshrieben hat, habe ich den Source mit AVRStudio (avrassembler V2) und avra getestet. (Steht auch auf meiner Seite) Die Herausforderung liegt also nicht in der Quarzumstellung, sondern in der Portierung auf die von Dir verwendeten Assembler. Versuche doch zuerst mal die von mir verwendeten Assembler. Viel Erfolg, Klaus P.S. Übrigens muß neben der Frequenz auch der N Wert für die gewünschte Baudrate richtig eingestellt werden.
Hallo Forum, ich habe häufiger noch alte Platinen, die mit der fehlerhaften MISO-MOSI-Beschaltung des Programmier-Steckers arbeiten. Eindeutiger Nachteil an der Sache, zum Programmieren, muss man einen extra Programmierer haben oder einen extra AVR mit entsprechend vertauschten MISO und MOSI Leitungen (avr910). Jetzt habe ich die neuste avr910-firmware (Version 3.8b) um eine Funktion erweitert: Sie erkennt, ob MISO und MOSI vertauscht sind. Dies passiert beim "Enter Programming Mode". Prinzipiell versucht er zuerst im normalen Modus eine Synchronisation zu erlangen, funktioniert dies nicht, so wird der vertauschte Modus versucht. Schöne Grüße, Clemens
Hallo Clemens, clevere Idee, damit ist der Code wirklich universell verwendbar. Super, vielen Dank. Ich werde das demnächst auf meiner Seite aufnehmen. Viele Grüße, Klaus
Hallo Klaus, es freut mich, dass dir diese Idee auch gefällt. Leider habe ich gestern grad noch ein Problem entdeckt: Wenn ein ATMega162 programmiert werden soll, klappt die Sache nicht, dann wirft AVRdude eine Fehlermeldung aus. Wenn ich den ATMega162 mit der Device-Einstellung für einen Mega32 programmiere klappt alles wunderbar... Mir scheint, dass die unterschiedliche Behandlung der unterschiedlichen Prozessoren eine Rolle spielt, die nicht zu vernachlässigen ist. Grüße, Clemens
Hallo Klaus, hier vor dem Nachbau eine kurze Frage: Gab es schon Versuche dne internen Taktgenerator des ATtiny2313 z.B. auf 4 MHz mit Kalibrationbyte zu benutzen und auf den extra Quarz zu verzichten - das würde ich nämlich gerne ausprobieren! Danke!
Ja, das hat schon mal jemand gemacht und natürlich funktioniert das auch. Langzeitstabilität und Fehlerhäufigkeit kenne ich aber nicht. Denke daran, das mit 4MHz nur max 38400 Baud mit geringem Fehler gehen... Viel Erfolg, Klaus
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.