i'm building a watchdog for a large robot system. the project is based around a 328p that will be on a custom board. the chip will be powered by an independent 1s2p lithium ion battery and is fully isolated from the entire system using digital isolators for input and optocoplors for output.
to the system i'm adding a ftdi ft230x chip for debugging and charging the battery. from what i understood in the ft230x data sheet the ftdi can request full usb power from the host and when enumeration completes can activate a p-fet to feed power to the rest of the system so as not to exceed the 100ma max usb current before enumeration.
normally we use isp programmers to program all of our devices. because the board would already contain a ftdi chip i also want to incorporate serial programming like an UNO board. what i'm not sure about is how avr dude generates the reset command before programming. from looking at schematics of the UNO board there is a pull up on the reset line and a capacitor connected to the serial chip used for programming.
the ftdi chip had 4 programmable pins. one will be used to activate the P-fet. two are used for the indicator LEDs for RX and TX status.
is it possible to use the final output to generate the reset and to what event is the reset tied to?
That capacitor to the reset is the DTR signal.
Both the DTR and RTS signal are issued when the Arduino boards needs to be reset.
Using the DTR signal means that the Arduino is also reset when a serial monitor is opened.
Using the RTS signal does not reset the Arduino with serial monitor, but still resets when uploading a sketch.
The (virtual) serial port via usb does not only support the serial data RX and TX, but also the control signals like RTS and DTR. However the FT230X does not support DTR according to the datasheet, but it does support RTS. So you can use that since the Arduino IDE toggles both.
i understand that the trigger is usb generated but what is that trigger?
DTR/RTS are "modem control" signals. The original auto-reset relied on the fact that a unopened serial port on most desktops has DTR "false" (the port is NOT READY), and when a program opens the port, it becomes "true"; the transition is "detected" by the reset capacitor in the arduino, and causes the chip reset.
More recent versions of avrdude have explicit code to toggle the DTR/RTS pins.
These schemes should work fine with an FT230x rather than the FT232RL, but you may have to ensure that the chip is configured to supply the DTR or RTS signal. IIRC, that's not the default for the 230x.
It's substantially "kludgey", and causes the avr to reset whenever the serial port is manipulated on the PC side. I'm not sure that I'd use that circuitry in a production device that is seldom reloaded with software; a manual reset/bootloader switch might be more appropriate.