Using ATMEGA328P Standalone

Good afternoon all,

I was wondering if anyone could shed some light on a option for my project. I have an Arduino UNO R3 and I am developing a tool for fault insertion into a system.

Once I get the program running successfully, I would like to remove the ATMEGA 328P from the UNO board and place it on a board that has the necessary support circuitry (for me, this is mainly a crystal. I have seen this done before, so, obviously it does work.

One issue I am worried about is the serial interface. I do need to connect to a computer via a serial interface. I assume that the interface on pins 1 and 2 will still work. I realize I may need a level converter if the serial signal is actually RS-232 from the computer.

Any insight or experience would be greatly appreciated.

Rob Hix

These days this is typically interfaced with a computer using a USB-serial adapter that creates a virtual com port on your computer. You can buy the breakout boards (FT232,
CH340, etc.) or just add the necessary components right on your board. If you prefer a true serial port that's also possible.

This is a good tutorial for ATmega328P on a breadboard, which could be easily adapted to a custom minimal board:
It shows how to connect the USB-serial adapter with the auto-reset circuitry, something that is not shown in the official Arduino tutorial pages.

Do not forget the 0.1uf power supply decoupling caps Vcc to ground and AVcc to ground.

I have used MCP2200 USB drivers/Interface to allow USB serial to my PC.

You can buy like standalone USB Serial/TTL converter things but I like having it all on one PCB.

I use the ISP 6-pin port for programming.

The MCP2200 only needs 2 connections to the ATMEGA328 (TX-RX, RX-TX).
It needs the two data pins going to the USB plug (D+ to D+ and D- to D-).
Optional LEDs for "traffic visualisation" on 2 pins.
Needs a 12MHz crystal and 0.1uF caps.
Recommends a "ferrite bead filter" on a wire connecting the USB plug +ve to the PCB to filter noise from PC.

The ISP (in system programming) pins are just a basic 3x2 pin header that directly connects to the ATMEGA328 for programming.

PS/EDIT: There is a way to hve it so that the MCP2200 can be used to program the ATMEGA328 via the USB port...but I have not got around to that/understood it yet.