230 likes | 851 Views
DMX512 Programmable Theater Lighting Controller. Jeff Sand and Kris Kopel Advisor: Dr. Don Schertz May 8, 2001. Outline. Objectives Digital Lighting Control Overview System Block Diagram (Hardware) Firmware Software Results. Objectives.
E N D
DMX512 Programmable Theater Lighting Controller Jeff Sand and Kris Kopel Advisor: Dr. Don Schertz May 8, 2001
Outline • Objectives • Digital Lighting Control Overview • System Block Diagram (Hardware) • Firmware • Software • Results
Objectives • Generate DMX512 output to control lighting devices • Enable PC control to change dimmer levels • Develop USB platform for future use • Write commercial quality firmware, driver, and windows software • In short, Design a complete marketable system using a top down approach
Digital Theatrical Lighting Console Lights Dimmers Lights DMX512 Lights Dimmers Lights Intelligent Luminaries
DMX512 Protocol • United States Institute for Theatre Technology (USITT) standard • Controls up to 512 dimmers/devices • Serial and asynchronous bitstream • 250 kbits/s • RS-485 physical implementation • 32 nodes on one chain
System Block Diagram Motorola 68376 mController Input Blocks Personal Computer USB Transceiver Philips PDIUSBD12 RS485 Driver MAX483 DMX512 Output
Microcontroller Interfaces • Data bus, chip selects, and external IRQ used for USB transceiver • Queued Serial Module (QSM) • Serial Communication Interface (SCI) for DMX output • Queued Serial Peripheral Interface (QSPI) for input blocks • Internal RAM for data storage • EPROMs for program code • Background Debug Mode (BDM) for development without a monitor program
Input Block QSPI Control Lines Serial A/D MAX148 Fader Inputs Out to mController QSM Module Latch 74373 Serial Shift Register 74166 Momentary Push Buttons
Firmware • Written in assembly language • Interrupt driven • DMX512 output • Fader/Button data acquisition • USB Communication over data bus • Main program loop for standalone mode only
SCI Interrupt Routine DMX Output Status? break data mark start End Break Start Break Output Start Code Last Channel? no yes DMX Output Status <- Start DMX Output Status <- Break Set Timer DMX Output Status <- Mark DMX Output Status <- Data Output Data Byte Exit ISR
QSPI Interrupt Routine Read/Clear Status Register Faders or Buttons? Read all Buttons Buttons Faders Read 8 Faders yes Last Fader Block? Reprogram QSPI for Buttons Reprogram QSPI for Faders no Increment Chip Selects Re-Enable QSPI Exit ISR
USB Interrupt Routine Bus Reset Handle Reset Read interrupt register Suspend Change Handle Change no Data Endpoint In Data left to send? Send it yes Data Endpoint Out Read Data into Buffer no Control Endpoint In Data left to send? yes Send it Control Endpoint Out Exit ISR Set Address Device Descriptor Get Descriptor Configuration Descriptor String Descriptor
Windows Driver • Windows kernel mode USB driver • Recognizes and initializes device • Registers device with Windows to be accessed by user applications • Handles reads from/writes to device • Plug n Play and Windows power management compatible
Windows Software • Three modes of operation • Direct fader control • Software dimmer “patching” • Programmed lighting queues • Uses Windows common controls • Uses Windows timers
Results • Completed DMX512 Output (Hardware and Firmware) • Adjustable number of channels • Proper output frequency • Completed Input Blocks (Hardware and Firmware) • Buttons, Faders, and control circuitry wire wrapped onto panel • One master block and two 8 channel scenes • Firmware capacity for 128 faders and buttons
Results • Wrote a firmware routine for direct external fader control with master control, two scenes, and crossfade • Implemented USB firmware (all functions necessary for this device) • Interfaced USB peripheral chip with microcontroller on data bus • Master power switch
Results • Wrote functional Windows kernel mode driver • Wrote windows user application • Currently does not properly interface with driver • Tested complete unit with DMX light and it worked perfectly • We plan to test the device in the Bradley theater in the near future