====== Bitbang-JTAG: universal homebrew USB-programmer ====== Chip [[http://ftdichip.com/Products/FT232R.htm | FTDI FT232R]] has a special mode named "synchronous bit bang". It could be used for implementing fast serial interfaces like SPI or JTAG. Bitbang mode is described in application note {{http://ftdichip.com/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf | "Bit Bang Modes for the FT232R and FT245R"}}. There exist several starter boards based on FT232R, for example [[http://chip-dip.ru/product0/9000043502.aspx | MMUSB232RL]] or [[http://www.sparkfun.com/commerce/product_info.php?products_id=718 | FT232RL Breakout]]. {{mmusb232rl.jpg}}{{ft232rl-breakout.jpg}} Using these boards, one could easily build a simple JTAG programmer, for example: {{prog-mcusb-sch.png}} Example of openocd.cfg for Olimex SAM7-EX256 board: # Daemon configuration #~~~~~~~~~~~~~~~~~~~~~ telnet_port 2001 gdb_port 2000 # Interface #~~~~~~~~~~ # We use homebrew usbjtag-compatible schematics # based on FT232R Breakout board from SparkFun.com. interface ft232r ft232r_device_desc "FT232R USB UART" ft232r_vid_pid 0x0403 0x6001 # Target configuration #~~~~~~~~~~~~~~~~~~~~~ source [find target/sam7x256.cfg] Patch for OpenOCD: debugger is available here: {{openocd-ft232r.pch.gz}}.