|
. .
|
WG18: Hardware Description |
We offer a range of PC interface cards, not only readily available but affordable and easy to program. Besides we offer ready-to use software packages for free.
Programming of our DMX512 interfaces cards is really simple. Here are the few steps to get things running.
| FEATURES 2512A |
|
| THIS SITE IS CURRENTLY UNDER CONSTRUCTION keep watching - it may change frequently. last updated: 18.12.2000 |
The installation requires the following files, which should be copied to a temporary directory or to a floppy disk:
download WIZARD program file (approx. 38 kB)
FOR WINDOWS 95, 98, ME
FUNCTION CHECK
To test proper functioning of the interface, the WIZARD program can be used. The WIZARD program checks the presence of the PCMCIA interface and reports the memory block base address.
PROGRAMMING
The interface occupies a 4 kB block of memory in RAM and can be accessed by means of the VxD driver. Within this memory area, all registers and DMX in/out data areas can be accessed. The document Programmer's Manual is available as PDF file (approx. 23kB) and lists all registers.
The card is interfaced to the user program as a simple 2KB memory range, based at offset 0x800 into a 4KB virtual memory page whose address is returned to the application by the Windows driver. All program accesses to the card should be performed at BYTE level, with no other addressing restriction whasoever.
| Memory (Offset) | Type | Value(s) | |
| 0x800 | Uchar | Ready flag (set to F0h by CPU after reset) | |
| 0x801-0x80A | Char | Signature ("DMXOEM1 " in ASCII) | |
| 0x80B | Uchar | CPU Version High | |
| 0x80C | Uchar | CPU Version Low | |
| 0x80D | Uchar | CPU Mode (link 0/ link 1)
0 : idle/idle (default) 1 : DMX out / Idle (Out/Idle) 2 : Idle / DMX in Link 1 (Idle/In) 3 : DMX Out Link0 / DMX In Link 1 (Out/In) 4 : DMX Out Link 0 / DMX Out Link 1 (Out/Out) 5 : DMX In Link 0 / DMX In Link 1 (In/In) | |
| 0x80E | Uchar | DMX out startcode Link 0 | |
| 0x80F | Uchar | DMX out startcode Link 1 | |
| 0x810-0x811 | Uint | DMX out channel count (common Link 0 and Link 1) | |
| 0x812-0x813 | Uint | Break time (in 0.5 micro seconds) - default value is 200 | |
| 0x814-0x815 | Uint | DMX out break count (common Link 0 and Link 1) | |
| 0x816-0x817 | Uint | MBB Idle time (in 0.5 microseconds) - default value is 0 | |
| 0x818 | Uchar | DMX in startcode Link 0 (Not updated in mode 5) | |
| 0x819 | Uchar | DMX in startcode Link 1 (Not updated in mode 5) | |
| 0x81A-0x81B | Uint | DMX in channel count Link 0 | |
| 0x81C-0x81D | Uint | DMX in channel count Link 1 | |
| 0x81E-0x81F | Uint | DMX in break count Link 0 (Not updated in mode 5) | |
| 0x820-0x821 | Uint | DMX in break count Link 1 (Not updated in mode 5) | |
| 0x822-0x9FF | Reserved | ||
| 0xA00-0xBFF | Uchar | DMX Out Values Link 0 DMX In Values Link 0 | |
| 0xC00-0xDFF | Uchar | DMX Out Values Link 1, DMX in values Link 1 | |
| 0xE00-0xFFF | Reserved | ||
| NOTE : All integers must be stored as MSB,LSB. |
| Ready Flag | This flag will be set to f0h by the CPU as it resets. The PCB has a watchdog circuit on board. Use this flag to monitor for unexpected CPU resets by overwriting with another value. |
| CPU Mode |
Use this flag to select which mode the CPU should run. Allow up to 0.5 seconds for the CPU to switch to a new mode.
Mode = 0, Idle The CPU does nothing. Default mode after CPU reset. Mode = 1, DMX Out / Idle Transmits DMX on link 0. Transmission update rate is approx. 43 Hz when all 512 channels are transmitted and default break/idle times are used. Mode = 2, Idle / DMX In Receives DMX on link 1. Mode = 3, DMX Out / DMX In Transmits DMX on Link 0, Receives DMX on link 1. Update rate is approx. 43 Hz when no DMX is received and all 512 channels transmitted with default break/idle length. The rate will be slightly lowered when DMX is received. Mode = 4, DMX Out / DMX Out Transmits DMX on both links. Transmission update rate is approx. 40 Hz with default break length. |
| DMX out startcode (link 0/ link 1) | Start code for next DMX packet. Defaults at 0, same for both links (similar as 1512C card). |
| DMX out channel count | Number of DMX channels transmitted. Defaults is 512 - do not use values higher than 512. |
| Break time | Variable Break length in 0.5 microseconds , do not use values below 176 (88 micro seconds). Default value is 200 (aprox 100 micro seconds), larger values will lead to slower update frequencies, 0xffff will lead to an update frequency of approx. 17 Hz with all 512 channels transmitted and default idle time is used. |
| DMX out break count | Counts the number of transmitted DMX packets. Rolls over at FFFFh. The values is updated at the beginning of every DMX-break. |
| MBB Idle time | Variable idle length in 0.5 microseconds . The MBB (Mark before Break) idle time is the time after the last channel value has been transmitted, but before the next BREAK. Default is 0. Larger values will lead to slightly slower update frequencies, but may improve the performance of some of the attached devices. 0xffff will lead to an update frequency of approx. 17 Hz with all 512 channels transmitted and default break time is used.. |
| DMX in startcode (Link1) | Start code / Id byte for last received DMX packet - the software will receive regardless of value of startcode. This value is not maintained in mode 5 (in/in) |
| DMX in channel count (Link 1) | Counter that counts the number of incoming DMX channels in each packet. Value is reset to 0 if no DMX has been received for approx. 1 second. |
| DMX in Packet count (Link 1) | Counts the number of incoming DMX packets. Rolls over at FFFFh. Value is reset to 0 if no DMX has been received for approx. 1 second. This value is not maintained in mode 5 (in/in) |
| DMX out Values | 512 bytes of DMX values to be transmitted. |
| DMX in Values | Last 512 bytes of DMX values received. |
The main purpose of the PCMCIA Card driver is to allocate the card memory in the system and return the virtual memory address where Windows has mapped the card to the application (with an IOCTL function). In this case after the driver call the application can use a simple memory mapped interaction with the card, with the only precaution that the PCMCIA DMX Card only supports 8-bit accesses. The driver provided supports up to 2 PCMCIA DMX Cards in 2 PCMCIA sockets.
The driver provides an IOCTL function that returns the physical position of the card (Socket 1 or 2). Note that there is no established standard on Laptops regarding the mutual position of the sockets; socket 1 being either the upper or the lower socket.
Have Fun experimenting with the 2512A PCMCIA DMX512 Interface! We always welcome your Comments. Application Examples and Demos. Just mail to
MORE INFO ON DMX EQUIPMENT:
| Measuring and Testing Equipment for Lab and Road Use | |
| DMX/Analog Decoder, Relay- and Dimmer-cards | |
| SOUNDLIGHT DMX Glassfiber Technology |