Forum: Mikrocontroller und Digitale Elektronik fischl usb programmer


von rf-bug (Gast)


Lesenswert?

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

von Barti (Gast)


Lesenswert?

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(

von capellone (Gast)


Lesenswert?

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.

von Barti (Gast)


Lesenswert?

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.

von rf-bug (Gast)


Lesenswert?

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.



von Marvin (Gast)


Lesenswert?

"Unseren Intel-,Motorolaformatfile haben wir mit PonyProg2000 erstellt."

Wie bitte?

von rf-bug (Gast)


Lesenswert?

Oooh,

hast recht. Fehler!
Ich denke es war der WinAvr (hat mein Bekannter gemacht).

Also bitte vergessen!

von rudi (Gast)


Lesenswert?

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.

von Armin C. (otto)


Lesenswert?

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.

von rf-bug (Gast)


Lesenswert?

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

von Armin C. (otto)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.