Hallo, ich versuche den Bluecontroller als ISP Programmer über Bluetooth einzusetzen. Der EEPROM Speicher eines Atmega 64 soll damit drahtlos ausgelesen und beschrieben werden. Dafür möchte ich dieses Projekt verwenden: https://code.google.com/r/michaeldreher42-bluecontroller/ Zunächst habe ich nur den ISP Code im Speicher ohne Bootloader, um nicht an zwei Fronten zu kämpfen :-) Bisher klappt die Einstellung der Fuses für den integrierten Atmega 88PA noch nicht. Low u. High lassen sich setzen, jedoch Ext und Loc nicht. Gruß, Ingo
Hallo Ingo, Das programmieren des BlueController Bootloaders und der Fuses geht übrigens am einfachsten mit der Arduino Umgebung, wenn das komplette Paket aus https://code.google.com/r/michaeldreher42-bluecontroller/ zusätzlich installiert wurde (siehe Verzeichnis doc). In der Datei "My Documents/Arduino/hardware/myAVR/programmers.txt" kannst Du deinen eigenen Programmer eintragen, falls er noch fehlt. Momentan habe ich den myAVR für die beiden Protokolle avr911 und stk500v2 eingetragen (je nachdem welche Firmware auf den myAVR geladen wurde):
1 | myavr1.name=myAVR (avr911) |
2 | myavr1.communication=serial |
3 | myavr1.protocol=avr911 |
4 | myavr1.speed=19200 |
5 | |
6 | myavr2.name=myAVR (stk500v2) |
7 | myavr2.communication=serial |
8 | myavr2.protocol=stk500v2 |
9 | myavr2.speed=19200 |
Bei den Baudraten bin ich mir nicht sicher. Möglicherweise ist diese nicht relevant da die PC<=>Programmer Kommunikation ja über USB geht. Den Rest kannst Du alles über das Arduino UI erledigen. Die Arduino Umgebung muss geschlossen sein oder neu gestartet werden, wenn die Datei geändert wird. Dann in Arduino folgende Schritte machen: im Menu Tools/Board "Bluecontroller ATmega88PA 19200bps" (bzw. passend zu deinem Board) auswählen 1. Im Menu Tools/Programmer den passenden "myAVR" Programmer Typ auswählen 2. Im Menu Tools/Serial Port den Serial Port des myAVR auswählen 3. Im Menu Tools den Eintrag "Burn Bootloader" auswählen Dann werden alle Werte aus der Datei hardware.txt gelesen und der richtige Bootloader und die passenden Fuse Werte gebrannt. > Deine myAVR-Textdatei habe ich eingefügt, aber der Programmer > müsste STK500v2 sein und die Baudrate 57600. > Kann ich den Text einfach ändern ? Den habe ich jetzt auch aufgenommen. Du kannst dort alles eintragen, was der avrdude als programmer type unterstützt. Um den ISP Programmer Sketch danach zu laden: 1. Bluetooth Modul mit PC pairen 2. Im Menu Tools/Serial Port den Serial Port des BlueController auswählen 3. Im Menu File/Sketchbook/hardware/bluecontroller/BlueC_ISP auswählen 4. Den Bootloader in den Upload Mode bringen: INT0 und RST Taster gleichzeitig drücken und gedrückt halten, dann zuerst RST und danach INT0 Taster loslassen. Die Reihenfolge beim Drücken ist relativ egal, besser zuerst RST drücken. 5. "Upload" Button drücken Danach ist der BlueController ISP Programmer im stk500v1 mode funktionsfähig. Für den "bluec" mode benötigst du noch den erweiterten avrdude, der als Sourcecode im Paket mit dabei ist. Die binaries muss ich mal dazu ablegen. Michael
Danke Michael, die Programierung mit der Arduino Umgebung muss ich noch nachholen wegen der Fuses. Ich habe es jetzt erst einmal direkt mit dem myAVR gemacht, ohne Fuses, also nur das ISP Programm auf den Atmega88 installiert und danach den Bluecontroller an mein Projekt angeschlossen. Nun bin ich einen großen Schritt weiter: Die Bluetooth Verbindung funktioniert und ich kann sogar das EEPROM vom Atmega64 auslesen !!! Aber... das Programm, das die EEPROM Daten ausliest und weiterverarbeitet meldet: " Ungültige EEPROM Datei " Avrdude meldet jedoch kein Problem mit dem Auslesen. Wenn ich den Atmega64 aber über USB-Kabel mit dem PC verbinde und auslese, ist die Datei ok. Ich habe noch andere Programmer Einstellungen versucht, aber soweit wie oben beschrieben komme ich nur mit STK500v1. Bei anderen Einstellungen wird das Auslesen erst gar nicht gestartet. Hast du da eine Idee ? Gruß, Ingo
Ingo K. schrieb: > Die Bluetooth Verbindung funktioniert und ich kann sogar das EEPROM vom > Atmega64 auslesen !!! > Aber... das Programm, das die EEPROM Daten ausliest und > weiterverarbeitet meldet: " Ungültige EEPROM Datei " Kannst Du mir die beiden unterschiedlichen Dateien mal schicken oder selbst die Unterschiede vergleichen? > Wenn ich den Atmega64 aber über USB-Kabel mit dem PC verbinde und > auslese, ist die Datei ok. Was meinst Du damit, d.h. wie wird diese Datei ausgelesen? Geht dies über einen externen Programmer (den myAVR?) oder ist auf dem ATmega64 ein Programm drauf, welches die Daten schickt und ggf. noch umwandelt? Verwendest Du für beides avrdude? Michael
Michael Dreher schrieb: > Kannst Du mir die beiden unterschiedlichen Dateien mal schicken oder > selbst die Unterschiede vergleichen? werde ich mal machen, aber dafür muss ich erst alles wieder umbauen..... Michael Dreher schrieb: > Was meinst Du damit, d.h. wie wird diese Datei ausgelesen? Geht dies > über einen externen Programmer (den myAVR?) Ja, wie vorher mit dem myAVR Programmer. Das Auswerteprogramm verwendet Avrdude zum auslesen und schreiben. Ingo
Hallo Michael, habe hier mal beide EEPROM Dateien hochgeladen. Beide sind gleich groß, aber irgend etwas muss anders sein. Kannst du das mal checken ? Die Datei "ok" wird mit STK500V2 u. myAVR Programmer ausgelesen, die "bad" wird mit STK500V1 u. Bluecontroller ausgelesen. Kann es daran liegen ? ( Die Files umbenennen von .txt in .hex ) Danke, Ingo
Ich habe jetzt mal die "ok" Datei über den Bluecontroller in das EEPROM vom Atmege64 geschrieben und habe folgende Fehlermeldung erhalten: ======================================================================== ========= Started AVRDUDE D:/Programme/companion9x/avrdude.exe -c stk500v1 -p m64 -P com4 -U eeprom:w:D:/DOKUME~1/Alle/LOKALE~1/Temp/compat.bin:r ======================================================================== ========= avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.22s avrdude.exe: Device signature = 0x1e9602 avrdude.exe: current erase-rewrite cycle count is 151454093 (if being tracked) avrdude.exe: reading input file "D:/DOKUME~1/Alle/LOKALE~1/Temp/compat.bin" avrdude.exe: writing eeprom (2048 bytes): Writing | ################################################## | 100% 125.53s avrdude.exe: 2048 bytes of eeprom written avrdude.exe: verifying eeprom memory against D:/DOKUME~1/Alle/LOKALE~1/Temp/compat.bin: avrdude.exe: load data eeprom data from input file D:/DOKUME~1/Alle/LOKALE~1/Temp/compat.bin: avrdude.exe: input file D:/DOKUME~1/Alle/LOKALE~1/Temp/compat.bin contains 2048 bytes avrdude.exe: reading on-chip eeprom data: Reading | ################################################## | 100% 37.05s avrdude.exe: verifying ... avrdude.exe: verification error, first mismatch at byte 0x0000 0x04 != 0x41 avrdude.exe: verification error; content mismatch avrdude.exe done. Thank you. ======================================================================== ========= AVRDUDE done - exit code 1 ======================================================================== =========
Ingo K. schrieb: > habe hier mal beide EEPROM Dateien hochgeladen. Beide sind gleich groß, > aber irgend etwas muss anders sein. Ich die Files mal verglichen. Es sieht so aus, dass in der "bad" Datei immer 8 Byte identisch sind mit der good Datei und dann 8 Byte fehlen. Muss mir den ISP Programmer Code mal ansehen, was das solche Phänomene verursachen kann. Michael
Wenn immer 8 Bytes fehlen, dann müsste die Datei doch kleiner sein, oder? Ich habe sie einfach mal mit dem Windows Texteditor verglichen und für mich sieht es so aus, als ob alles vorhanden ist aber nur etwas durcheinander in der Reihenfolge. Das ist nur mein Eindruck und kann natürlich auch falsch sein. Ingo
Jetzt mit dem neuen ISP Code für den Bluecontroller funktioniert alles bestens mit STK500v1 !! Vielen Dank
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.