You are currently browsing the tag archive for the ‘JTAG’ tag.
Michal Demin posted a tutorial for the OpenOCD JTAG debugging support he added to the Bus Pirate.
Some time ago, I have added support to OpenOCD to be able to use Buspirate as JTAG interface. This how-to will show you, how to setup all the things necessary.
Things you will need:
– Computer with OpenOCD installed
– target with JTAG
– luck 🙂
Firmware is only half of the equation though, OpenOCD doesn’t yet support the USBPROG protocol over a (virtual) serial port like the Bus Pirate uses. There are about 8 instances of USB read and writes in the USBPROG OpenOCD patch than need to be changed to use a serial port, plus some serial port initialization functions. Any help and feedback is always appreciated, feel free to use the Bus Pirate OpenOCD support forum.
The current plan is to port the excellent work done by the USBPROG project to the Bus Pirate. Here are some tentative goals:
- Port the AVR/USB-based microcontroller code from USBPROG to the Bus Pirate. Modify the code to work through the PIC serial port.
- Add a Bus Pirate device to OpenOCD based on the existing USBPROG source code. Modify the code to write and read through a serial port.
- Add message header, checksum to the existing USBPROG protocol.
JTAG debugging support via OpenOCD is an exciting new feature. We hope to have a firmware for developers and testers in the next few days. Any help and feedback is always appreciated, feel free to use the Bus Pirate OpenOCD support forum.
Thanks for the tip (and photo) Uwe!
Today we’re highlighting JTAG. It would be ideal to have Bus Pirate support in the popular open source JTAG programmer OpenOCD, but other solutions are also fine. It should be possible to adapt an existing parallel port or FTDI232 JTAG wiggler mode to flip bits in a byte and send it to the Bus Pirate bitbang binary mode. We could also develop a separate binary JTAG library if requested.
A JTAG programmer that supports the Bus Pirate is currently the most-requested feature addition. Early firmwares had a terminal-based XSFV programmer from Xilinx, but it required specially compiled XSFV programming files and funky flow control.
Firmware v2.x removed the XSFV programmer, but added a new binary access mode that can be used with PC-based JTAG programmers. This is a much better solution because it lets the PC do any heavy lifting, the Bus Pirate simply twiddles pins.
Thanks to bluesign2k for the unboxing picture.
Here’s a comprehensive list of Bus Pirate chip demonstrations. It includes Ian’s old demonstrations from Hack a Day, and the most recent demos from Dangerous Prototypes. Tutorials are arranged by Bus Pirate hardware version.
Bus Pirate v2&v3
- Firmware v0g new feature demonstration
- PCF8563 real time clock calendar (I2C)
- ShiftBrite with A6281 3 channel LED driver (SPI)
- 25AA/25LC serial EEPROM (SPI)
- NA204SD02 Futaba VFD character display (raw2wire)
- 3EEPROM explorer board, DS2431 (1wire), 24AA (I2C), 25AA (SPI)
- HD44780 character LCD adapter (LCD)
Bus Pirate v1a
- LTC2640 digital to analog converter (SPI, raw3wire)
- LTC2631A digital to analog converter (I2C)
- PC keyboard (PC Keyboard)
- DS1807 audio volume potentiometer (I2C)
- 23K256 32K serial SRAM memory (SPI)
- SparkFun 4×4 RGB button pad controller (raw3wire)
- DS1801 audio volume potentiometer (SPI)
- MCP6S26 programmable gain amplifier (raw3wire)
Bus Pirate v0a
- 24LC1024 EEPROM (I2C)
- EM406 GPS (UART)
- SLE4442 (FedEx Kinko’s) smart card (raw2 wire)
- DS1077 133MHz programmable oscillator (I2C)
- XC9572XL CPLD (JTAG)
- DS1822 temperature sensor (1-Wire)
- PCF8574 IO Expander (I2C)
- DS2431 1K EEPROM (1-Wire)
- SHT1x/7x humidity and temperature sensor (raw2wire)
- TC74 temperature sensor (I2C)