I am a big fan of FTDI ..
Ok where to get the board ..
FT232B/R -> does not have mpsse support , dont buy this ..
FT2232D-> USB full speed device -> polling range 800 -1000 times per sec
FT2232H -> High speed device -> Polling range 6000 times per sec..
FT4232H -> should work like FT2232H , haven't tested yet
FT232H -> New one I guess
Buy this FT2232H Mini-Module
Now where to get , element14.com , Digikey.com ...may be you can buy directly from FTDI
For Indian users can buy it from
http://shop.ngxtechnologies.com/product_info.php?products_id=30 -> 1200RS , which is cheap & best in the market ... FT2232D
Remove c10 to c15 capacitors , which are on the high speed data lines ,,, I guess , It is a design flaw ..( Only for NXG ARM USB JTAG)
Another one schematic is here
http://www.ethernut.de/pdf/turtelizer20c-schematic.pdf
Ok where to get the board ..
FT232B/R -> does not have mpsse support , dont buy this ..
FT2232D-> USB full speed device -> polling range 800 -1000 times per sec
FT2232H -> High speed device -> Polling range 6000 times per sec..
FT4232H -> should work like FT2232H , haven't tested yet
FT232H -> New one I guess
Buy this FT2232H Mini-Module
Now where to get , element14.com , Digikey.com ...may be you can buy directly from FTDI
For Indian users can buy it from
http://shop.ngxtechnologies.com/product_info.php?products_id=30 -> 1200RS , which is cheap & best in the market ... FT2232D
Remove c10 to c15 capacitors , which are on the high speed data lines ,,, I guess , It is a design flaw ..( Only for NXG ARM USB JTAG)
Another one schematic is here
http://www.ethernut.de/pdf/turtelizer20c-schematic.pdf
For JTAG pin details for your chip refer the manual..
I have used NXG ARM USB JTAG & Atmega 16
Install FTDI drivers http://www.ftdichip.com/Drivers/D2XX.htm
Wire it up TCK, TDI ,TDO,TMS ... RST not required ...
Incase you encounter libusb error , just install filter driver ...
libusb-win32-devel-filter-1.2.6.0.exe ... Restart the PC ..
BSDL file is not in the list ... So download it from atmel
put it on the c drive ...
Now we will make the pins Set to 1 & zero ...
Jtag>instruction EXTEST
jtag>shift IR
jtag>set signal PB(1) out 1
jtag>shift DR -> Now the output will be high
jtag>set signal PB(1) out 0
jtag>shift DR -> Now the output will be zero
How to read a pin ? Any configuration needed to set the pin as input before reading ?
ReplyDeleteWhat happens if the pin i am trying to read can only be an output pin ?
1.download the bsdl file from the chip manufacturer,if not available you can ask them..
ReplyDeletethe pin information's " PB(1) , PB(2)" can be found in the bsdl file ..
please note that this information will change according to your processor ..
for example atmega16 PORTB
" 96 ( BC_7 , PB(0) , bidir , X , 95 , 0 , Z )," &
" 93 ( BC_7 , PB(1) , bidir , X , 92 , 0 , Z )," &
" 90 ( BC_7 , PB(2) , bidir , X , 89 , 0 , Z )," &
......
2.then command "cable ft2232"
3.Load the BSDL file path " bsdl path c:\ "
3."detect" this should identify your chip
4.then use the above instructions
5.To read the value use "get" command , for further commands details pls refer
http://urjtag.org/book/_jtag_commands.html
This comment has been removed by the author.
ReplyDeleteThanks @Varghese, I am able to read/write boundary scan from a Xilinx CPLD chip using a FT4232 module.
ReplyDeleteRight now I enter the commands manually--one at a time.
Is there a way to control the sequencing from a host program (Eg C# or Python etc ?
I think you can do DOS "console command redirection" , but I haven't tried yet .. Let me give a try :).. something like this .. http://www.codeproject.com/Articles/5531/Redirecting-an-arbitrary-Console-s-Input-Output .. I usually work on VC++ , I guess there should be some .Net equivalent ..
ReplyDeleteI have read your blog it is very helpful for me. I want to say thanks to you. I have bookmark your site for future updates.
ReplyDeleteJTAG