ok found this topic here atmega1284p/pu - Microcontrollers - Arduino Forum and it said if I changed the signatures in the avrdude.conf I should be able to program the 1284 with 1284P stuff.
Got the bootloader programmed of parallel, but then I tried to upload the program over the serieal port and well the progress just stops toward the end and it get's stuck have not recieved an error message yet :S
could use some help
terramir
I went through the same thing. To burn the boot loader, I had to change the
signature to the 1284 chip, but then to upload sketches, I had to change
the signature back to 1284P.
what errors were you getting?
because that is something I need to know this might be a different problem but I'll check into it
terramir
I don't remember which error msgs, it just wouldn't upload. The other thing is
there were long threads on 1284(P) upload problems back in February 2013,
and the fix was to change the low fuse setting from 0xFF to [Edit...] 0xD7
0xF7, full-swing oscillator, in the boards.txt file before burning the boot loader.
There have been all sorts of problems with maniac bug and 1284 boot loader.
You also need to change the .h files in many libraries, since there is no 1284(P)
support. Try to look back over past threads.
somehow I got no dice going I dunno why but it seems like the bootloader I'm trying to load won't work tried two different serial adapters to upload but no dice. uploading bootloader via parallel port seems to work. The bootloader I use it's for generation 7 reprap electronics for a 20mhz 1284P it uploads fine via parallel but then I try to upload a program via serial and no dice.
Could use some additional help the hex file I'm using is located here:Gen7 Arduino IDE Support - RepRap get it uploaded by changing the device id but then I run into problems uploading the firmware. according to rumors the 20 mhz dun work in the 2.1 version so I'm using the 2.0.
I dunno what to do :s
terramir
OK, I can't help you with that, and have only used the maniac bug stuff, and never
tried 20 Mhz. Maybe someone else knows, or try the rep rap forum.
Have you tried to upload via ISP (SPI) instead of async serial??. I made a shield that now programs 84's and 85's and a 6 pin ISP cable connector with the reset line moved to D10. I copied the Adafruit project and used a Zif socket. and with that I use the Evil Mad Scientist's 328 and 2313 boards for the other chips that I either am using or will be using. The greatest part for my money is that I don''t need a bootloader and a chip can be re-flashed many times.
Doc
The RepRap 20MHz bootloader doesn't work correctly with the baudrate 115200. I have a version of Optiboot for the 1284P @ 20MHz that works okay with the IDE. You can try this one attached below.
Just realized for Optiboot, you need to change the high fuse byte.
Change this in the boards.txt
Gen7-1284P-20.bootloader.high_fuses=0xD6
bootloader-1284P-20MHz.hex (1.41 KB)
Sheesh, this darn fuse stuff never ends :-(. Looking at the maniacbug boards.txt
file, he shows the following for optiboot.
mighty_opt.bootloader.low_fuses=0xff
mighty_opt.bootloader.high_fuses=0xde
mighty_opt.bootloader.extended_fuses=0xfd
mighty_opt.bootloader.path=optiboot
mighty_opt.bootloader.file=optiboot_atmega1284p.hex
We've decided from previous threads mentioned that the low-fuse setting
should be changed from 0xFF to 0xF7 to select the full-swing oscillator
(note - I mistakenly said 0xD7 in a prior post), but what is this new one about?
Changing high fuse value from 0xDE to 0xD6 appears to say preserve EEPROM
memory. Why does that matter when burning the bootloader?
EESAVE 3 EEPROM memory is preserved 1 (unprogrammed,
through the Chip Erase EEPROM not preserved)
That is fine also, 0xDE or 0xD6, the point was the Gen7 hfuse was 0xDC which is the wrong bootloader size for Optiboot. The Gen7 lfuse is already at 0xF7.
I was referring to what you wrote in reply #7, where you say s/b 0xD6.
Yes, and I agree with you what does it matter?
I could have said 0xDE just as well. I only took a conservative approach without knowing if there were any eeprom data that he needed to save for his application.
We've decided from previous threads mentioned that the low-fuse setting
should be changed from 0xFF to 0xF7 to select the full-swing oscillator
I have never agreed with that.
This is what I use for fuses with 16 MHz xtals/22pF caps:
bobuino.bootloader.low_fuses=0xff
bobuino.bootloader.high_fuses=0xde
bobuino.bootloader.extended_fuses=0xfd
Never had a problem with bootloading/serial downloading using these fuse settings with any of my boards.
Yes, there are arguments for either way 0xFF or 0xF7, but I think we are getting off subject of what the OP wanted to resolve. He was trying to get his 1284P @ 20MHz using the RepRap Gen7 release code. Which doesn't work correctly for bootloading via the IDE. It appears the baud rate is not working correctly at 115200 baud.
The RepRap Gen7 is using an older version bootloader that uses boot size of 1024 word. Which requires the hfuse = 0xDC, boot start at 0x1fc00. I was suggesting he try the Optiboot bootloader instead, since I have tested it working correctly at 20MHz and 115200 baud. Thus Optiboot is smaller boot size of 512 words, start code 0x1fe00. So this requires a different hfuse = 0xDE or 0xD6.
My bad, I was getting a little mixed up with word vs byte addressing.
So a bootsize of 512 words, start address of 0xFE00 word size, should have been 0x1FC00 byte address.
and bootsize of 1024 words, start address of 0xFC00 word size, should be 0x1F800 byte address.
Those boot addresses look a little off
They usually will, since some sources use word addresses (datasheet) and some use byte addresses (everything associated with gcc, I think.)
A source of much confusion
CrossRoads:
We've decided from previous threads mentioned that the low-fuse setting
should be changed from 0xFF to 0xF7 to select the full-swing oscillatorI have never agreed with that.
This is what I use for fuses with 16 MHz xtals/22pF caps:bobuino.bootloader.low_fuses=0xff
bobuino.bootloader.high_fuses=0xde
bobuino.bootloader.extended_fuses=0xfdNever had a problem with bootloading/serial downloading using these fuse settings with any of my boards.
Yeah, neither you nor I ever saw the upload problem, but I thought the guys
who did have it found that using the full-swing oscillator setting fixed it, so
the RC low-pass filter on RX0 was not needed. In any case, the guy who inspired
these comments [terramir], 10 or 15 posts ago, seems to have disappeared.
For that matter, however, there are multiple ways he could be having 1284
problems, besides what hiduino has been saying too. I've been working up a
summary page on all the 1284(P) problems that I experienced, witnessed, and
fixed, and the page quite long.
My problem is that this chip is a 1284 (non P ) -PU which should be the same chip except that it doesn't do the low power. But I can't get the 1284 programmed I can get a bootloader in there just fine with 1284 signiature changed in the avrdude.conf, but then trying to use the arduino 1.0.x to program the chip just times out for some reason the one time I did get something programmed it acted all funny turned on the psu (was not supposed to happen and the serial wouldn't connect.
I can program chips 664p just fine over serial with 0023 and windows xp but trying 1.02 or 1.04 with windows xp windows 7 or linux fails miserably, but you can't use 0023 to program the 1284@20 mhz as far as I can tell if someone can give me a walk through on how to program this chip actually both the 1284 and the 1284P because I just got some from mouser I would appriciate it .
fuse settings for the 1284 vs the 1284P would be appriciated as well (using 20mhz crystal with 22pf caps).
Need some help to get this done
terramir
You can try building an Optiboot V5.0 bootloader @20 MHz and 115200 baud. Google Code Archive - Long-term storage for Google Code Project Hosting.
Make from command line:
make atmega1284 AVR_FREQ=20000000L BAUD_RATE=115200 UART=0 LFUSE=0xF7 HFUSE=0xDE EFUSE=0XFD LED=B7 LED_START_FLASHES=3
or you can try the attached.
optiboot_atmega1284p.hex (1.41 KB)