A C-language computer program implemented as firmware controls the operations of a microprocessor on a 3-by- 1-inch (approximately 76-by-25-mm) motion-control circuit board denoted a widget board. The firmware implements a serial communication interface according to the inter integrated circuit bus (I2C) standard by use of an interrupt-driven state machine to enable communication to occur during execution of commands. The firmware also controls the operation of a motion- control integrated-circuit chip, a serial analog-to-digital converter, a serial digital-to-analog converter, and the digital input/output lines of the microprocessor. The digital input/output control portion of the firmware offers a masking capability. The firmware includes a provision for dynamically downloading, to the widget board, of a small program (limited to 12 lines and to 256 bytes). A microexecutive program executes the downloaded program in a loop, with the option of continuous looping. The execution of the downloaded subprogram can be interrupted at the user’s request. The widget firmware includes a set of more than 48 commands, 24 control operations, and 24 query operations.

This program was written by Issa Nesnas of Caltech for NASA’s Jet Propulsion Laboratory. NPO-30243



Magazine cover
Motion Control Tech Briefs Magazine

This article first appeared in the April, 2002 issue of Motion Control Tech Briefs Magazine (Vol. 26 No. 4).

Read more articles from the archives here.