Hallo zusammen,
ich hätte mal eine Frage an euch. Hat jemand den USB-Programmer vom
Thomas Fischl nachgebaut und mit einem ATmega 128 ausprobiert?
Mir gelingt es nicht einen solchen Baustein zu beschreiben, trotzt der
Implementierung der Erweiterung aus anderen Seiten und der 5.2 Version
von AVDude. Problem scheint wirklich die 64k-Grenze zu sein.
Danke schon mal !
Gruß
rf-bug
Läuft er bei kleineren Controllern?
Ich weiß nicht, ich habe das Teil jetzt auch zusammen gebaut und habe
das Problem, nicht mal einen Mega8 beschreiben zu können. Lesen, löschen
und verifizieren geht. Das gleiche Problem hat einer aus dem
Roboternetz-Forum auch. Viele sagen, dass die ältere Firmware mit
gepatchtem AVRDude funktionieren soll, bei mir nicht. Mußte auch eine
Spannungsanpassung auf 3,3V machen, damit die USB-Schnittstelle meines
neuen Notebook den Programmer erkennt. Ein altes Gericom 1st Supersonic
und mein Acer Travelmate 290 erkennen das Teil auch bei 5V. Schreiben
geht da aber auch nicht. Ist noch nicht ganz ausgegoren die Sache. Mir
hat es halt gefallen, dass er so schön einfach aufgebaut ist und ich
alle Teile auf Vorrat habe. Nur was nützt er mir, wenn ich nicht
schreiben kann? Nun muß ich mir was einfallen lassen, denn ich habe
langsam kein Notebook mit paralleler Schnittstelle mehr. :o(
Habe vorige woche auch einen fischl usbasp aufgebaut.
Lesen und löschen von atmega8,64 und 128 geht mit gepatchtem avrdude und
alter wie neuer Firmware völlig problemlos. Programmieren einzelner
bytes im eeprom ist ok, im Flash gibts erst meldung verify error (inhalt
ff) ist aber beim nochmaligen lesen ok. Beim Flashen oder Eeprommen von
Datei gibts fehlermeldung ganz unten:
avrusb>avrdude -p atmega8 -c usbasp -U eeprom:r:"eeprom.eep":i
found 2 busses
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100%
0.01s
avrdude: Device signature = 0x1e9307
avrdude: current erase-rewrite cycle count is 151126016 (if being
tracked)
avrdude: reading eeprom memory:
Reading | ################################################## | 100%
0.07s
avrdude: writing output file "eeprom.eep"
avrdude: safemode: Fuses OK
avrdude done. Thank you.
avrusb>avrdude -p atmega8 -c usbasp -U eeprom:w:"eeprom.eep":i
found 2 busses
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100%
0.01s
avrdude: Device signature = 0x1e9307
avrdude: current erase-rewrite cycle count is 201457664 (if being
tracked)
avrdude: reading input file "eeprom.eep"
avrdude: writing eeprom (512 bytes):
Writing | | 0%
0.00savrdude:
error: usbasp_transmit: error sending control message: win error: Der
E/A-Vorgang wurde wegen eines Threadendes oder einer
Anwendungsanforderung abgebrochen.
So, habe nochmal mit der älteren Firmware von Fischl rumgespielt und die
Fuses des Mega8 auf 65ms Verzögerung beim Start gestellt (SUT 11) ->
Fazit: es funktioniert auf 3 Laptops. Endlich, ein USB-Programmer :o)
Wahrscheinlich war der Quarz noch nicht angeschwungen.
Weitere Veränderungen sind halt nur noch die Anpassung auf 3,3V um
USB2.0-kompatibel zu sein und Widerstände in den Programmierleitungen
zur Strombegrenzung bei Falschbeschaltung oder wenn die Zeilschaltung
mit 5V läuft. Werde mich demnächst mal nach einem
Low-Drop-Spannungsregler umsehen, der die Z-Diode ersetzt.
Um mal auf die Ausgangsfrage zurückzukommen: Wenn mein ATMega128
startklar wäre, würde ich es mal versuchen. Leider würde es jetzt zu
lang dauern ihn anzuschliessen. Vielleicht hat jemand anderes damit
Erfahrung gesammelt? Theoretisch geht es, laut Fischl ab Version
2005-11-14.
Hi,
ich habe den ATmega8 programmiert bekommen, allerdings nicht
verifiziert. D.h. der AVRdude hat ohne Fehlermeldung geschrieben.
Allerdings habe ich den Flash nicht mehr ausgelesen. Ein Bekannter mit
dem ich den Programmer bauen wollte, hat so wie ich auch das Problem,
das Programme die größer 64 k sind, definitiv nicht geschrieben werden
(ins FLASH).
Ich habe die Daten per Dude aus dem FLASH gelesen und das was ich
gesehen habe war nicht der geschriebene CODE. Nicht mal Ansatzweise. Wir
haben schon gedacht, das nach 64k der restliche Code wieder an den
Anfang geschrieben wurde, aber auch nichts. Es sieht so aus, das
"irgendwas" geschrieben wird.
capellone hast du auch wirklich das FLASH beschrieben?
Evtl. was an der Hardware geändert?
Wie gesagt, wir haben in Summe schon viele Stunden an dem Ding gesessen
und nicht zum Rennen bekommen.
Genommen haben wir den AVRdude 5.2 (der den USB-Fix enthält) und die
beiden letzten Versionen von T.Fischl. Unseren Intel-,
Motorolaformatfile haben wir mit PonyProg2000 erstellt.
Also ich habe es auch nicht geschaft. Größer 64k war nicht drinnen.
@capellone wäre gut zu wissen, ob es bei dir geht. Ich habe eigentlich
aufgegeben, an dem Teil weiter zu machen, denn ich wollte einen
Programme der den 128'er schreiben kann.
Hallo erstmal werte Usergemeinde.
Ich lese schon seit einigen Jahren in diesem Forum mit und ich muß
sagen, es ist meiner Meinung nach das beste deutschprachige Forum für
diverse Mikrocontroller. Aber nur warten bis einige das gleiche Problem
haben mit dem man selbst schon eine Weile kämpft, daß bringt dann doch
nichts.
Und damit möchte ich auch meine Erfahrungen und Probleme mit einbringen.
Mit dem Programmer von Fischl habe ich ebenfalls so meinen Kampf. Als
vorteil habe ich ebenso wie andere den relativ einfachen Aufbau der
Schaltung gesehen. Die Firmware war schnell mit einem einfachen
Parallelprogrammer auf dem M8. Das Gerät an den USB-Port, den Treiber
gesucht, gefunden und die Schaltung wurde erkannt. Ich muß dazu sagen,
daß ich immer noch ME als Betriebssystem habe, aber manch ältere Sachen
funktionieren damit gut, ohne weitere Treiber. Über den Avrdude ließ
sich das Target (Testschaltung mit M8) auch wunderbar ansprechen. Aber
bevor ich etwas auf den Flash schreibe, möchte ich dessen Inhalt
auslesen, zumal sich ein kleines Programm darauf befindet.
Meine Eingabe für den Avrdude:
avrdude -p m8 -c usbasp -u -C "c:\xxx/avrdude.conf"
flash:r:"c:\xxx/temperatur flash.bin":r -t
Im Terminalmode kann man dann ja mit:
dump eeprom (adr.xx) (länge xx)
sich dessen Inhalt ansehen oder auch vom Flasch etc.. Aber der leere
EEprom ist dann nicht leer. Es sieht so aus als wenn darauf einige Bits
und Bytes verändert werden. Das gleiche auch mit dem Flash.
Mit q kehre ich aus dem Terminalmode zurück nachdem dann der Flash
ausgelesen wurde. Wenn ich mir dann die Datei in einem Hex-Editor
ansehe, dann hat dessen Inhalt nichts mehr mit dem ursprünglichen
Progamm zu tun.
Den M8 wieder an den Parallelprogrammer, EEprom und Flash ausgelesen und
es sind Veränderungen im Speicher zu erkennen. Danach programmiere ich
den Chip neu, bring das ganze wieder an den usbasp und das ganze läuft
dann genauso wie vorher beschrieben ab, nur das sich dann einige andere
Bits ändern.
Ich verwende die conf und Firmware sowie den Dude von der Webseite von
Hr. Pfeifer. Er hatte das ganze auch mal in Smd aufgebaut und einiges
geändert.
Daher bin ich der Meinung das es auch funktionieren müßte oder hänge ich
an einem falschen Gedanken ?
Gruß euer Otto.
Hallo Otto,
erst mal danke für deine Antwort. Wenn ich dich richtig verstanden habe,
hast du alles mit einem M8 gemacht.
Bei uns läuft der M8 auch super. Null Problemo! Daher wollte ich den
auch nachbauen. Doch dann wollte ein Kollege seinen M128 programmieren.
Und da hakt es. Wie schon geschrieben, so bald nur ein Bit mehr wie 64k
geschrieben wird schon geht es nicht mehr.
Gemacht alles wie Beschrieben. Aber nichts.
Ich muss gestehen, dass ich den eigentlich nachbauen möchte, da das Teil
super schlank ist und das Layout auch schon fertig ist, aber der M128
ist ein MUSS.
Ich denke, dass ich doch auf eine Lösung mit FTDI Baustein zurückgreifen
werde. Schade eigentlich, aber die Zeit die da schon investiert wurde
ist einfach viel.
Danke!
Gruß & schönes WE
rf-bug
Hallo,
was den M128 angeht, da könnte ich event. auf die Seite von Hr. Pfeifer
verweisen (http://thomaspfeifer.net/). So wie ich dort gelesen habe hat
er einige Änderungen vorgenommen um die Pagegröße zu erweitern, so das
es dann auch mit einem M128 funktionieren sollte.
Selbst arbeite ich bisher nur mit dem M8, aber die beschriebenen
Probleme sind nach wie vor noch da, so das man auch langsam die Lust
verliert daran weiter zu arbeiten. Bisher habe ich fast alles zum laufen
bekommen, was ich bisher an Hardware gebaut habe. Aber dieser Programmer
macht mich "fertig".
Da scheinbar relativ viele User die gleichen oder ähnliche Probleme
haben, wäre es mitunter sinnvoll wenn jene, bei denen der Usbasp
funktioniert auch mal ihre Einstellungen posten würde. Z.B. mit welcher
Firmwareversion, welcher Dudeversion (event. mit welcher
funktionierenden Befehlsfolge), den richtigen Einstellungen der Fusebits
auf dem Programmer und auf dem zu Programmierenden Chip (z.B. M8) oder
mit welchen event. Hardwareänderungen bei ihnen der Programmer
funktioniert.
Event. war es ja auch zu verlockend einen einfachen und preiswerten
USB-Programmer selbst nachbauen zu können.
In diesem Sinne bin ich ebenfalls für jede nützliche Info dankbar.
Gruß, euer Otto.