I'm currently designing something I would call an 'in between board' or a 'one-off board', I'm not really sure what else to call it. Basically, the idea is to have a relatively generic board that can accept many different project setups that are in a complete or near complete format. It has space for an atmega328, enough screw terminals to cover all of the pwm outputs and analogs, as well as a few connecting points for ground/+5/pins. The motivation for this board was that I have a number of projects that are currently sitting on an Arduino that I'd like to move off to something more finished than a breadboard/protoboard but not quite worth sending off for a custom pcb. Anyway, I am finalizing the schematic, but I have one area of concern. I am not 100% certain about my ICSP header setup. I'd like to make this board programmable using an ISP like the usb tiny, but I seem to remember that there were some caveats with doing programming over ICSP that involve the reset switch/resistor. However, everything I am reading seems to indicate that I've got it right, but I just want to double check.
Please see the image of my schematic:
Any reason why this shouldn't work? Glad to hear any critiques on the schematic as well. Also, here's the first draft of the board design: Imgur: The magic of the Internet
ICSP looks good.
Need 0.1uF caps on th e VCC, AVCC, Aref lines.
Need an FTDI type header for downloading sketches:
Pin 1 GND, Pin 2 Gnd, Pin 3 +5V, Pin 4 to D0/Rx, Pin 5 to D1/Tx, pin 6 to one side of 0.1uF cap, other side to the Reset pin.
Any reason you are not bringing out all 20 IO pins? Why sell yoursefl short if it supposed to be really generic?
So, will I be able to program an atmega328 connected to this circuit via icsp via the arduino ide? Or will I need to use FTDI? I am pretty sure I've used the ide to program an arduino via icsp/usb tiny but I wasn't sure if there was something this schematic is missing that allows that.
As for the pins, I'm sure it is doable, I just don't see myself using much more than this many pins on most of my (very basic) projects. Also, I'm trying to fit the whole thing on 5cmX5cm and I don't think my Eagle abilities are enough to make it all fit!
Again, thanks for the feedback.
Yes, you can program a '328 from ICSP, or via the Serial.
If you only program via ICSP then you do not use the bootloader.
More will fit on a 5cm x 5cm board than you might think.
OK, I see, thanks. So, this is probably a dumb question, but even though you are not programming via the bootloader, if you've burned one, it's still 'there' right? That is, it's not being overwritten, and can still be used even though you programmed via icsp. Is that right?
"and can still be used even though you programmed via icsp"
I can't confirm that.
After uploading sketch via the ICSP, the bootloader appeared to be gone. Or at least it did not respond anymore as the sketch started immediately after powerup/reset, so it was effectively gone. Maybe fuses could be changed to start using bootloader code again, I never tried that to see if it still existed.
Okay, I just tried this. Uploaded a sketch via usbtiny, the bootloader appears to be gone. Good to know. So I am starting to see why it would be good to have ftdi capabilites (in my case, mostly for easy serial communication). So, I'll get to work on adding that and trying to add some more pins. Thanks for the advice!
Okay, I cleaned a few things up and added the FTDI. FTDI is marked JP1 in the schematic. I am not sure that I got the FTDI connection to reset right. What do you think? I found varying schematics online with respect to ftdi header hookup so I'm a little confused. C5 is a .1uF capacitor.
Put a 0.1uF in series between FTDI pin 6 and the reset pin, is okay otherwise.
Still need 0.1uF caps from VCC, AVCC, Aref to Gnd.
Why not connect pins 13, 14 to X4-1, -2?
Only have 20 IO, don't waste them.