Zum Inhalt springen
Progress Bar
34%

SPI Commands

The available SPI commands are listed in the table below.

CommandBinary ValueDescription
WRITE_REG01AAAAAAWrite register value, AAAAAA is 6 bit register addres
READ_REG00AAAAAARead register value, AAAAAA is 6 bit register addres
READ_DMX10000001Read most recent DMX frame. No tearing is allowed, so the frame must be double-buffered on Vision Controller chip. When DMX settings changed may not use actual frame and read more bytes. [Must be read if source is VISION PROTOCOL]
READ_RDM10000011Read most recent RDM frame. After all message bytes are transferred, any more bytes are considered invalid. Use Message Length field of RDM frame to determine packet size. [Must always be read]
READ_DFU10000111Read DFU Packet. Each Packet has a unique ID number. Length is variable up to 200Byte. Development app uses 128 Byte. packetNr is stored in Big Endian not Little Endian!
WRITE_DMX10010001Write DMX frame. Frame is complete when CS is going high [Only if source is not VISION PROTOCOL]
WRITE_RDM10010011Write RDM frame. Frame is complete when CS is going high
WRITE_DFU10010111Write DFU Response after Start, Packet, Stop
NOP11111111No-operation.

WRITE_REG

This function is used to write to a specific register.

READ_REG

This function is used to read to a specific register.

READ_DMX

This function must be used to derive input values for VISION PROTOCOL as selected input source. The data stream is defined as the following:

data[0]data[1]data[2]data[2]data[512]
iQ.dmxModedmx[1]dmx[2]dmx[3]dmx[512]

READ_RDM

Raw RDM byte stream. After all message bytes are transferred, any more bytes are considered invalid. Use Message Length field of RDM frame to determine packet size.

READ_DFU

Function for reading firmware packets.

data[0]data[1]data[2]data[2]data[202]
packetNrpacketNrdata[0]dmx[1]dmx[200]

Each Packet has a unique 16bit ID number. Length is variable up to 200Byte. Development app uses 128 Byte. packetNr is stored in Big Endian not Little Endian! (Legacy Mode)

WRITE_DMX

Used for writing the fixtures DMX input to this register. This can be used to diagnose the dmx input of the fixture or to transmit the dmx frame over Vision Protocol. Use a maximum refreshrate up to 20ms. [Only if source is not Vision Protocol]

SPI Register Map

REGISTER MAP
AddressRegister NameBitTypeReset ValueDescription
0x02SYSTEM STATE0 – 8R/W Trigger different System States. (SYSTEM STATE)
0x04CUSTOM COMMAND0 – varW Custom command
 Command0 – 7W *internal
 DatavarW*internal
0x05START_DFU_IQ_CONTROLLER0 – 7  Trigger DFU mode of the iQ.Controller
 Vision Controller goes into DFU Mode0WWrite 1 triggers Module DFU Mode 
0x06STATUS0 – 7R/W Status Flags
 IQ_LINKED0R/W0Fixture is linked to a certain network. 0 – not linked, 1 – linked. Write 1 to unlink from network. 
 RF_LINK1RActive Radio Transmission
 IQ_STATE8-15R Detailed IQ.State (IQ_STATE)
0x07IRQ_MASK0 – 6  Interrupt Pin Mask
 EN_RX_DMX_IRQ0R/W1Enable interrupt pin output when RX_DMX_IRQ goes high
 EN_RX_RDM_IRQ1R/W1Enable interrupt pin output when RX_RDM_IRQ goes high
 EN_NFC_WAKEUP2R/W1Enable interrupt pin output when NFC_WakeUp_IRQ goes high
 EN_RF_LINK_IRQ3R/W1Enable interrupt pin output when RF_LINK_IRQ goes high
 EN_DFU_START_IRQ4R/W1Enable interrupt pin output when DFU_START_IRQ goes high
 EN_DFU_PACKET_IRQ5R/W1Enable interrupt pin output when DFU_PACKET_IRQ goes high
 EN_DFU_STOP_IRQ6R/W1Enable interrupt pin output when DFU_STOP_IRQ goes high
0x08IRQ_FLAGS0 – 7R/W0Interrupt Flags
 SYS_RESTARTED0R/W0System startup or restart from error/ dfu. Make sure to set config if used
 RX_DMX_IRQ1R/W0Different DMX frame received
 RX_RDM_IRQ2R/W0Complete RDM frame received
 NFC_WAKEUP3R/W Wake Up through NFC
 RF_LINK_IRQ4R/W0RF link status changed
 DFU_START_IRQ5R/W0DFU Update requested. DFU Response required. (Write DFU)
 DFU_PACKET_IRQ6R/W0DFU Packet received and must be read (Read DFU) ERROR: DFU Response
 DFU_STOP_IRQ7R/W0DFU Finished. DFU Response required. (Write DFU)
0x0ARDM_ID   RDM ID of device
 RDM ID0 – 47R/W  
0x0DINFORMATION    
 UUID0 -15R0Actual UUID (uint16_t)
 DEVICE_COUNT16 – 31R0Actual Fixture count (uint16_t)
 MODE32 – 39R0Actual Network Mode
 QUALITY40 – 47R0Actual Network Signal Quality 0 – 100: Quality in %
 CID48 – 55R0Actual Custom application ID
 NAME56 -151R0Actual Network Name (char[])
 IDENTIFIER152-175R0Actual Network Identifier (uint8_t[])
0x0EIQ_CONTROLLER_VERSION    
 FW_MAJOR0 – 7R  
 FW_MINOR8 – 15R  
 FW_PATCH16 – 23R  
 FW_RELEASE24 – 31R  
 BL_MAJOR32 – 39R  
 BL_MINOR40 – 47R  
 BL_PATCH48 – 55R  
 BL_RELEASE56 – 63R  
 HW_VERSION64 – 95R Part Variant, Hardware version and Production configuration, encoded as ASCII
0x0FRTC    
 UTC_VALUE0 – 63R/W Read Write RTC Value in UTC Format
0x10ACCELERATION_SENSOR   Only if motion sensor available
 X_AXIS0 – 15R signed short (Little Endian)
 Y_AXIS16 – 31R signed short (Little Endian)
 Z_AXIS32 – 47R signed short (Little Endian)
 SENSOR_AVAILABLE48 – 55R 0: not available , 1: available
0x11IQ_CONTROLLER_CPUID0 – 63R Unique CPU ID iQ.Controller

Definitions

Following definitions for the register are defined:

RegisterValueNameDescription
SYSTEM STATE   
0SYS_STATE_INVALIDNot configured
2SYS_STATE_NORMALNormal Operation
3SYS_STATE_OPENTrigger Open Operation with Timeout
4SYS_STATE_PROTECTEDInterface disabled
IQ_STATE   
0IQ_STATE_UNLINKEDUnlinked
1IQ_STATE_LINKEDlinked
2IQ_STATE_ACTIVELinked and active
3IQ_STATE_MASTERLinked and Master
4IQ_STATE_INACTIVELinked and Inactive