Hi all,
I'm playing around with trying to use an FTDI-232RL to act as an ICSP.
I've looked all over the web, I've looked at the AVRDUDE config file, downloaded the FTDI datasheets, ad-nauseaum and still can't seem to get anywhere.
I even found that the older Arduino boards that have an FTDI chip and the 4 extra header pins is supposed to work as a programmer (and I have a Duemilanove board!). I tried both the Duemilanove board and an FTDI breakout board.
I've figured out the FTDI chip pin number to Bit-Bang I/O bit number to RS-232 pin mapping (for example, bit 0 is chip pin 1 is TXD) and this matches what I found on the web and what's in the AVRDUDE config file.
Anyway, it "sorta" seems to work in that the setup is able to READ the signature off the AVR, but it won't go further. I tried a simple chip erase using this command line:
[b]avrdude -c arduino-ft232r -P usb -p atmega2560 -s -e -v -v
[/b]
and I get this back from AVRDUDE:
```
**avrdude: Version 6.1, compiled on Jan 8 2016 at 10:55:26
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/usr/local/etc/avrdude.conf"
User configuration file is "/root/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : usb
Using Programmer : arduino-ft232r
Overriding Baud Rate : 115200
ft245r: spi bitclk 115200 -> ft baudrate 230400
AVR Part : ATmega2560
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : ftdi_syncbb
Description : Arduino: FT232R connected to ISP
Pin assignment : 0..7 = DBUS0..7
VCC = (not used)
BUFF = (not used)
RESET = 7
SCK = 5
MOSI = 6
MISO = 3
ERR LED = (not used)
RDY LED = (not used)
PGM LED = (not used)
VFY LED = (not used)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1E9801
avrdude: safemode: lfuse reads as 0xF7
avrdude: safemode: hfuse reads as 0xDC
avrdude: safemode: efuse reads as 0xFC
avrdude: erasing chip
avrdude: Program enable command not successful. Retrying.
avrdude: Program enable command not successful. Retrying.
avrdude: Program enable command not successful. Retrying.
avrdude: Program enable command not successful. Retrying.
avrdude: Device is not responding to program enable. Check connection.
avrdude done. Thank you.**
```
Notice the line highlighted in red... it seems like AVRDUDE thinks my chip is a 245r when in fact it's a 232r (those have different pinouts).
It seems like it's trying to work, but it just won't go. I looked at the signal lines with a scope and didn't see what I expected to see. With my Atmel ISPMKII (a real one, not a clone), RESET goes solid low, MOSI and MISO scamper up and down at the bitclock rate and SCK sends out nice, as expected, 8 usec pulses... 8 per byte. But the FTDI chip just seems to spit out random trash on all the lines. There is nothing that looks "right".
So, has anyone ever tried this (and gotten it to work)? I know my FTDI devices are all good... they work in their intended applications. I'm sure that I'm "close" to the solution, but it's starting to give me a headache and I don't want to give up.
Anyone??? HELPPPPPPPPPPP!!! Please!
Thanks!