Current driver:Current driver
*UPDATE* A limited number of populated Revision C 8ch amplifier boards are now available on an open source basis. Please contact us if you would like us to send you amplifier boards for your research projects.
In collaboration with Jacob White, Nicolas Arango, and Irene Kuang at MIT, we have developed a low-cost 8-channel digitally-programmable current driver that can supply up to 8 amps DC per channel (up to 60 volt output). The circuit board design and control software were created by Nicolas Arango and Irene Kuang.
The board is intended as a scalable solution for supplying current to matrix shim coil arrays that require an independent, dynamically-switchable current driver for each shim coil element. Cost per channel is ~$75. The circuit uses a simple feedback control topology built around OPA549 linear power stage op amps in a push-pull configuration. The voltage across a current sense resistor is sensed in the feedback topology to allow control of the actual current output to the load. The resistors and capacitors in the feedback loops can be adjusted to ensure stability for driving a particular load impedance. With the component values used in the board files (see below), the feedback loop compensation elements is set up to compensate a 10 uH reactive load. The design retains sufficient gain in the audio frequency range to reject disturbances caused by gradient coil switching in the MRI scanner environment. The end result is a stable output current (>45 deg phase margin) with ~50us rise time and very good disturbance rejection for maintaining stable shim currents during MR acquisitions. The outputs of each channel can be tied together to increase the current beyond 8 amps. For most loads, heat sinking the OPA549s is required since most of the voltage drop (and heat dissipation) will occur inside these ICs.
The board, as configured will work up to 25V. For higher voltage operation (up to 60V) higher voltage capacitors must be used and some digital circuitry must be removed. A version with "no-stuff" declarations for 60V operation is in progress.
An 8-channel 16-bit DAC is used to update the current setting on each channel. The current sense resistor voltage drop is buffered and sent to an ADC so that the output current on each channel can be monitored by computer. Presently the board is controlled using a Raspberry Pi device with a T-cobbler breakout board.
Update (July, 2018): Revision C of the board files is now available! See below for details.
Please contact us for more details:
Jason Stockmann: firstname.lastname@example.org
Nicolas Arango: email@example.com
Click here to download Eagle files and GERBER files for Revision C, Version 6 of the amplifier set up. This release fixes several bugs on the fiber optic interface board: (1) Diode polarity on power supply line was flipped, (2) Pin 1 on the 74HCT244 buffer was not grounded, and (3) The 74LS151 buffers have been updated to 74HCT151. The download package includes: (a) 8ch amplifier boards, (b) fiber optic interface board, (c) Arduino Teensy daughter board for interfacing with a PC. Control software is also included for using an Arduino Teensy 3.5 to control the shim amplifiers from a PC.
Click here to download slides describing how to assemble the needed components for using the shim amplifier boards, and other practical details. The Powerpoint slides also discuss how to use the Teensy microcontroller serial controller interface.
In addition to the Quick Start guide, please read the startup notes which include pointers on setting up the Teensy control software.
NOTES ON OLD BOARD RELEASES
Obsolete board release from July 2018 is available for download here (Rev. C, Version 4): Click here
Info related to Rev. A of the board (now obsolete): Click here to download Eagle board file and schematic as well as GERBER files for board fabrication. A Matlab script is also included in the download for modeling the step response and transfer function of the analog stage (Bode plot). This software can be used to figure out the correct compensation circuit values to use for a particular load. Typically the compensation is adjusted by changing two capacitors in the feedback loop.