Here I wanted to show How to design ATmega328P with Integrated USB using FT232RL. Like me, perhaps you always wanted to have USB feature with your microcontroller like Arduino. If that's the case, this tutorial will provide the technical foundation you need. This will also help you if you are designing your own PCB or looking to understand the hardware behind an Arduino Uno USB and other microcontroller USB support.
Below is schematic diagram of ATmega328P with Integrated USB using FT232RL.
I started with power supply by placing LM1117 5V IC. At the input I have used a10uF capacitor. The circuit is powered by 9 to 12V DC power supply. The power supply is connected to the input pin 3 of LM1117-5V IC. At the output pin 2, I have placed a 22 uF tantalum capacitor. The 22µF tantalum capacitor serves as the essential output stabilizer for the LM1117-5.0 linear regulator. Unlike standard ceramic capacitors, tantalum capacitors possess a specific Equivalent Series Resistance (ESR) that falls within the "stability window" required by the LM1117's internal feedback loop. Without this specific ESR, the regulator can become unstable and oscillate, creating high-frequency noise that causes the ATmega328P to crash or behave erratically. Positioned at the output, C2 acts as a local energy reservoir, filtering out voltage ripples and providing the immediate current bursts needed when the microcontroller or FT232R switch states. The other side of the capacitors should be connected to ground. After that I have connected a green LED with the output capacitor which indicates power is available.
I have used SS16 Schottky Barrier Rectifier diode for simulation purpose in the schematic diagram. You should use SS1P3L or the MBR0520 Schottky Barrier Rectifier diode which are used in Arduino boards. This diode role is to provide one-way power gate to safely manage dual power inputs. Its primary role is to allow the USB port to power the circuit while simultaneously blocking the 5V output of the LM1117 regulator from back-feeding into your computer, which prevents potential motherboard damage during simultaneous battery and USB use. Because it features a lower forward voltage drop (typically 0.4V) than standard silicon diodes, it ensures the ATmega328P still receives a sufficiently high voltage (approx. 4.6V) to maintain stable operation at 16MHz when running on USB power alone.
The Capacitors C3 and C4 work together as a dual-stage filter to ensure the 5V power rail remains clean and stable. The 100nF C4 is a decoupling capacitor that suppresses high-frequency electrical noise generated by the high-speed switching of the chips, while the 4.7-microfarad C3 acts as a local reservoir to prevent voltage sags during sudden current bursts. By pairing these two, the circuit gains both the speed to filter noise and the capacity to handle power demands, protecting your ATmega328P from crashes and communication errors.
Next comes the ATmega328P microcontroller connection. First, I have connected the 10kOhm pull-up resistor. We have to connect this to the +5V and to the PC5 or Pin 1 of the ATmega328P IC. The 10k resistor, R1, acts as a pull-up, holding the microcontroller’s Reset pin at a steady 5V to keep the chip running during normal operation. Then I connected the reset push button. When the push button is pressed, it momentarily connects the Reset pin directly to Ground, forcing the chip to stop and restart its internal code execution.
I then connected the 16MHz crystal oscillator for the ATmega328P chip. This is connected to the oscillator pins 9(PB6) and 10(PB7). The other side is connected to two 22pF capacitors. C5 and C6 are load capacitors that work in conjunction with the 16MHz crystal (X1) to form a Pierce oscillator circuit. Their primary role is to provide the precise phase shift and capacitance required to kickstart and maintain a stable mechanical vibration in the crystal. This vibration generates the accurate high-speed clock signal that dictates the timing for every instruction executed by the ATmega328P and ensures that serial communication remains perfectly synchronized. Without these capacitors, the crystal may fail to oscillate or drift in frequency, leading to a system that either won't start or produces "garbage" data in your serial monitor.
After that I connected the VCC pin 7 to the +5V rail. And also connected the AVCC pin 20 to the same +5V rail. The AREF pin is connected to ground via the 100nF C7 capacitor. The C7 capacitor is the analog reference decoupling capacitor. Its role is to filter out high-frequency noise from the ATmega328P's AREF pin, providing a clean, stable voltage reference for the internal Analog-to-Digital Converter (ADC). By "shunting" electrical interference to ground, C7 ensures that when you read sensors or battery voltages, the values remain precise and don't fluctuate due to digital noise on the power rail. For maximum accuracy in your measurements, this capacitor should be placed as close to the microcontroller pins as possible in PCB design. Also connect GND pin 22 to ground. Likewise, connect the GND pin 8 to ground.
After this, I connected decoupling capacitors C8 and C9 to VCC pin of ATmega328 IC. These decoupling capacitors specifically dedicated to filtering the power supply for the FT232R USB-to-serial chip. The 100nF capacitor C9 suppresses high-frequency noise and voltage spikes that could interfere with the delicate USB data signals, while the 4.7uF capacitor C8 acts as a small reservoir to stabilize the local supply during data transmission bursts. Together, they ensure the FT232R has a clean, quiet power source, which is critical for maintaining a reliable connection and preventing data corruption between your circuit and the computer.
Then I moved on to the USB part. I first place the USB port. After that, I placed the FT232RL USB-to-TTL (UART) ICs. The FT232RL IC is a specialized USB-to-Serial UART interface chip developed by FTDI. Its primary role is to bridge the communication gap between a computer's USB port and a microcontroller’s TTL serial pins (RX/TX). It handles the complex USB protocol internally, allowing your ATmega328P to send and receive data as a simple COM port. Additionally, it provides essential signals like DTR for automatic circuit resetting during code uploads and typically includes an onboard 3.3V regulator to power small external components.
First, I connected the FT232RL VCC pin to the +5V rail. I proceeded with the ground connection, the TEST pin and the ground pins of FT232 IC are connected to ground. Next comes the connection between ATmega328P and the FT232RL IC. I used two 1kOhm resistors to connect RX and TX pins of ATmega328P to TX and RX pins of FT232RL respectively. Also, we have to connect a 100nF capacitor between DTR pin of FT232RL IC and the reset pin of ATmega328.
I have then connected two LEDs to CBUS0 and CBUS1 pins of the FT232RL. Their cathode should be connected to +5V.
Next comes the USB port to FT232RL connections. First, I connected a Ferrite Bead to the VCC pin of the USB port. This Ferrite Bead is a passive component used for EMI (Electromagnetic Interference) suppression. Its role is to act as a high-frequency filter that "chokes" out electrical noise coming from the USB cable or the switching of the digital chips, preventing that noise from entering your sensitive 5V power rail. Commonly use Ferrite Bead are Murata's BLM21PG221SN1D and Laird's HZ0805E601R-10. The other side to the ferrite bead should be connected to the +5V rail.
Now comes the USB data pin connections. Connect D+ pin of USB port to the USBDP pin of FT232RL. Similarly, connect USBDM pin of FT232RL to the D- of USB port.
Then connect the ground pin of USB port to the ground and also connect the same pin to the +5V rail via 100nF capacitor C12.
For debugging purpose, I have connected a LED and 330Ohm resistor to PB5 pin of the ATmega328 IC.
That it, the circuit is now complete. The following video shows how I designed the ATmega328P with Integrated USB using FT232RL circuit.
In the next tutorial, I will show through simulation and Animation how this USB, FT232RL wit ATmega328P works. This allows one to test USB functionality before actually building the physical circuit. So don't forget to visit this blog.
Thank you for time reading this.
Related Tutorials:
- Communication between Microcontrollers using USART-ATmega328P and ATmega32A
- HC-05 Bluetooth Module and ATmega328p USART Communication
- How to Program ATmega328p using ATMEL Studio & AVR ISP MKII
- Programming ATmega328P with Arduino as Hardware Programmer: A Step-by-Step Guide
- ATmega328p, Bluetooth and IR sensor Interfacing and coding
- ATmega328P Fast PWM: Arduino Nano Control Made Easy

