He guys,
i bought atmega1284pu and i tried to boot bootloader but it didnt work. i was following these tutorials:
http://wiki.wiring.co/wiki/Creating_your_own_Wiring_board_with_a_DIP_atmega1284p_using_Duemilanove
I used arduino uno as isp but i get this error:
avrdude: Device signature = 0x1e9706
avrdude: Expected signature for ATMEGA1284P is 1E 97 05
Double check chip, or use -F to override this check.
Do you think the problem is that i have atmega1284pu and not atmega1284p?
thanks for your answers :).
If I understand correctly, PU means "plastic DIP package" and P means "pico-power". The non-Pico-Power chip should be compatible with the Pico-Power version so all you should have to do is change the chip type in the boards.txt file to remove the 'p'. Then avrdude will be happy with the signature.
You are not able to copy the Entire 1284P section, add it to the bottom of the file, and change these few lines?
If this doesn't work, then perhaps my approach is incorrect.
#------------------------------------------------------------
# ATmega1284P <<< ATmega1284
#------------------------------------------------------------
# similar to ATmega164p
part
id = "m1284p"; <<<< "m1284";
desc = "ATMEGA1284P"; <<<<"ATMEGA1284";
has_jtag = yes;
stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one
avr910_devcode = 0x74;
signature = 0x1e 0x97 0x05; <<<< 0x1e 0x97 0x06;
:
:
// and copy the rest down to the start of the next section ...
everytime i change avrdude.conf i get error. the same as i show previosly. what abouth changing atmegaBOOT_1284p file. i tried it with .c file and nothing however there is still .hex file. Can anyone help, please. i spent all my money for 2 of these microcontrollers =( and now i cant control them. If they are gonna work i will make really cool robot(check out picture) 8).
I've been using the atmega1284 without issue (you like I did got the atmega1284-PU, not the atmega1284P-PU - Note that the PU specifies a DIP package and is nothing to do with the device).
All I had to do is to find the definition for ATmega1284P (just using CTRL-F), and change the signature to:
signature = 0x1e 0x97 0x06;
Then I used the IDE to burn a version of optiboot bootloader compiled for the mega1284p
Then once the bootloader was burned I changed the signature back to:
signature = 0x1e 0x97 0x05;
It works a treat for me.
If you let me know what clock frequency you plan to use, I will compile an optiboot hex file for you. Note that the version I modified uses UART1 for programming.
I should mention that I used the standard Arduino core, but modified wiring_analog.c to support the 1284p (It still works fine with all the other arduino's).
I have also attached the Pins_arduino.h file I have been using which shows in it a pin map for the DIP package - this is the pins_arduino file from here: GitHub - stevemarple/Calunium: Arduino clone based on the ATmega644P/ATmega1284P
To speed things up, I have also attached two versions of Optiboot - one compiled for 16MHz, the other for 20MHz (I have an 8MHz version as well if you prefer). These run at 115200 Baud using UART1, and PD7 for the status LED (Digital pin 23, or IC pin 21).
Done burning bootloader. best sentsnce ever :D. thanks man but i cannot upload program i tried both uarts and nothing. i also changed baud rate to 115200. didnt help. BTW there is original atmega1284p on 16mhz bootloader. any solution?
cube1284p_16.name=Cube 1284/1284P (PCB, 16MHz)
cube1284p_16.upload.protocol=arduino
cube1284p_16.upload.maximum_size=130560
cube1284p_16.upload.speed=115200
cube1284p_16.bootloader.low_fuses=0xFF
cube1284p_16.bootloader.high_fuses=0xDE
cube1284p_16.bootloader.extended_fuses=0xFD
cube1284p_16.bootloader.path=optiboot
cube1284p_16.bootloader.file=optiboot_atmega1284_16.hex
cube1284p_16.bootloader.unlock_bits=0x3F
cube1284p_16.bootloader.lock_bits=0x0F
cube1284p_16.build.f_cpu=16000000L
cube1284p_16.build.core=arduino
cube1284p_16.build.variant=Cube
#Note that the MCU is given as atmega1284p even though you are using the atmega1284
cube1284p_16.build.mcu=atmega1284p
Have a look at these three lines, and compare them to mine.
mighty.bootloader.file=ATmegaBOOT_1284P.hex
mighty.upload.protocol=stk500v1
mighty.bootloader.path=standard
#This one as well, but actually it isn't that important (my setting saves you 1.5kB of program space)
mighty.bootloader.extended_fuses=0xfd