Custom 328p + FT231X board - can't get USB programming working

Hello all,

I am working on making a 3D printed lithophane LED lit display box controlled by a custom board with an ATMEGA328PB-AUR and an FT231XS-R USB to UART interface for programming. Here is the schematic:

The right half of the schematic can be ignored, all of that stuff works as intended or isn't relevant. I have burnt the Nano bootloader and can successfully program the 328p using ICSP, but I want to be able to program over USB.

I have been struggling for the past few days to get the USB to UART interface to work properly. Currently, the 328p does correctly get reset when I upload code using the Arduino IDE, but the new program is never uploaded.

I will give some context about the work I have done thus far as some features of my schematic need explaining. At first, I was struggling to get the DTR line of the FT231X to reset the 328p but I have been able to achieve reliable resets by changing C8 from 0.1uF to 1uF and adding the R18 pull-down to ground to lower the voltage at the reset pin of the 328p to 3.3V at idle and 0V when the FT231X pulls it low at the start of uploading. Without R18, the FT231X would only pull the reset line down to ~1.4V (4.8V - 3.3V = ~1.4) which was not resetting the 328p. After getting reliable resets I thought it would be fixed, but I still can't program the 328p over USB. I get the standard "avrdude: stk500_recv(): programmer is not responding" error message.

I have verified with my oscilloscope that the RX pin of the 328p is receiving the serial data but only at 3.3V as that is what the FT231X VCCIO is. The 328p VCC is 5V. I do not believe this is a problem after some digging in the 328p datasheet and by referencing Sparkfun's RedBoard schematic that uses these two parts as well:

While they do have that fancy transistor stuff going on with the DTR line, I do have reliable resets.
The problem seems to lie elsewhere and I don't know where...

So, I need help figuring out what else may be preventing the USB to UART interface from working for programming.

Thanks in advance for any input!

Try putting a 1M - 10M resistor across the EXTAL pins....Schematic looks alright, but I generally recommend having a diode in parallel with the 10K resistor*(example schematic shown below)*.
image
The diode doesn't need to be CD1206....I just used the diode the UNO R3 used.

Interesting, do you mind explaining what the diode accomplishes in the circuit?

I will give it a try and get back to you. Thanks for the input!

I have three ATmega32A chips which require the diode, the chips just wouldn't reset properly without the diode.

The diode basically just makes the reset curve look nicer, I can't really explain what it does....But I know that it works, I now include diodes on all my standalone MCU projects.

Unfortunately, I finished the project without ever getting the USB programming to work. I just used ICSP instead.

Sorry to anyone who ends up in this thread looking for an answer.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.