Difference between revisions of "Ftdi"

From ThorstensHome
Jump to: navigation, search
Line 1: Line 1:
 
Ok for [[programming electronics]] I got myself an [[ftdi]] chip. I want to be able to invert the TX/RX/... signals so I can get some experiments working that I have on a paper.
 
Ok for [[programming electronics]] I got myself an [[ftdi]] chip. I want to be able to invert the TX/RX/... signals so I can get some experiments working that I have on a paper.
  
To do this we have to re-program the device's eeprom:
+
To do this we have to re-program the device's eeprom.
 +
 
 +
= read the eeprom =
 +
To read the EEPROM of the ftdi, use the software ftdi_eeprom.
 +
* download the software
 +
wget http://www.intra2net.com/en/developer/libftdi/download/ftdi_eeprom-0.3.tar.gz
 +
* unpack it
 +
tar xvzf ftdi_eeprom-0.3.tar.gz
 +
cd ftdi_eeprom-0.3
 +
* build it
 +
./configure && make -j4 && make install
 +
* find out your ftdi's serial ID:
 +
hwinfo --usb
 +
[...]
 +
Serial ID: "A7006Ys2"
 +
[...]
 +
* configure ftdi_eeprom to use your serial id:
 +
sed -i "s/^serial=.*/serial=\"A9VQ459E\"/" example.conf
 +
* read your chip's eeprom:
 +
ftdi_eeprom --read-eeprom example.conf
 +
* find the file name where the eeprom is stored in:
 +
ls -ltr
 +
[...]
 +
-rw-r--r-- 1 root root  128 Dec 15 12:59 eeprom.new
 +
* verify that it is really an eeprom
 +
# hexdump -C eeprom.new
 +
00000000  00 40 03 04 01 60 00 00  a0 2d 08 00 00 00 98 0a  |.@...`...-......|
 +
00000010  a2 20 c2 12 23 10 05 00  0a 03 46 00 54 00 44 00  |. ..#.....F.T.D.|
 +
00000020  49 00 20 03 46 00 54 00  32 00 33 00 32 00 52 00  |I. .F.T.2.3.2.R.|
 +
[...]
 +
 
 +
= Re-program the eeprom =
 +
To re-program the eeprom, better read it before and have a backup.
 
* download the ftd2xx library http://www.ftdichip.com/Drivers/D2XX.htm
 
* download the ftd2xx library http://www.ftdichip.com/Drivers/D2XX.htm
 
* download http://svn.icmb.utexas.edu/svn/repository/trunk/zpub/sdkpub/usbkey_dlpd/macosx/d2xx/Samples/EEPROM/write/main.c
 
* download http://svn.icmb.utexas.edu/svn/repository/trunk/zpub/sdkpub/usbkey_dlpd/macosx/d2xx/Samples/EEPROM/write/main.c

Revision as of 12:29, 16 December 2012

Ok for programming electronics I got myself an ftdi chip. I want to be able to invert the TX/RX/... signals so I can get some experiments working that I have on a paper.

To do this we have to re-program the device's eeprom.

read the eeprom

To read the EEPROM of the ftdi, use the software ftdi_eeprom.

  • download the software
wget http://www.intra2net.com/en/developer/libftdi/download/ftdi_eeprom-0.3.tar.gz
  • unpack it
tar xvzf ftdi_eeprom-0.3.tar.gz
cd ftdi_eeprom-0.3
  • build it
./configure && make -j4 && make install
  • find out your ftdi's serial ID:
hwinfo --usb
[...]
Serial ID: "A7006Ys2"
[...]
  • configure ftdi_eeprom to use your serial id:
sed -i "s/^serial=.*/serial=\"A9VQ459E\"/" example.conf 
  • read your chip's eeprom:
ftdi_eeprom --read-eeprom example.conf 
  • find the file name where the eeprom is stored in:
ls -ltr
[...]
-rw-r--r-- 1 root root   128 Dec 15 12:59 eeprom.new
  • verify that it is really an eeprom
# hexdump -C eeprom.new 
00000000  00 40 03 04 01 60 00 00  a0 2d 08 00 00 00 98 0a  |.@...`...-......|
00000010  a2 20 c2 12 23 10 05 00  0a 03 46 00 54 00 44 00  |. ..#.....F.T.D.|
00000020  49 00 20 03 46 00 54 00  32 00 33 00 32 00 52 00  |I. .F.T.2.3.2.R.|
[...]

Re-program the eeprom

To re-program the eeprom, better read it before and have a backup.

gcc -o write main.c -L/root/Downloads/release/build/x86_64/ -lftd2xx -lpthread -ldl -lrt -Wl,-rpath,/usr/local/lib
  • remove the ftdi_sio driver
modprobe -r ftdi_sio
  • disconnect all other FTDI chips
  • call the program to re-write the device's eeprom:
./write

See also