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!