328P-PU 3.3v 8Mhz

Hi all,

I am hoping someone can help me with this I have been searching and trying for the last 2 hours and I am getting close to giving up.

I have some blank 328P-PU chips I would like to install an 8Mhz boot loader so I can run the chips at 3.3v. I have downloaded the breadboard 328 8Mhz zip and have been trying to burn the boot loader with a uno as ISP.

The only response I get is...

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: stk500_disable(): unknown response=0x12

I have hooked up the same as the breadboard tutorial and have tried burning with and without a crystal on the target chip.

Anyone got any ideas?

Thanks,
Mark

did you disable the auto reset on uno ? i know running the isp sketch on uno without disabling auto reset would cause your problems to disable the auto reset use a 120R resistor between RESET and 5v
http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection
or you can use a capacitor between reset and gnd

also from the error i tend to believe its an wiring problem - but i may be wrong
hope this helps

Thanks,

I put a 100uF cap between reset and ground and I seem to be getting further.

First I get message Burning Bootloader to board...

And then avrdude: stk500_recv(): programmer is not responding

My hookups are from target chip to Uno

VCC & ACC to Uno 5v
GND & GND to Uno GND
D13 to Uno ISP SCK
D12 to Uno ISP MISO
D11 to Uno ISP MOSI
RST to Uno ISP RST

Am I missing anything?

You know, I just went through this recently, although I was getting slightly different errors than you. I have several of those ICs and when I setup a minimalist breadboard configuration, it wouldn't burn the bootloader. Kept complaining that it's not the right chip. I checked and double checked, it's the same thing. Then, for grins and giggles, I decided to tie an oscillator to the IC. Lo and behold, it worked.

So, I thought, maybe it's the IC, let me try a second one. Same thing, wouldn't burn till I had an oscillator on. Now, I also have the same IC, but in TQFP form ... I tried one of those. I had just made some test boards for them so why not. Same darned thing ... wouldn't burn the bootloader till I tied an oscillator on. Which by the way, manually soldering a thin set of wires to the IC is not easy. The boards were designed specifically so I did not have to have an oscillator ... good thing I only made two for testing.

Now, once I was able to get the breadbroad bootloader on, I could yank the oscillator off and everything worked fine ... at least till I tried to re-burn the bootloader again ... it wants the oscillator again.

So, I've decided, whenever I'm burning bootloaders, regardless of what it is, always put an oscillator on. Afterwards, I can always yank it off afterwards, or just leave it on.

Could a minimalist bootloader be built right onto a ZIF socket?

ah right forgot about that - if your burning your bootloader with arduino ide youll need to change the fuse settings in order to use the internal oscillator @8mhz

but you may have a problem re-burn the fuses - since your atmega expect a crystal, im not sure if it will start without one to allow you to reburn the fuses - i know i had some similar problems with an atmega8 so probably if you already burn the bootloader youll need an crystal (or resonator) hooked up to your breadboard

@GoForSmoke what do you mean ? the bootloader its the software part and a zif socket its just the socket where you put the IC

markab:
RST to Uno ISP RST

That's wrong, you need RST to Arduino ISP D10 as per the tutorial.

dc42:

markab:
RST to Uno ISP RST

That's wrong, you need RST to Arduino ISP D10 as per the tutorial.

I think that's what he meant by saying 'Uno ISP RST' as opposed to simply 'Uno RST' ...

Thanks for the suggestions all,

I have tried with and without the oscillator but still no look.

Regarding the fuse settings, I was using the board config from breadboard.zip from this page http://arduino.cc/en/Tutorial/ArduinoToBreadboard I assumed they had the correct fuse settings as it is supposed to be for the internal oscillator.

Success at last.

Fixed the problem by burning optiboot to the IC first using the optiboot sketch.

Then when I tried to burn the breadboard 8Mhz boot loader with arduino as ISP it worked, weird the chip must have been in a state that the optiboot could deal with where arduino isp couldn't.

Now next question is, is there a optiboot 8Mhz boot loader or how to I configure for it?

Thanks,
Mark

there isn't a pre compiled one but that could be done easily just open the makefile edit the clock speed and recompile the bootloader with the make command something like

make clean
make atmega328
make atmega328_isp

this last step will attempt to flush the bootloader on your atmega if you edit this parameters

ISPTOOL	   = usbasp
ISPPORT	   = usb
ISPSPEED   =

hope this helps