erst mal: Ja ich habe Google bemüht, die Forensuche und auch ChatGPT, doch keine passende Lösung gefunden.
Ich hatte mal vor Jahren begonnen, Mikrocontroller (ATMega, Atiny) in C zu programmieren. Also, das Equipment war da. Nun hat ein Freund eine Schrittmotorsteuerung gebaut und dazu wäre der Atmega32 zu programmieren, bzw. das Programm auf den Kontroller zu bringen. Der Quellcode liegt nicht vor sondern eine HEX Datei und eine .eep Datei.
Die HEX-Datei habe ich mit MPLAB IPE auf den Controller gebracht.
Doch wie bringe ich die .eep DAtei ins EEProm des Controllers??
Weder bei der Hilfe bzw. dem Programm MPLAB X noch bei MPLAB IPE fand ich hier eine Möglichkeit bzw. Hilfe.
erst mal: Ja ich habe Google bemüht, die Forensuche und auch ChatGPT,
doch keine passende Lösung gefunden.
Ich hatte mal vor Jahren begonnen, Mikrocontroller (ATMega, Atiny) in C
zu programmieren. Also, das Equipment war da. Nun hat ein Freund eine
Schrittmotorsteuerung gebaut und dazu wäre der Atmega32 zu
programmieren, bzw. das Programm auf den Kontroller zu bringen. Der
Quellcode liegt nicht vor sondern eine HEX Datei und eine .eep Datei.
Die HEX-Datei habe ich mit MPLAB IPE auf den Controller gebracht.
Doch wie bringe ich die .eep DAtei ins EEProm des Controllers??
Weder bei der Hilfe bzw. dem Programm MPLAB X noch bei MPLAB IPE fand
ich hier eine Möglichkeit bzw. Hilfe.
Für Hilfe bzw. einen Tipp wäre ich sehr dankbar.
Nochmal sei erwähnt, dass ich nicht zu den Fortgeschrittenen in der
Microcontrollerszene gehöre.
Gruß
Günter
Mit Atmel Studio sollte es eigentlich kein Problem sein. Im Programmier Dialog, kannst Du dort die HEX und EEP Datei spezifizieren. Auch Lesen kann man den Flash bzw. Eeprom im anderen TAB. Das sollte eigentlich funktionieren. Ich verwende AS V7.0 mit AVR-ISP MKII oder das neuere AVR-ICE für SAM und AVR.
Sieh Dir mal alles in Ruhe sorgfältig an.
Im IPE sollte das auch möglich sein. Mir ist aber generell AS7 lieber.
Da das Board selbst keine kompatible ISP-Buchse besitzt,
muss ein anderes Board zum programmieren des
Controllers genutzt werden (z.B. RN-Control) . Oder man
nutzt einen geeigneten Programmer mit 40 pol Sockel.
Ich würde da mit Steckbrettverdrahtung und dem Programmiertool "avrdude", ggf. mit GUI, rangehen.
Sieht die eep-Datei im Texteditor wie ein Intel-Hex aus? Also Format wie die hex-Datei? Dann sehe ich im Vorgehen kein Problem, zumal da ein alter ATmega32 mit alter ISP-Schnittstelle drin ackert.
Komisch, MPLAB sollte doch einen programmer-only Modus eingebaut haben. Ich kenne MPLAB nicht, habe bisher immer nur mit avr-gcc, avrdude, üblichen gnutools und anderer IDE gearbeitet.
Atmel Studio kommt halt nicht in Frage, da ich ja auf Linux arbeite und ich meine Atmel Studio nur auf Windows läuft.
Der Prozessor ist auf einem Steckbrett angeschlossen und die HEX Datei des Programmes konnte ich ja schreiben und verifizieren. MPLAP IPE.
MPLAP IPE ist wohl das "nur Programmieren" Tool der Suite, doch finde ich dort keine Möglichkeit eine eep Datei zu laden, geschweige denn auf den Controller zu schieben.
MPLAP IPE ist wohl das "nur Programmieren" Tool der Suite, doch finde
ich dort keine Möglichkeit eine eep Datei zu laden, geschweige denn auf
den Controller zu schieben.
Du kannst die Datei direkt mit avrdude draufschreiben, wie oben schon geschrieben wurde.
OT:
Günter H. schrieb im Beitrag #7495104:
Atmel Studio kommt halt nicht in Frage, da ich ja auf Linux arbeite und
ich meine Atmel Studio nur auf Windows läuft.
Benenn die .eep in .hex um. Und dann wähl in MPLAB händisch EEPROM als
Memory-Ziel.
LG, Sebastian
Hallo,
du meinst in MPLAP IPE das Programm das eigentlich nur zum "brennen" dabei ist? Das hatte ich schon probiert, die Datei umzubenennen. Laut der Seite von dem die eep Datei kommt ist es keine HEX sondern eine Binärcodierte Datei. Deshalb hat das Programm auch moniert, dass es keine HEX Datei ist.
avrdude warning: cannot determine file format for RN_SCHRITTMOTOR_2.0.EEP, specify explicitly
avrdude error: command failed
avrdude error: initialization failed, rc=-1
- double check the connections and try again
- use -B to set lower the bit clock frequency, e.g. -B 125kHz
- use -F to override this check
mach erstmal einen einfachen Test ob überhaupt die Verbindung okay ist.
...
Programmer Type : JTAG3_ISP
Description : Atmel-ICE (ARM/AVR) in ISP mode
ICE HW version : 0
ICE FW version : 1.42 (rel. 161)
Serial number : J42700042762
SCK period : 8.00 us
Vtarget : 5.00 V
avrdude: AVR device initialized and ready to accept instructions
avrdude: device signature = 0x1e9502 (probably m32)
avrdude done. Thank you.
Beim Versuch zu schreiben:
avrdude: processing -U eeprom:w:RN_SCHRITTMOTOR_2.0.eep:a
avrdude OS error: unable to open RN_SCHRITTMOTOR_2.0.eep: No such file or directory
avrdude error: cannot determine file format for RN_SCHRITTMOTOR_2.0.eep, specify explicitly
avrdude error: read from file RN_SCHRITTMOTOR_2.0.eep failed
Die Datei mit der Endung .HEX enthält den Binärcode für den Flasspeicher des ATMega32
Die Datei mit der Endung .EEP enthält den Binärcode für das EEPROM des ATMega32
Entweder mit kompletten Pfad zur .eep Datei oder kopierst kurzerhand die .eep in den gleichen Ordner wo avrdude liegt. Wobei man die Option :i oder :b auch weglassen kann.
da im Dateinamen zwei Punkte waren. Das könnte
evtl. zu Problemen führen.
Das interessiert Linux bzw. avrdude nicht die Bohne, letzteres hat eher Probleme mit dem Doppelpunkt, das als Formattrenner dient, man avrdude sagt:
"Note that if filename contains a colon, the format field is no longer optional since the filename part following the colon would otherwise be misinterpreted as format."
avrdude warning: cannot determine file format for ./schrittmotor.eep,
specify explicitly
sagt avrdude, dass es das Dateiformat nicht erkennt. Also eigentlich
waren die Fehlermeldungen eindeutig.
Aber schön, dass mit Martins Hilfe das Problem gelöst werden konnte und
es dazu auch eine Rückmeldung gab ;)
Das ist nun schon eine Zeit lang her. Da ich schon seit bald 20 Jahren mit Linux arbeite, weiß ich wie ich Pfade korrekt angebe. Warum das dennoch ein Problem war, weiß ich nicht mehr.
Ich meine die Erkennung des Dateiformats bei avrdude ist per "default" auf "automatische Erkennung". Deshalb kam es mir logischerweise nicht gleich in den Sinn, daran zu zweifeln, dass die automatische Erkennung funktioniert. Auch deshalb weil ich avrdude alle heilige Zeiten mal nutze. Mir war das Dateiformat nicht ganz klar, weshalb ich auch nicht gleich den richtigen, expliziten Parameter für das Dateiformat beim Aufruf avrdude angab.