Electronic – auto reset an Arduino using ftdi – DTR signal stays low and needs to go high after 1-50ms

ftdi

Hello i have a cheap ftdi that i am going to recreate on a pcb so i can flash my ATmega2560 chip onboard, the ftdi has a DTR line which is pulled low when the sequence starts but it stays low instead of going low then high after 1ms to 50ms, so i need to find out how i could create a simple circuit which when is pulled low then goes high, how can i do this, i have some simple components to hand.

my stocked parts:

103 ceramic caps

25uF aluminium caps

220uF aluminium caps

some blue ceramic caps labeled "10"

practically all common resistors values

5v zener diodes

5v switching diodes

npn transistors

n channel mosfets

5v reflecting diodes

can i make something using those ? Else I can get what's needed.

Many thank from Edwin


Sorry it's an atmel atMega 2560 chip on a pcb i have the serial lines and reset,5v,ground and two gpios on a pin out. So I can only flash with a ftdi. And my ftdi DTR line stay low and i need to just pluse the rest line so I need to figure out how to use this low signal to pull the reset low but then high right after.

IF I was to try this on my arduino Mega or Uno holding down the reset does not work it's a pulse going low then high to load the boot manager. So hence the dfti DTR staying low will not work if directly connected to RST.

Best Answer

This is the schematic of the Arduino pro mini and take a look at the reset mechanism:

enter image description here

There are two ways to reset the device: By holding down the reset push-botton/switch or by driving the line (DTR or RTS) low.

Note: Some applications for arduino use DTR, others use RTS, but both seem to work. I used RTS and had no issues.

Now, back to the reset. When the DTR/RTS is pulled low, the capacitor, \$C_2\$, starts to charge up from zero to the \$V_{cc}\$ value. This is essentially asserting a reset, because the time it takes to reach logic one (maybe 0.7*Vcc), is enough for the micro to interpret it as a logic 0 (up to 0.3*Vcc).

Also, usually the FTDI applications use pullup resistors connected to the DTR/RTS lines since these are open drain. Like this one:

enter image description here

The pullup is not mandatory in this case because the Pro Mini, has one on board on its reset pin, but it doesn't hurt either.

Like I said, DTR or RTS may work, I am speaking based on my personal experience with this but that's how I got it to work. Also, it seems like Arduino supports the use of either, just test it out and see what happens.

I found all the images on the SparkFun website. The FTDI image is for the 'FTDI cable' which uses the RTS line. The 'FTDI breakout' board, as they call it on there, uses the DTR line instead and no pullups...

Arduino Pro Mini

FTDI Cable

FTDI Breakout board