SPI Commands Registers and Defines

SPI commands

下表列出了可用的 SPI commands。Command names 和 binary values 必须按定义使用。

CommandBinary ValueDescription
WRITE_REG01AAAAAA写入 register value。AAAAAA 是 6 bit register address。
READ_REG00AAAAAA读取 register value。AAAAAA 是 6 bit register address。
READ_DMX10000001读取最新 DMX frame。Vision Controller 内部必须 double-buffer frame,避免读取过程中出现 tearing。当 DMX settings 发生变化时,不应继续使用旧 frame,并且可能需要读取更多 bytes。[当 source 为 Vision protocol / App Control 时必须读取]
READ_RDM10000011读取最新 RDM frame。Message bytes 传输完成后,后续 bytes 都视为 invalid。使用 RDM frame 的 Message Length field 判断 packet size。[必须始终读取]
READ_DFU10000111读取 DFU packet。每个 packet 都有唯一 ID number。长度可变,最大 200 Byte。Development app 使用 128 Byte。packetNr 使用 Big Endian,不是 Little Endian。
WRITE_DMX10010001写入 DMX frame。当 CS 变为 high 时,frame 完成。[仅当 source 不是 Vision protocol / App Control 时使用]
WRITE_RDM10010011写入 RDM frame。当 CS 变为 high 时,frame 完成。
WRITE_DFU10010111在 Start、Packet 或 Stop 后写入 DFU response。
NOP11111111No-operation。

WRITE_REG

该 function 用于写入指定 register。

READ_REG

该 function 用于读取指定 register。

READ_DMX

当选择 Vision protocol / App Control 作为 input source 时,必须使用该 function 读取输入值。Data stream 定义如下:

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

data[0] 是 Vision Control Behavior,用于解释当前 Vision DMX frame。后续 bytes 是 DMX data。

READ_RDM

Raw RDM byte stream。Message bytes 全部传输完成后,后续 bytes 都视为 invalid。使用 RDM frame 的 Message Length field 判断 packet size。

READ_DFU

用于读取 firmware packets 的 function。

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

每个 packet 都有唯一的 16 bit ID number。长度可变,最大 200 Byte。Development app 使用 128 Byte。packetNr 使用 Big Endian,不是 Little Endian。(Legacy Mode)

WRITE_DMX

用于将灯具的 DMX input 写入该接口。该 command 可用于诊断灯具 DMX input,或通过 Vision protocol 传输 DMX frame。最大 refresh rate 建议到 20 ms。[仅当 source 不是 Vision protocol / App Control 时使用]

SPI register map

REGISTER MAP
AddressRegister NameBitTypeReset ValueDescription
0x02SYSTEM STATE0 - 8R/W 触发不同 system states。(SYSTEM STATE)
0x04CUSTOM COMMAND0 - varW Custom command
 Command0 - 7W *internal
 DatavarW-*internal
0x05START_DFU_IQ_CONTROLLER0 - 7  触发 Vision Controller 的 DFU mode
 Vision Controller goes into DFU Mode0W-写入 1 触发 Module DFU Mode
0x06STATUS0 - 7R/W Status Flags
 IQ_LINKED0R/W0灯具是否已经 linked 到指定 network。0 - not linked,1 - linked。写入 1 可从 network unlink。
 RF_LINK1R-Active Radio Transmission
 IQ_STATE8-15R Detailed IQ.State(IQ_STATE)
0x07IRQ_MASK0 - 6  Interrupt Pin Mask
 EN_RX_DMX_IRQ0R/W1当 RX_DMX_IRQ 变为 high 时,使能 interrupt pin output
 EN_RX_RDM_IRQ1R/W1当 RX_RDM_IRQ 变为 high 时,使能 interrupt pin output
 EN_NFC_WAKEUP2R/W1当 NFC_WakeUp_IRQ 变为 high 时,使能 interrupt pin output
 EN_RF_LINK_IRQ3R/W1当 RF_LINK_IRQ 变为 high 时,使能 interrupt pin output
 EN_DFU_START_IRQ4R/W1当 DFU_START_IRQ 变为 high 时,使能 interrupt pin output
 EN_DFU_PACKET_IRQ5R/W1当 DFU_PACKET_IRQ 变为 high 时,使能 interrupt pin output
 EN_DFU_STOP_IRQ6R/W1当 DFU_STOP_IRQ 变为 high 时,使能 interrupt pin output
0x08IRQ_FLAGS0 - 7R/W0Interrupt Flags
 SYS_RESTARTED0R/W0System startup 或 restart from error / DFU。若使用 optional config,必须重新设置 config
 RX_DMX_IRQ1R/W0收到不同的 DMX frame
 RX_RDM_IRQ2R/W0收到完整 RDM frame
 NFC_WAKEUP3R/W 通过 NFC wake up
 RF_LINK_IRQ4R/W0RF link status changed
 DFU_START_IRQ5R/W0请求 DFU update。需要 DFU response。(Write DFU)
 DFU_PACKET_IRQ6R/W0收到 DFU packet,必须读取(Read DFU)。ERROR: DFU Response
 DFU_STOP_IRQ7R/W0DFU 完成。需要 DFU response。(Write DFU)
0x0ARDM_ID   Device 的 RDM ID
 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 percentage
 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 和 Production configuration,以 ASCII 编码
0x0FRTC    
 UTC_VALUE0 - 63R/W 以 UTC format 读写 RTC value
0x10ACCELERATION_SENSOR   仅当 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 Vision Controller 的 unique CPU ID

定义

以下 definitions 用于 register values:

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
© KKT Künzler Technologies GbR.
Developed by KKT - Künzler Technologies GbR