March 6, 2015 Success burning Arduino Bootloader to ATMEL ATMEGA644-20PU
Sebi – YO5OQF was kind to give me two ATMEGA644-20PU after telling him that i would like to program via Arduino a larger DIP style microcontroller, with more IO pins to use it in a more complex transceiver.
Unfortunately, i spend about three days without luck in burning the Arduino bootloader. I read a lot about Sanguino, Optiboot. I even tried several tens of times without luck to do something. But I’ve learned things. Like for example that “Sanguino” or ATMEGA644P support is not by default visible in Arduino after putting the Optiboot in the /hardware folder (you have to uncomment the “Sanguino” lines in the boards list because it’s not officially supported).
I’ve tried burning the bootloader using Arduino 1.0.5 and the Arduino Mega2560 hardware (i had no available Uno for the moment). I’ve got errors like “unrecognized signature Ox….”. Arduino was no recognising my chip signature, and i’ve discovered that the signature was looking for was the one for the MEGA644P (P suffix!).
I tried a lot of stupid things, until I have downloaded an older Arduino version (0023). Than I’ve found these: https://code.google.com/p/arduino-atmega644/. It is where I’ve found my luck!
The developer has been short 🙂 — “Arduino IDE support for the ATmega644 controller family. Based on Sanguino, but up to date. Promise. ” Even if up to date, was some years ago.
I tried to burn his code with Arduino 0023 version without luck (error: “cannot find ….. file), maybe because only UNO is working as ArduinoISP with this software version… Or maybe because… see below…
Than, i had a strange, working! ideea. Let’s put the atmega644 folder from the above mentioned site into the /hardware folder of the Arduino 1.0.5 software.
Ok, the Atmega644 appeared in the menu, in Board list. Perfect. The same error while trying to burn the loader: “cannot find …./hardware/…atmega644p file” or something similar.
Than I’ve tot that this file should be one of the HEX files into the specified folder. What I did for my MCU type (the non-P version), I’ve changed the …atmega644\bootloaders\atmega644p\ATmegaBOOT_644.hex file name. ATmegaBOOT_644.hex to atmega644p. With no suffix.
And it worked.
Unfortunately, maybe because of the actual state of the Arduino 1.0.5 i wasn’t able to also compile/upload sketches to the ATMEGA644. But i was able to do it with the 0023 version.
For now, the Blink test sketch is working :-). When programming the mega644 with the USB/serial adapter, push for a short moment the reset pin (9) to ground after starting the upload. Uploading is done on RXD0 and TXD0 pins — 14 and 15. Crystal: 16MHz.