Hi Pert and Larry, thanks for the replies.
I made some adjustments to the circuit: I've added the decoupling capacitors to VCC and AVC (as well as 5v to that one). I've also tried using DCD although that didn't seem to reset the 328 chip. I've got the LED connected infrequently just to check the chip is powered up and running, although that's now in series with a 220 ohm resistor.
I was still getting varying degrees of success with that.
I have then rebuilt the circuit on what I hope is better quality breadboard. I got better results with that and actually managed to upload a sketch, although even then the connection failed during the read/verify stage.
I've also changed the USB cable I'm using from my PC to the FTDI board, which made things a bit more stable; I suspect that's down do having more reliable power (I was using a 2 meter, very thin, USB cable). Saying that, I have also tried various different arrangements of powering the FTDI board and the 328 circuit itself.
I strongly suspect I am currently learning a valuable lesson about using quality components, as the results are inconsistent.
For what it's worth here's a snippet of the most common output I get from avrdude:
----snip----
Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/tmp/arduino_build_809503/BlinkAndSerial.ino.hex"
avrdude: writing flash (2086 bytes):
Writing | ################################################## | 100% 0.31s
avrdude: 2086 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_809503/BlinkAndSerial.ino.hex:
avrdude: load data flash data from input file /tmp/arduino_build_809503/BlinkAndSerial.ino.hex:
avrdude: input file /tmp/arduino_build_809503/BlinkAndSerial.ino.hex contains 2086 bytes
avrdude: reading on-chip flash data:
Reading | #######################avrdude: stk500_loadaddr(): (a) protocol error, expect=0x14, resp=0x00
avrdude: stk500_paged_load(): (a) protocol error, expect=0x14, resp=0x00
avrdude: stk500_paged_load(): (a) protocol error, expect=0x14, resp=0x00
###avrdude: stk500_cmd(): programmer is out of sync
avr_read(): error reading address 0x0000
read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
avrdude done. Thank you.
----snip----
That did successfully upload the sketch (I've just done it on three different chips while I'm writing this), but as I said above it fails before completing the verify stage.
Any suggestions, even if it's to agree I must have something in my setup which is low quality, are appreciated.
Thanks
Dave