Custom Uno Board

Hi There

I am trying to build my own custom board for the arduino uno. I have been trying to understand the schematic as seen on the website . On the schematic it has 2 MCUs. I understand that they represent the same chip in different packages. I was wondering if

-one needs both those chips

  • what are the differences between the chips if any

Thank you

No, the two uCs are different.
One is the ATmega328P, which is the true Uno's uC.
The other is the ATmega16U2, which is also uC, but it does USB <-> (TTL)UART, so Arduino-factory pre-programmed it.

By the way many cases, the latter uC be replaced by a cheaper USB-Serial chip (like a CH340) in inexpensive clones.

EDIT:
sorry @pert, we got the same posts. :laughing:

1 Like

(I posted at the same time as chrisknightley, but I'll leave it)

That's incorrect. One is the ATmega328P and the other is the ATmega16U2. These are two different microcontrollers.

The ATmega328P is the primary microcontroller your sketch runs on, so I'd say this one is essential.

The ATmega16U2 provides a bridge between the ATmega328P and the computer. This chip communicates with the computer via a USB CDC serial port and with the ATmega328P via UART. The ATmega328P doesn't have any native USB capabilities, so it can not easily communicate directly with your computer. If you want to upload sketches and use the Serial Monitor, you'll need some similar chip, but there are other alternatives such as FTDI FT323R and CH340.

1 Like

Right, Thank heaps

Remember that after assembling the board, you need to burn the bootloader to the ATmega328P using ICSP to complete it as an Arduino. :wink:

The figure below represents a very high level diagram of my current design.
image

Are there any major faults with this design? planning to get the FTDI boards for programming

Sorry if my questions are silly @chrisknightley @pert

I was planning to buy a chip with the bootloader pre-burnt

That's not a bad idea.
But when considering the design of the your custom board, it's a better idea to know about ICSP.

RESET should be pull-up to VCC, not pull-down to GND.
It's pins cause reset at low-level.

And you need some USB-Serial chip to connect with USB as I and @pert explained above.
Also, when using it not only for UART communication with a PC but also for sketch transfer, it should be equipped with an automatic reset circuit that uses a DTR signal.
Without it, you would have to reset it yourself at the right time when writing the sketch.
In that case, a reset button is required.

Thanks. Also I was wondering if the ATMEGA328P comes in a SMD package. I havent been able to find one. Does it even exist?

ATmega328P is available in 4 different packages.
There are 28DIP, 32QFP, 28QFN and 32QFN.

Additional ADC6 and ADC7 are only available in the 32-pin package.
These additional ADC pins can be seen on the Arduino Nano.

EDIT:
However, another matter...
The global shortage of semiconductors is currently making it difficult to obtain uC.

If you want an example of a minimal setup for the atmega328 have a look at the schematic for the Pro Mini https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Arduino-Pro-Mini-v14.pdf