Table of Contents
MIGHT
MIGHT | |
---|---|
founder: | nephirus |
depends on: | |
interested: | |
software license: | |
hardware license: |
~~META: status = finished &relation firstimage = :project:gpib1.JPG ~~
MIGHT stands for Multi-Interface GPIB Handling Tool. Its purpose is to provide a way to control GPIB enabled devices using more common interfaces (i.e. Ethernet, USB, I2C, SPI, etc.). GPIB interface can be found on many lab tools - power supply units, signal generators, multi-meters, oscilloscopes, etc. Unfortunately, commercially available controllers cost from $150+ (low-end) to several thousand dollars (hi-end). Thus not many hobbyists can afford those. MIGHT aims to be low-cost device, so you can spend your money on some more important stuff .
Hardware
Current version (mk3) uses LM3S9U96, which is sold in reasonable quantities, and has USB host support, CAN interface and Ethernet. PCBs are from Seeed Studio Fusion PCB service ($25 for 10 boards).
add photos
Programming the MCU
Stellaris microcontrollers are either factory-programmed with serial flash bootloader or have bootloader in ROM. ROM bootloader is loaded if the flash memory is empty or when conditions specified in BOOTCFG register are met.
TI provides a flash programming utility (Windows-only though). If you want to implement your own loader, there is an application note describing the protocol used for communication with bootloader.
If you somehow screwed up the bootloader (or you are just uncomfortable with using serial port), you can use JTAG interface. There are plenty of JTAG adapters to be found on the Internet, you'll probably want one with OpenOCD support.
JTAG flash programming example
Launch OpenOCD with proper arguments (substitute flossjtag-noeeprom.cfg with config for your programmer).
nephirus@anachronos:~> openocd -f /usr/share/openocd/scripts/interface/flossjtag-noeeprom.cfg -f /usr/share/openocd/scripts/target/stellaris.cfg
Connect to OpenOCD daemon.
nephirus@anachronos:~> telnet localhost 4444
Flash the image.
halt flash write_image /path/to/image.bin
Known issues
LDO and VDDC pins are not connected on board
Due to confusing description of pin function in System Design Guidelines for Stellaris Microcontrollers, VDDC power rail is not connected to internal LDO output.
Solution
Connect pins 7, 38, 88.
Repository
Sources can be found at my Github repo.
Gallery
Previous versions
mk1
Proof-of-concept version. mbed-based board. mbed was chosen for its on-board Ethernet PHY chip. First prototype was able to communicate with oscilloscope Tektronix TDS 2002, using serial port or Ethernet on PC side.
However, mbed environment is not quite user-friendly (one has to choose between GCC-based toolchain with only basic libraries and awful online IDE with many libraries), so this approach was abandoned for TI Stellaris-based board.
add photos
mk2
Second version was built around LM3S8938. Unfortunately, there were some issues with vias on homemade dual-sided PCB which led to development of third version.
add photos