mirror of https://github.com/hak5/ToorChat.git
1517 lines
61 KiB
Python
1517 lines
61 KiB
Python
|
import vstruct
|
||
|
from vstruct.primitives import *
|
||
|
|
||
|
class RadioConfig(vstruct.VStruct):
|
||
|
def __init__(self):
|
||
|
vstruct.VStruct.__init__(self)
|
||
|
self.sync1 = v_uint8() #df00
|
||
|
self.sync0 = v_uint8() #df01
|
||
|
self.pktlen = v_uint8() #df02
|
||
|
self.pktctrl1 = v_uint8() #df03
|
||
|
self.pktctrl0 = v_uint8() #df04
|
||
|
self.addr = v_uint8() #df05
|
||
|
self.channr = v_uint8() #df06
|
||
|
self.fsctrl1 = v_uint8() #df07
|
||
|
self.fsctrl0 = v_uint8() #df08
|
||
|
self.freq2 = v_uint8() #df09
|
||
|
self.freq1 = v_uint8() #df0a
|
||
|
self.freq0 = v_uint8() #df0b
|
||
|
self.mdmcfg4 = v_uint8() #df0c
|
||
|
self.mdmcfg3 = v_uint8() #df0d
|
||
|
self.mdmcfg2 = v_uint8() #df0e
|
||
|
self.mdmcfg1 = v_uint8() #df0f
|
||
|
self.mdmcfg0 = v_uint8() #df10
|
||
|
self.deviatn = v_uint8() #df11
|
||
|
self.mcsm2 = v_uint8() #df12
|
||
|
self.mcsm1 = v_uint8() #df13
|
||
|
self.mcsm0 = v_uint8() #df14
|
||
|
self.foccfg = v_uint8() #df15
|
||
|
self.bscfg = v_uint8() #df16
|
||
|
self.agcctrl2 = v_uint8() #df17
|
||
|
self.agcctrl1 = v_uint8() #df18
|
||
|
self.agcctrl0 = v_uint8() #df19
|
||
|
self.frend1 = v_uint8() #df1a
|
||
|
self.frend0 = v_uint8() #df1b
|
||
|
self.fscal3 = v_uint8() #df1c
|
||
|
self.fscal2 = v_uint8() #df1d
|
||
|
self.fscal1 = v_uint8() #df1e
|
||
|
self.fscal0 = v_uint8() #df1f
|
||
|
self.z0 = v_uint8() #df20,21,22
|
||
|
self.z1 = v_uint8() #df20,21,22
|
||
|
self.z2 = v_uint8() #df20,21,22
|
||
|
self.test2 = v_uint8() #df23
|
||
|
self.test1 = v_uint8() #df24
|
||
|
self.test0 = v_uint8() #df25
|
||
|
self.z3 = v_uint8() #df26
|
||
|
self.pa_table7 = v_uint8() #df27
|
||
|
self.pa_table6 = v_uint8() #df28
|
||
|
self.pa_table5 = v_uint8() #df29
|
||
|
self.pa_table4 = v_uint8() #df2a
|
||
|
self.pa_table3 = v_uint8() #df2b
|
||
|
self.pa_table2 = v_uint8() #df2c
|
||
|
self.pa_table1 = v_uint8() #df2d
|
||
|
self.pa_table0 = v_uint8() #df2e
|
||
|
self.iocfg2 = v_uint8() #df2f
|
||
|
self.iocfg1 = v_uint8() #df30
|
||
|
self.iocfg0 = v_uint8() #df31
|
||
|
self.z4 = v_uint8() #df32,33,34,35
|
||
|
self.z5 = v_uint8() #df32,33,34,35
|
||
|
self.z6 = v_uint8() #df32,33,34,35
|
||
|
self.z7 = v_uint8() #df32,33,34,35
|
||
|
self.partnum = v_uint8() #df36
|
||
|
self.chipid = v_uint8() #df37
|
||
|
self.freqest = v_uint8() #df38
|
||
|
self.lqi = v_uint8() #df39
|
||
|
self.rssi = v_uint8() #df3a
|
||
|
self.marcstate = v_uint8() #df3b
|
||
|
self.pkstatus = v_uint8() #df3c
|
||
|
self.vco_vc_dac = v_uint8() #df3d
|
||
|
|
||
|
|
||
|
|
||
|
AC = 64
|
||
|
ACC = 0xE0
|
||
|
ACC_0 = 1
|
||
|
ACC_1 = 2
|
||
|
ACC_2 = 4
|
||
|
ACC_3 = 8
|
||
|
ACC_4 = 16
|
||
|
ACC_5 = 32
|
||
|
ACC_6 = 64
|
||
|
ACC_7 = 128
|
||
|
ACTIVE = 1
|
||
|
ADCCFG = 0xF2
|
||
|
ADCCFG_0 = 0x01
|
||
|
ADCCFG_1 = 0x02
|
||
|
ADCCFG_2 = 0x04
|
||
|
ADCCFG_3 = 0x08
|
||
|
ADCCFG_4 = 0x10
|
||
|
ADCCFG_5 = 0x20
|
||
|
ADCCFG_6 = 0x40
|
||
|
ADCCFG_7 = 0x80
|
||
|
ADCCON1 = 0xB4
|
||
|
ADCCON1_EOC = 0x80
|
||
|
ADCCON1_RCTRL = 0x0C
|
||
|
ADCCON1_RCTRL0 = 0x04
|
||
|
ADCCON1_RCTRL1 = 0x08
|
||
|
ADCCON1_RCTRL_COMPL = (0x00 << 2)
|
||
|
ADCCON1_RCTRL_LFSR13 = (0x01 << 2)
|
||
|
ADCCON1_ST = 0x40
|
||
|
ADCCON1_STSEL = 0x30
|
||
|
ADCCON1_STSEL0 = 0x10
|
||
|
ADCCON1_STSEL1 = 0x20
|
||
|
ADCCON2 = 0xB5
|
||
|
ADCCON2_ECH = 0x0F
|
||
|
ADCCON2_ECH0 = 0x01
|
||
|
ADCCON2_ECH1 = 0x02
|
||
|
ADCCON2_ECH2 = 0x04
|
||
|
ADCCON2_ECH3 = 0x08
|
||
|
ADCCON2_SCH = 0x0F
|
||
|
ADCCON2_SCH0 = 0x01
|
||
|
ADCCON2_SCH1 = 0x02
|
||
|
ADCCON2_SCH2 = 0x04
|
||
|
ADCCON2_SCH3 = 0x08
|
||
|
ADCCON2_SCH_AIN0 = (0x00)
|
||
|
ADCCON2_SCH_AIN0_1 = (0x08)
|
||
|
ADCCON2_SCH_AIN1 = (0x01)
|
||
|
ADCCON2_SCH_AIN2 = (0x02)
|
||
|
ADCCON2_SCH_AIN2_3 = (0x09)
|
||
|
ADCCON2_SCH_AIN3 = (0x03)
|
||
|
ADCCON2_SCH_AIN4 = (0x04)
|
||
|
ADCCON2_SCH_AIN4_5 = (0x0A)
|
||
|
ADCCON2_SCH_AIN5 = (0x05)
|
||
|
ADCCON2_SCH_AIN6 = (0x06)
|
||
|
ADCCON2_SCH_AIN6_7 = (0x0B)
|
||
|
ADCCON2_SCH_AIN7 = (0x07)
|
||
|
ADCCON2_SCH_GND = (0x0C)
|
||
|
ADCCON2_SCH_POSVOL = (0x0D)
|
||
|
ADCCON2_SCH_TEMPR = (0x0E)
|
||
|
ADCCON2_SCH_VDD_3 = (0x0F)
|
||
|
ADCCON2_SDIV = 0x30
|
||
|
ADCCON2_SDIV0 = 0x10
|
||
|
ADCCON2_SDIV1 = 0x20
|
||
|
ADCCON2_SDIV_128 = (0x01 << 4)
|
||
|
ADCCON2_SDIV_256 = (0x02 << 4)
|
||
|
ADCCON2_SDIV_512 = (0x03 << 4)
|
||
|
ADCCON2_SDIV_64 = (0x00 << 4)
|
||
|
ADCCON2_SREF = 0xC0
|
||
|
ADCCON2_SREF0 = 0x40
|
||
|
ADCCON2_SREF1 = 0x80
|
||
|
ADCCON2_SREF_1_25V = (0x00 << 6)
|
||
|
ADCCON2_SREF_AVDD = (0x02 << 6)
|
||
|
ADCCON2_SREF_P0_6_P0_7 = (0x03 << 6)
|
||
|
ADCCON2_SREF_P0_7 = (0x01 << 6)
|
||
|
ADCCON3 = 0xB6
|
||
|
ADCCON3_ECH_AIN0 = (0x00)
|
||
|
ADCCON3_ECH_AIN0_1 = (0x08)
|
||
|
ADCCON3_ECH_AIN1 = (0x01)
|
||
|
ADCCON3_ECH_AIN2 = (0x02)
|
||
|
ADCCON3_ECH_AIN2_3 = (0x09)
|
||
|
ADCCON3_ECH_AIN3 = (0x03)
|
||
|
ADCCON3_ECH_AIN4 = (0x04)
|
||
|
ADCCON3_ECH_AIN4_5 = (0x0A)
|
||
|
ADCCON3_ECH_AIN5 = (0x05)
|
||
|
ADCCON3_ECH_AIN6 = (0x06)
|
||
|
ADCCON3_ECH_AIN6_7 = (0x0B)
|
||
|
ADCCON3_ECH_AIN7 = (0x07)
|
||
|
ADCCON3_ECH_GND = (0x0C)
|
||
|
ADCCON3_ECH_POSVOL = (0x0D)
|
||
|
ADCCON3_ECH_TEMPR = (0x0E)
|
||
|
ADCCON3_ECH_VDD_3 = (0x0F)
|
||
|
ADCCON3_EDIV = 0x30
|
||
|
ADCCON3_EDIV0 = 0x10
|
||
|
ADCCON3_EDIV1 = 0x20
|
||
|
ADCCON3_EDIV_128 = (0x01 << 4)
|
||
|
ADCCON3_EDIV_256 = (0x02 << 4)
|
||
|
ADCCON3_EDIV_512 = (0x03 << 4)
|
||
|
ADCCON3_EDIV_64 = (0x00 << 4)
|
||
|
ADCCON3_EREF = 0xC0
|
||
|
ADCCON3_EREF0 = 0x40
|
||
|
ADCCON3_EREF1 = 0x80
|
||
|
ADCCON3_EREF_1_25V = (0x00 << 6)
|
||
|
ADCCON3_EREF_AVDD = (0x02 << 6)
|
||
|
ADCCON3_EREF_P0_6_P0_7 = (0x03 << 6)
|
||
|
ADCCON3_EREF_P0_7 = (0x01 << 6)
|
||
|
ADCH = 0xBB
|
||
|
ADCIE = 2
|
||
|
ADCIF = 32
|
||
|
ADCL = 0xBA
|
||
|
ADC_VECTOR = 1 # ADC End of Conversion
|
||
|
ADDR = 0xDF05
|
||
|
ADR_CHK_0_255_BRDCST = (0x03)
|
||
|
ADR_CHK_0_BRDCST = (0x02)
|
||
|
ADR_CHK_NONE = (0x00)
|
||
|
ADR_CHK_NO_BRDCST = (0x01)
|
||
|
AGCCTRL0 = 0xDF19
|
||
|
AGCCTRL0_AGC_FREEZE = 0x0C
|
||
|
AGCCTRL0_FILTER_LENGTH = 0x03
|
||
|
AGCCTRL0_HYST_LEVEL = 0xC0
|
||
|
AGCCTRL0_WAIT_TIME = 0x30
|
||
|
AGCCTRL1 = 0xDF18
|
||
|
AGCCTRL1_AGC_LNA_PRIORITY = 0x40
|
||
|
AGCCTRL1_CARRIER_SENSE_ABS_THR = 0x0F
|
||
|
AGCCTRL1_CARRIER_SENSE_REL_THR = 0x30
|
||
|
AGCCTRL2 = 0xDF17
|
||
|
AGCCTRL2_MAGN_TARGET = 0x07
|
||
|
AGCCTRL2_MAX_DVGA_GAIN = 0xC0
|
||
|
AGCCTRL2_MAX_LNA_GAIN = 0x38
|
||
|
B = 0xF0
|
||
|
BSCFG = 0xDF16
|
||
|
BSCFG_BS_LIMIT = 0x03
|
||
|
BSCFG_BS_LIMIT0 = 0x01
|
||
|
BSCFG_BS_LIMIT1 = 0x02
|
||
|
BSCFG_BS_LIMIT_0 = (0x00)
|
||
|
BSCFG_BS_LIMIT_12 = (0x03)
|
||
|
BSCFG_BS_LIMIT_3 = (0x01)
|
||
|
BSCFG_BS_LIMIT_6 = (0x02)
|
||
|
BSCFG_BS_POST_KI = 0x08
|
||
|
BSCFG_BS_POST_KP = 0x04
|
||
|
BSCFG_BS_PRE_KI = 0xC0
|
||
|
BSCFG_BS_PRE_KI0 = 0x40
|
||
|
BSCFG_BS_PRE_KI1 = 0x80
|
||
|
BSCFG_BS_PRE_KI_1K = (0x00 << 6)
|
||
|
BSCFG_BS_PRE_KI_2K = (0x01 << 6)
|
||
|
BSCFG_BS_PRE_KI_3K = (0x02 << 6)
|
||
|
BSCFG_BS_PRE_KI_4K = (0x03 << 6)
|
||
|
BSCFG_BS_PRE_KP = 0x30
|
||
|
BSCFG_BS_PRE_KP0 = 0x10
|
||
|
BSCFG_BS_PRE_KP1 = 0x20
|
||
|
BSCFG_BS_PRE_KP_1K = (0x00 << 4)
|
||
|
BSCFG_BS_PRE_KP_2K = (0x01 << 4)
|
||
|
BSCFG_BS_PRE_KP_3K = (0x02 << 4)
|
||
|
BSCFG_BS_PRE_KP_4K = (0x03 << 4)
|
||
|
B_0 = 1
|
||
|
B_1 = 2
|
||
|
B_2 = 4
|
||
|
B_3 = 8
|
||
|
B_4 = 16
|
||
|
B_5 = 32
|
||
|
B_6 = 64
|
||
|
B_7 = 128
|
||
|
CHANNR = 0xDF06
|
||
|
CLKCON = 0xC6
|
||
|
CLKCON_CLKSPD = 0x07 # bit mask, for the clock speed
|
||
|
CLKCON_CLKSPD0 = 0x01 # bit mask, for the clock speed
|
||
|
CLKCON_CLKSPD1 = 0x02 # bit mask, for the clock speed
|
||
|
CLKCON_CLKSPD2 = 0x04 # bit mask, for the clock speed
|
||
|
CLKCON_OSC = 0x40 # bit mask, for the system clock oscillator
|
||
|
CLKCON_OSC32 = 0x80 # bit mask, for the slow 32k clock oscillator
|
||
|
CLKCON_TICKSPD = 0x38 # bit mask, for timer ticks output setting
|
||
|
CLKCON_TICKSPD0 = 0x08 # bit mask, for timer ticks output setting
|
||
|
CLKCON_TICKSPD1 = 0x10 # bit mask, for timer ticks output setting
|
||
|
CLKCON_TICKSPD2 = 0x20 # bit mask, for timer ticks output setting
|
||
|
CLKSPD_DIV_1 = (0x00)
|
||
|
CLKSPD_DIV_128 = (0x07)
|
||
|
CLKSPD_DIV_16 = (0x04)
|
||
|
CLKSPD_DIV_2 = (0x01)
|
||
|
CLKSPD_DIV_32 = (0x05)
|
||
|
CLKSPD_DIV_4 = (0x02)
|
||
|
CLKSPD_DIV_64 = (0x06)
|
||
|
CLKSPD_DIV_8 = (0x03)
|
||
|
CY = 128
|
||
|
DEVIATN = 0xDF11
|
||
|
DEVIATN_DEVIATION_E = 0x70
|
||
|
DEVIATN_DEVIATION_E0 = 0x10
|
||
|
DEVIATN_DEVIATION_E1 = 0x20
|
||
|
DEVIATN_DEVIATION_E2 = 0x40
|
||
|
DEVIATN_DEVIATION_M = 0x07
|
||
|
DEVIATN_DEVIATION_M0 = 0x01
|
||
|
DEVIATN_DEVIATION_M1 = 0x02
|
||
|
DEVIATN_DEVIATION_M2 = 0x04
|
||
|
DMA0CFGH = 0xD5
|
||
|
DMA0CFGL = 0xD4
|
||
|
DMA1CFGH = 0xD3
|
||
|
DMA1CFGL = 0xD2
|
||
|
DMAARM = 0xD6
|
||
|
DMAARM0 = 0x01
|
||
|
DMAARM1 = 0x02
|
||
|
DMAARM2 = 0x04
|
||
|
DMAARM3 = 0x08
|
||
|
DMAARM4 = 0x10
|
||
|
DMAARM_ABORT = 0x80
|
||
|
DMAIE = 1
|
||
|
DMAIF = 1
|
||
|
DMAIRQ = 0xD1
|
||
|
DMAIRQ_DMAIF0 = 0x01
|
||
|
DMAIRQ_DMAIF1 = 0x02
|
||
|
DMAIRQ_DMAIF2 = 0x04
|
||
|
DMAIRQ_DMAIF3 = 0x08
|
||
|
DMAIRQ_DMAIF4 = 0x10
|
||
|
DMAREQ = 0xD7
|
||
|
DMAREQ0 = 0x01
|
||
|
DMAREQ1 = 0x02
|
||
|
DMAREQ2 = 0x04
|
||
|
DMAREQ3 = 0x08
|
||
|
DMAREQ4 = 0x10
|
||
|
DMA_VECTOR = 8 # DMA Transfer Complete
|
||
|
DPH0 = 0x83
|
||
|
DPH1 = 0x85
|
||
|
DPL0 = 0x82
|
||
|
DPL1 = 0x84
|
||
|
DPS = 0x92
|
||
|
DPS_VDPS = 0x01
|
||
|
DSM_IP_OFF_OS_OFF = (0x03) # Interpolator & output shaping disabled
|
||
|
DSM_IP_OFF_OS_ON = (0x02) # Interpolator disabled & output shaping enabled
|
||
|
DSM_IP_ON_OS_OFF = (0x01) # Interpolator enabled & output shaping disabled
|
||
|
DSM_IP_ON_OS_ON = (0x00) # Interpolator & output shaping enabled
|
||
|
EA = 128
|
||
|
ENCCS = 0xB3
|
||
|
ENCCS_CMD = 0x06
|
||
|
ENCCS_CMD0 = 0x02
|
||
|
ENCCS_CMD1 = 0x04
|
||
|
ENCCS_CMD_DEC = (0x01 << 1)
|
||
|
ENCCS_CMD_ENC = (0x00 << 1)
|
||
|
ENCCS_CMD_LDIV = (0x03 << 1)
|
||
|
ENCCS_CMD_LDKEY = (0x02 << 1)
|
||
|
ENCCS_MODE = 0x70
|
||
|
ENCCS_MODE0 = 0x10
|
||
|
ENCCS_MODE1 = 0x20
|
||
|
ENCCS_MODE2 = 0x40
|
||
|
ENCCS_MODE_CBC = (0x00 << 4)
|
||
|
ENCCS_MODE_CBCMAC = (0x05 << 4)
|
||
|
ENCCS_MODE_CFB = (0x01 << 4)
|
||
|
ENCCS_MODE_CTR = (0x03 << 4)
|
||
|
ENCCS_MODE_ECB = (0x04 << 4)
|
||
|
ENCCS_MODE_OFB = (0x02 << 4)
|
||
|
ENCCS_RDY = 0x08
|
||
|
ENCCS_ST = 0x01
|
||
|
ENCDI = 0xB1
|
||
|
ENCDO = 0xB2
|
||
|
ENCIE = 16
|
||
|
ENCIF_0 = 1
|
||
|
ENCIF_1 = 2
|
||
|
ENC_VECTOR = 4 # AES Encryption/Decryption Complete
|
||
|
EP_STATE_IDLE = 0
|
||
|
EP_STATE_RX = 2
|
||
|
EP_STATE_STALL = 3
|
||
|
EP_STATE_TX = 1
|
||
|
ERR = 8
|
||
|
F0 = 32
|
||
|
F1 = 2
|
||
|
FADDRH = 0xAD
|
||
|
FADDRL = 0xAC
|
||
|
FCTL = 0xAE
|
||
|
FCTL_BUSY = 0x80
|
||
|
FCTL_CONTRD = 0x10
|
||
|
FCTL_ERASE = 0x01
|
||
|
FCTL_SWBSY = 0x40
|
||
|
FCTL_WRITE = 0x02
|
||
|
FE = 16
|
||
|
FOCCFG = 0xDF15
|
||
|
FOCCFG_FOC_BS_CS_GATE = 0x20
|
||
|
FOCCFG_FOC_LIMIT = 0x03
|
||
|
FOCCFG_FOC_LIMIT0 = 0x01
|
||
|
FOCCFG_FOC_LIMIT1 = 0x02
|
||
|
FOCCFG_FOC_POST_K = 0x04
|
||
|
FOCCFG_FOC_PRE_K = 0x18
|
||
|
FOCCFG_FOC_PRE_K0 = 0x08
|
||
|
FOCCFG_FOC_PRE_K1 = 0x10
|
||
|
FOC_LIMIT_0 = (0x00)
|
||
|
FOC_LIMIT_DIV2 = (0x03)
|
||
|
FOC_LIMIT_DIV4 = (0x02)
|
||
|
FOC_LIMIT_DIV8 = (0x01)
|
||
|
FOC_PRE_K_1K = (0x00 << 3)
|
||
|
FOC_PRE_K_2K = (0x02 << 3)
|
||
|
FOC_PRE_K_3K = (0x03 << 3)
|
||
|
FOC_PRE_K_4K = (0x04 << 3)
|
||
|
FREND0 = 0xDF1B
|
||
|
FREND0_LODIV_BUF_CURRENT_TX = 0x30
|
||
|
FREND0_PA_POWER = 0x07
|
||
|
FREND1 = 0xDF1A
|
||
|
FREND1_LNA2MIX_CURRENT = 0x30
|
||
|
FREND1_LNA_CURRENT = 0xC0
|
||
|
FREND1_LODIV_BUF_CURRENT_RX = 0x0C
|
||
|
FREND1_MIX_CURRENT = 0x03
|
||
|
FREQ0 = 0xDF0B
|
||
|
FREQ1 = 0xDF0A
|
||
|
FREQ2 = 0xDF09
|
||
|
FREQEST = 0xDF38
|
||
|
FSCAL0 = 0xDF1F
|
||
|
FSCAL1 = 0xDF1E
|
||
|
FSCAL2 = 0xDF1D
|
||
|
FSCAL2_FSCAL2 = 0x1F
|
||
|
FSCAL2_VCO_CORE_H_EN = 0x20
|
||
|
FSCAL3 = 0xDF1C
|
||
|
FSCAL3_CHP_CURR_CAL_EN = 0x30
|
||
|
FSCAL3_FSCAL3 = 0xC0
|
||
|
FSCTRL0 = 0xDF08
|
||
|
FSCTRL1 = 0xDF07
|
||
|
FS_AUTOCAL_4TH_TO_IDLE = (0x03 << 4)
|
||
|
FS_AUTOCAL_FROM_IDLE = (0x01 << 4)
|
||
|
FS_AUTOCAL_NEVER = (0x00 << 4)
|
||
|
FS_AUTOCAL_TO_IDLE = (0x02 << 4)
|
||
|
FWDATA = 0xAF
|
||
|
FWT = 0xAB
|
||
|
I2SCFG0 = 0xDF40
|
||
|
I2SCFG0_ENAB = 0x01
|
||
|
I2SCFG0_MASTER = 0x02
|
||
|
I2SCFG0_RXIEN = 0x40
|
||
|
I2SCFG0_RXMONO = 0x04
|
||
|
I2SCFG0_TXIEN = 0x80
|
||
|
I2SCFG0_TXMONO = 0x08
|
||
|
I2SCFG0_ULAWC = 0x10
|
||
|
I2SCFG0_ULAWE = 0x20
|
||
|
I2SCFG1 = 0xDF41
|
||
|
I2SCFG1_IOLOC = 0x01
|
||
|
I2SCFG1_TRIGNUM = 0x06
|
||
|
I2SCFG1_TRIGNUM0 = 0x02
|
||
|
I2SCFG1_TRIGNUM1 = 0x04
|
||
|
I2SCFG1_TRIGNUM_IOC_1 = (0x02 << 1)
|
||
|
I2SCFG1_TRIGNUM_NO_TRIG = (0x00 << 1)
|
||
|
I2SCFG1_TRIGNUM_T1_CH0 = (0x03 << 1)
|
||
|
I2SCFG1_TRIGNUM_USB_SOF = (0x01 << 1)
|
||
|
I2SCFG1_WORDS = 0xF8
|
||
|
I2SCFG1_WORDS0 = 0x08
|
||
|
I2SCFG1_WORDS1 = 0x10
|
||
|
I2SCFG1_WORDS2 = 0x20
|
||
|
I2SCFG1_WORDS3 = 0x40
|
||
|
I2SCFG1_WORDS4 = 0x80
|
||
|
I2SCLKF0 = 0xDF46
|
||
|
I2SCLKF1 = 0xDF47
|
||
|
I2SCLKF2 = 0xDF48
|
||
|
I2SDATH = 0xDF43
|
||
|
I2SDATL = 0xDF42
|
||
|
I2SSTAT = 0xDF45
|
||
|
I2SSTAT_RXIRQ = 0x04
|
||
|
I2SSTAT_RXLR = 0x10
|
||
|
I2SSTAT_RXOVF = 0x40
|
||
|
I2SSTAT_TXIRQ = 0x08
|
||
|
I2SSTAT_TXLR = 0x20
|
||
|
I2SSTAT_TXUNF = 0x80
|
||
|
I2SSTAT_WCNT = 0x03
|
||
|
I2SSTAT_WCNT0 = 0x01
|
||
|
I2SSTAT_WCNT1 = 0x02
|
||
|
I2SSTAT_WCNT_10BIT = (0x02)
|
||
|
I2SSTAT_WCNT_9BIT = (0x01)
|
||
|
I2SSTAT_WCNT_9_10BIT = (0x02)
|
||
|
I2SWCNT = 0xDF44
|
||
|
IEN0 = 0xA8
|
||
|
IEN1 = 0xB8
|
||
|
IEN2 = 0x9A
|
||
|
IEN2_I2STXIE = 0x08
|
||
|
IEN2_P1IE = 0x10
|
||
|
IEN2_P2IE = 0x02
|
||
|
IEN2_RFIE = 0x01
|
||
|
IEN2_USBIE = 0x02
|
||
|
IEN2_UTX0IE = 0x04
|
||
|
IEN2_UTX1IE = 0x08
|
||
|
IEN2_WDTIE = 0x20
|
||
|
IOCFG0 = 0xDF31
|
||
|
IOCFG0_GDO0_CFG = 0x3F
|
||
|
IOCFG0_GDO0_INV = 0x40
|
||
|
IOCFG1 = 0xDF30
|
||
|
IOCFG1_GDO1_CFG = 0x3F
|
||
|
IOCFG1_GDO1_INV = 0x40
|
||
|
IOCFG1_GDO_DS = 0x80
|
||
|
IOCFG2 = 0xDF2F
|
||
|
IOCFG2_GDO2_CFG = 0x3F
|
||
|
IOCFG2_GDO2_INV = 0x40
|
||
|
IP0 = 0xA9
|
||
|
IP0_IPG0 = 0x01
|
||
|
IP0_IPG1 = 0x02
|
||
|
IP0_IPG2 = 0x04
|
||
|
IP0_IPG3 = 0x08
|
||
|
IP0_IPG4 = 0x10
|
||
|
IP0_IPG5 = 0x20
|
||
|
IP1 = 0xB9
|
||
|
IP1_IPG0 = 0x01
|
||
|
IP1_IPG1 = 0x02
|
||
|
IP1_IPG2 = 0x04
|
||
|
IP1_IPG3 = 0x08
|
||
|
IP1_IPG4 = 0x10
|
||
|
IP1_IPG5 = 0x20
|
||
|
IRCON = 0xC0
|
||
|
IRCON2 = 0xE8
|
||
|
IT0 = 1
|
||
|
IT1 = 4
|
||
|
LQI = 0xDF39
|
||
|
MARCSTATE = 0xDF3B
|
||
|
MARCSTATE_MARC_STATE = 0x1F
|
||
|
MARC_STATE_BWBOOST = 0x09
|
||
|
MARC_STATE_ENDCAL = 0x0C
|
||
|
MARC_STATE_FSTXON = 0x12
|
||
|
MARC_STATE_FS_LOCK = 0x0A
|
||
|
MARC_STATE_IDLE = 0x01
|
||
|
MARC_STATE_IFADCON = 0x0B
|
||
|
MARC_STATE_MANCAL = 0x05
|
||
|
MARC_STATE_REGON = 0x07
|
||
|
MARC_STATE_REGON_MC = 0x04
|
||
|
MARC_STATE_RX = 0x0D
|
||
|
MARC_STATE_RXTX_SWITCH = 0x15
|
||
|
MARC_STATE_RX_END = 0x0E
|
||
|
MARC_STATE_RX_OVERFLOW = 0x11
|
||
|
MARC_STATE_RX_RST = 0x0F
|
||
|
MARC_STATE_SLEEP = 0x00
|
||
|
MARC_STATE_STARTCAL = 0x08
|
||
|
MARC_STATE_TX = 0x13
|
||
|
MARC_STATE_TXRX_SWITCH = 0x10
|
||
|
MARC_STATE_TX_END = 0x14
|
||
|
MARC_STATE_TX_UNDERFLOW = 0x16
|
||
|
MARC_STATE_VCOON = 0x06
|
||
|
MARC_STATE_VCOON_MC = 0x03
|
||
|
MCSM0 = 0xDF14
|
||
|
MCSM0_FS_AUTOCAL = 0x30
|
||
|
MCSM1 = 0xDF13
|
||
|
MCSM1_CCA_MODE = 0x30
|
||
|
MCSM1_CCA_MODE0 = 0x10
|
||
|
MCSM1_CCA_MODE1 = 0x20
|
||
|
MCSM1_CCA_MODE_ALWAYS = (0x00 << 4)
|
||
|
MCSM1_CCA_MODE_PACKET = (0x02 << 4)
|
||
|
MCSM1_CCA_MODE_RSSI0 = (0x01 << 4)
|
||
|
MCSM1_CCA_MODE_RSSI1 = (0x03 << 4)
|
||
|
MCSM1_RXOFF_MODE = 0x0C
|
||
|
MCSM1_RXOFF_MODE0 = 0x04
|
||
|
MCSM1_RXOFF_MODE1 = 0x08
|
||
|
MCSM1_RXOFF_MODE_FSTXON = (0x01 << 2)
|
||
|
MCSM1_RXOFF_MODE_IDLE = (0x00 << 2)
|
||
|
MCSM1_RXOFF_MODE_RX = (0x03 << 2)
|
||
|
MCSM1_RXOFF_MODE_TX = (0x02 << 2)
|
||
|
MCSM1_TXOFF_MODE = 0x03
|
||
|
MCSM1_TXOFF_MODE0 = 0x01
|
||
|
MCSM1_TXOFF_MODE1 = 0x02
|
||
|
MCSM1_TXOFF_MODE_FSTXON = (0x01 << 0)
|
||
|
MCSM1_TXOFF_MODE_IDLE = (0x00 << 0)
|
||
|
MCSM1_TXOFF_MODE_RX = (0x03 << 0)
|
||
|
MCSM1_TXOFF_MODE_TX = (0x02 << 0)
|
||
|
MCSM2 = 0xDF12
|
||
|
MCSM2_RX_TIME = 0x07
|
||
|
MCSM2_RX_TIME_QUAL = 0x08
|
||
|
MCSM2_RX_TIME_RSSI = 0x10
|
||
|
MDMCFG0 = 0xDF10
|
||
|
MDMCFG1 = 0xDF0F
|
||
|
MDMCFG1_CHANSPC_E = 0x03
|
||
|
MDMCFG2 = 0xDF0E
|
||
|
MDMCFG2_DEM_DCFILT_OFF = 0x80
|
||
|
MDMCFG2_MANCHESTER_EN = 0x08
|
||
|
MDMCFG2_MOD_FORMAT = 0x70
|
||
|
MDMCFG2_MOD_FORMAT0 = 0x10
|
||
|
MDMCFG2_MOD_FORMAT1 = 0x20
|
||
|
MDMCFG2_MOD_FORMAT2 = 0x40
|
||
|
MDMCFG2_SYNC_MODE = 0x07
|
||
|
MDMCFG2_SYNC_MODE0 = 0x01
|
||
|
MDMCFG2_SYNC_MODE1 = 0x02
|
||
|
MDMCFG2_SYNC_MODE2 = 0x04
|
||
|
MDMCFG3 = 0xDF0D
|
||
|
MDMCFG4 = 0xDF0C
|
||
|
MDMCFG4_CHANBW_E = 0xC0
|
||
|
MDMCFG4_CHANBW_M = 0x30
|
||
|
MDMCFG4_DRATE_E = 0x0F
|
||
|
MFMCFG1_CHANSPC_E = 0x03
|
||
|
MFMCFG1_CHANSPC_E0 = 0x01
|
||
|
MFMCFG1_CHANSPC_E1 = 0x02
|
||
|
MFMCFG1_FEC_EN = 0x80
|
||
|
MFMCFG1_NUM_PREAMBLE = 0x70
|
||
|
MFMCFG1_NUM_PREAMBLE0 = 0x10
|
||
|
MFMCFG1_NUM_PREAMBLE1 = 0x20
|
||
|
MFMCFG1_NUM_PREAMBLE2 = 0x40
|
||
|
MFMCFG1_NUM_PREAMBLE_12 = (0x05 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_16 = (0x06 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_2 = (0x00 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_24 = (0x07 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_3 = (0x01 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_4 = (0x02 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_6 = (0x03 << 4)
|
||
|
MFMCFG1_NUM_PREAMBLE_8 = (0x04 << 4)
|
||
|
MDMCTRL0H = 0xDF02
|
||
|
MEMCTR = 0xC7
|
||
|
MEMCTR_CACHD = 0x02
|
||
|
MEMCTR_PREFD = 0x01
|
||
|
MODE = 128
|
||
|
MOD_FORMAT_2_FSK = (0x00 << 4)
|
||
|
MOD_FORMAT_GFSK = (0x01 << 4)
|
||
|
MOD_FORMAT_MSK = (0x07 << 4)
|
||
|
MPAGE = 0x93
|
||
|
OV = 4
|
||
|
OVFIM = 64
|
||
|
P = 1
|
||
|
P0 = 0x80
|
||
|
P0DIR = 0xFD
|
||
|
P0IE = 32
|
||
|
P0IF = 32
|
||
|
P0IFG = 0x89
|
||
|
P0IFG_USB_RESUME = 0x80 #rw0
|
||
|
P0INP = 0x8F
|
||
|
P0INT_VECTOR = 13 # Port 0 Inputs
|
||
|
P0SEL = 0xF3
|
||
|
P0_0 = 1
|
||
|
P0_1 = 2
|
||
|
P0_2 = 4
|
||
|
P0_3 = 8
|
||
|
P0_4 = 16
|
||
|
P0_5 = 32
|
||
|
P0_6 = 64
|
||
|
P0_7 = 128
|
||
|
P1 = 0x90
|
||
|
P1DIR = 0xFE
|
||
|
P1IEN = 0x8D
|
||
|
P1IF = 8
|
||
|
P1IFG = 0x8A
|
||
|
P1INP = 0xF6
|
||
|
P1INT_VECTOR = 15 # Port 1 Inputs
|
||
|
P1SEL = 0xF4
|
||
|
P1_0 = 1
|
||
|
P1_1 = 2
|
||
|
P1_2 = 4
|
||
|
P1_3 = 8
|
||
|
P1_4 = 16
|
||
|
P1_5 = 32
|
||
|
P1_6 = 64
|
||
|
P1_7 = 128
|
||
|
P2 = 0xA0
|
||
|
P2DIR = 0xFF
|
||
|
P2DIR_0PRIP0 = 0x40
|
||
|
P2DIR_1PRIP0 = 0x80
|
||
|
P2DIR_DIRP2 = 0x1F
|
||
|
P2DIR_DIRP2_0 = (0x01)
|
||
|
P2DIR_DIRP2_1 = (0x02)
|
||
|
P2DIR_DIRP2_2 = (0x04)
|
||
|
P2DIR_DIRP2_3 = (0x08)
|
||
|
P2DIR_DIRP2_4 = (0x10)
|
||
|
P2DIR_PRIP0 = 0xC0
|
||
|
P2DIR_PRIP0_0 = (0x00 << 6)
|
||
|
P2DIR_PRIP0_1 = (0x01 << 6)
|
||
|
P2DIR_PRIP0_2 = (0x02 << 6)
|
||
|
P2DIR_PRIP0_3 = (0x03 << 6)
|
||
|
P2IF = 1
|
||
|
P2IFG = 0x8B
|
||
|
P2INP = 0xF7
|
||
|
P2INP_MDP2 = 0x1F
|
||
|
P2INP_MDP2_0 = (0x01)
|
||
|
P2INP_MDP2_1 = (0x02)
|
||
|
P2INP_MDP2_2 = (0x04)
|
||
|
P2INP_MDP2_3 = (0x08)
|
||
|
P2INP_MDP2_4 = (0x10)
|
||
|
P2INP_PDUP0 = 0x20
|
||
|
P2INP_PDUP1 = 0x40
|
||
|
P2INP_PDUP2 = 0x80
|
||
|
P2INT_VECTOR = 6 # Port 2 Inputs
|
||
|
P2SEL = 0xF5
|
||
|
P2SEL_PRI0P1 = 0x08
|
||
|
P2SEL_PRI1P1 = 0x10
|
||
|
P2SEL_PRI2P1 = 0x20
|
||
|
P2SEL_PRI3P1 = 0x40
|
||
|
P2SEL_SELP2_0 = 0x01
|
||
|
P2SEL_SELP2_3 = 0x02
|
||
|
P2SEL_SELP2_4 = 0x04
|
||
|
P2_0 = 1
|
||
|
P2_1 = 2
|
||
|
P2_2 = 4
|
||
|
P2_3 = 8
|
||
|
P2_4 = 16
|
||
|
P2_5 = 32
|
||
|
P2_6 = 64
|
||
|
P2_7 = 128
|
||
|
PARTNUM = 0xDF36
|
||
|
PA_TABLE0 = 0xDF2E
|
||
|
PA_TABLE1 = 0xDF2D
|
||
|
PA_TABLE2 = 0xDF2C
|
||
|
PA_TABLE3 = 0xDF2B
|
||
|
PA_TABLE4 = 0xDF2A
|
||
|
PA_TABLE5 = 0xDF29
|
||
|
PA_TABLE6 = 0xDF28
|
||
|
PA_TABLE7 = 0xDF27
|
||
|
PCON = 0x87
|
||
|
PCON_IDLE = 0x01
|
||
|
PERCFG = 0xF1
|
||
|
PERCFG_T1CFG = 0x40
|
||
|
PERCFG_T3CFG = 0x20
|
||
|
PERCFG_T4CFG = 0x10
|
||
|
PERCFG_U0CFG = 0x01
|
||
|
PERCFG_U1CFG = 0x02
|
||
|
PICTL = 0x8C
|
||
|
PICTL_P0ICON = 0x01
|
||
|
PICTL_P0IENH = 0x10
|
||
|
PICTL_P0IENL = 0x08
|
||
|
PICTL_P1ICON = 0x02
|
||
|
PICTL_P2ICON = 0x04
|
||
|
PICTL_P2IEN = 0x20
|
||
|
PICTL_PADSC = 0x40
|
||
|
PKTCTRL0 = 0xDF04
|
||
|
PKTCTRL0_CC2400_EN = 0x08
|
||
|
PKTCTRL0_CRC_EN = 0x04
|
||
|
PKTCTRL0_LENGTH_CONFIG = 0x03
|
||
|
PKTCTRL0_LENGTH_CONFIG0 = 0x01
|
||
|
PKTCTRL0_LENGTH_CONFIG_FIX = (0x00)
|
||
|
PKTCTRL0_LENGTH_CONFIG_VAR = (0x01)
|
||
|
PKTCTRL0_PKT_FORMAT = 0x30
|
||
|
PKTCTRL0_PKT_FORMAT0 = 0x10
|
||
|
PKTCTRL0_PKT_FORMAT1 = 0x20
|
||
|
PKTCTRL0_WHITE_DATA = 0x40
|
||
|
PKTCTRL1 = 0xDF03
|
||
|
PKTCTRL1_ADR_CHK = 0x03
|
||
|
PKTCTRL1_ADR_CHK0 = 0x01
|
||
|
PKTCTRL1_ADR_CHK1 = 0x02
|
||
|
PKTCTRL1_APPEND_STATUS = 0x04
|
||
|
PKTCTRL1_PQT = 0xE0
|
||
|
PKTCTRL1_PQT0 = 0x20
|
||
|
PKTCTRL1_PQT1 = 0x40
|
||
|
PKTCTRL1_PQT2 = 0x80
|
||
|
PKTLEN = 0xDF02
|
||
|
PKTSTATUS = 0xDF3C
|
||
|
PKT_FORMAT_NORM = (0x00)
|
||
|
PKT_FORMAT_RAND = (0x02)
|
||
|
PSW = 0xD0
|
||
|
RE = 64
|
||
|
RFD = 0xD9
|
||
|
RFIF = 0xE9
|
||
|
RFIF_IRQ_CCA = 0x02
|
||
|
RFIF_IRQ_CS = 0x08
|
||
|
RFIF_IRQ_DONE = 0x10
|
||
|
RFIF_IRQ_PQT = 0x04
|
||
|
RFIF_IRQ_RXOVF = 0x40
|
||
|
RFIF_IRQ_SFD = 0x01
|
||
|
RFIF_IRQ_TIMEOUT = 0x20
|
||
|
RFIF_IRQ_TXUNF = 0x80
|
||
|
RFIM = 0x91
|
||
|
RFIM_IM_CCA = 0x02
|
||
|
RFIM_IM_CS = 0x08
|
||
|
RFIM_IM_DONE = 0x10
|
||
|
RFIM_IM_PQT = 0x04
|
||
|
RFIM_IM_RXOVF = 0x40
|
||
|
RFIM_IM_SFD = 0x01
|
||
|
RFIM_IM_TIMEOUT = 0x20
|
||
|
RFIM_IM_TXUNF = 0x80
|
||
|
RFST = 0xE1
|
||
|
RFST_SCAL = 0x01
|
||
|
RFST_SFSTXON = 0x00
|
||
|
RFST_SIDLE = 0x04
|
||
|
RFST_SNOP = 0x05
|
||
|
RFST_SRX = 0x02
|
||
|
RFST_STX = 0x03
|
||
|
RFTXRXIE = 1
|
||
|
RFTXRXIF = 2
|
||
|
RFTXRX_VECTOR = 0 # RF TX done / RX ready
|
||
|
RF_VECTOR = 16 # RF General Interrupts
|
||
|
RNDH = 0xBD
|
||
|
RNDL = 0xBC
|
||
|
RS0 = 8
|
||
|
RS1 = 16
|
||
|
RSSI = 0xDF3A
|
||
|
RX_BYTE = 4
|
||
|
S0CON = 0x98
|
||
|
S1CON = 0x9B
|
||
|
S1CON_RFIF_0 = 0x01
|
||
|
S1CON_RFIF_1 = 0x02
|
||
|
SLAVE = 32
|
||
|
SLEEP = 0xBE
|
||
|
SLEEP_HFRC_S = 0x20
|
||
|
SLEEP_MODE = 0x03
|
||
|
SLEEP_MODE0 = 0x01
|
||
|
SLEEP_MODE1 = 0x02
|
||
|
SLEEP_MODE_PM0 = (0x00)
|
||
|
SLEEP_MODE_PM1 = (0x01)
|
||
|
SLEEP_MODE_PM2 = (0x02)
|
||
|
SLEEP_MODE_PM3 = (0x03)
|
||
|
SLEEP_OSC_PD = 0x04
|
||
|
SLEEP_RST = 0x18
|
||
|
SLEEP_RST0 = 0x08
|
||
|
SLEEP_RST1 = 0x10
|
||
|
SLEEP_RST_EXT = (0x01 << 3)
|
||
|
SLEEP_RST_POR_BOD = (0x00 << 3)
|
||
|
SLEEP_RST_WDT = (0x02 << 3)
|
||
|
SLEEP_USB_EN = 0x80
|
||
|
SLEEP_XOSC_S = 0x40
|
||
|
SP = 0x81
|
||
|
STIE = 32
|
||
|
STIF = 128
|
||
|
STSEL_FULL_SPEED = (0x01 << 4)
|
||
|
STSEL_P2_0 = (0x00 << 4)
|
||
|
STSEL_ST = (0x03 << 4)
|
||
|
STSEL_T1C0_CMP_EVT = (0x02 << 4)
|
||
|
ST_VECTOR = 5 # Sleep Timer Compare
|
||
|
SYNC0 = 0xDF01
|
||
|
SYNC1 = 0xDF00
|
||
|
SYNC_MODE_15_16 = (0x01)
|
||
|
SYNC_MODE_15_16_CS = (0x05)
|
||
|
SYNC_MODE_16_16 = (0x02)
|
||
|
SYNC_MODE_16_16_CS = (0x06)
|
||
|
SYNC_MODE_30_32 = (0x03)
|
||
|
SYNC_MODE_30_32_CS = (0x07)
|
||
|
SYNC_MODE_NO_PRE = (0x00)
|
||
|
SYNC_MODE_NO_PRE_CS = (0x04) # CS = carrier-sense above threshold
|
||
|
T1C0_BOTH_EDGE = (0x03) # Capture on both edges
|
||
|
T1C0_CLR_CMP_UP_SET_0 = (0x04 << 3) # Set output on compare
|
||
|
T1C0_CLR_ON_CMP = (0x01 << 3) # Set output on compare-up clear on 0
|
||
|
T1C0_FALL_EDGE = (0x02) # Capture on falling edge
|
||
|
T1C0_NO_CAP = (0x00) # No capture
|
||
|
T1C0_RISE_EDGE = (0x01) # Capture on rising edge
|
||
|
T1C0_SET_CMP_UP_CLR_0 = (0x03 << 3) # Clear output on compare
|
||
|
T1C0_SET_ON_CMP = (0x00 << 3) # Clear output on compare-up set on 0
|
||
|
T1C0_TOG_ON_CMP = (0x02 << 3) # Toggle output on compare
|
||
|
T1C1_BOTH_EDGE = (0x03) # Capture on both edges
|
||
|
T1C1_CLR_C1_SET_C0 = (0x06 << 3) # Clear when equal to T1CC1, set when equal to T1CC0
|
||
|
T1C1_CLR_CMP_UP_SET_0 = (0x04 << 3) # Clear output on compare-up set on 0
|
||
|
T1C1_CLR_ON_CMP = (0x01 << 3) # Clear output on compare
|
||
|
T1C1_DSM_MODE = (0x07 << 3) # DSM mode
|
||
|
T1C1_FALL_EDGE = (0x02) # Capture on falling edge
|
||
|
T1C1_NO_CAP = (0x00) # No capture
|
||
|
T1C1_RISE_EDGE = (0x01) # Capture on rising edge
|
||
|
T1C1_SET_C1_CLR_C0 = (0x05 << 3) # Set when equal to T1CC1, clear when equal to T1CC0
|
||
|
T1C1_SET_CMP_UP_CLR_0 = (0x03 << 3) # Set output on compare-up clear on 0
|
||
|
T1C1_SET_ON_CMP = (0x00 << 3) # Set output on compare
|
||
|
T1C1_TOG_ON_CMP = (0x02 << 3) # Toggle output on compare
|
||
|
T1C2_BOTH_EDGE = (0x03) # Capture on both edges
|
||
|
T1C2_CLR_C2_SET_C0 = (0x06 << 3) # Clear when equal to T1CC2, set when equal to T1CC0
|
||
|
T1C2_CLR_CMP_UP_SET_0 = (0x04 << 3) # Clear output on compare-up set on 0
|
||
|
T1C2_CLR_ON_CMP = (0x01 << 3) # Clear output on compare
|
||
|
T1C2_FALL_EDGE = (0x02) # Capture on falling edge
|
||
|
T1C2_NO_CAP = (0x00) # No capture
|
||
|
T1C2_RISE_EDGE = (0x01) # Capture on rising edge
|
||
|
T1C2_SET_C2_CLR_C0 = (0x05 << 3) # Set when equal to T1CC2, clear when equal to T1CC0
|
||
|
T1C2_SET_CMP_UP_CLR_0 = (0x03 << 3) # Set output on compare-up clear on 0
|
||
|
T1C2_SET_ON_CMP = (0x00 << 3) # Set output on compare
|
||
|
T1C2_TOG_ON_CMP = (0x02 << 3) # Toggle output on compare
|
||
|
T1CC0H = 0xDB
|
||
|
T1CC0L = 0xDA
|
||
|
T1CC1H = 0xDD
|
||
|
T1CC1L = 0xDC
|
||
|
T1CC2H = 0xDF
|
||
|
T1CC2L = 0xDE
|
||
|
T1CCTL0 = 0xE5
|
||
|
T1CCTL0_CAP = 0x03
|
||
|
T1CCTL0_CAP0 = 0x01
|
||
|
T1CCTL0_CAP1 = 0x02
|
||
|
T1CCTL0_CMP = 0x38
|
||
|
T1CCTL0_CMP0 = 0x08
|
||
|
T1CCTL0_CMP1 = 0x10
|
||
|
T1CCTL0_CMP2 = 0x20
|
||
|
T1CCTL0_CPSEL = 0x80 # Timer 1 channel 0 capture select
|
||
|
T1CCTL0_IM = 0x40 # Channel 0 Interrupt mask
|
||
|
T1CCTL0_MODE = 0x04 # Capture or compare mode
|
||
|
T1CCTL1 = 0xE6
|
||
|
T1CCTL1_CAP = 0x03
|
||
|
T1CCTL1_CAP0 = 0x01
|
||
|
T1CCTL1_CAP1 = 0x02
|
||
|
T1CCTL1_CMP = 0x38
|
||
|
T1CCTL1_CMP0 = 0x08
|
||
|
T1CCTL1_CMP1 = 0x10
|
||
|
T1CCTL1_CMP2 = 0x20
|
||
|
T1CCTL1_CPSEL = 0x80 # Timer 1 channel 1 capture select
|
||
|
T1CCTL1_DSM_SPD = 0x04
|
||
|
T1CCTL1_IM = 0x40 # Channel 1 Interrupt mask
|
||
|
T1CCTL1_MODE = 0x04 # Capture or compare mode
|
||
|
T1CCTL2 = 0xE7
|
||
|
T1CCTL2_CAP = 0x03
|
||
|
T1CCTL2_CAP0 = 0x01
|
||
|
T1CCTL2_CAP1 = 0x02
|
||
|
T1CCTL2_CMP = 0x38
|
||
|
T1CCTL2_CMP0 = 0x08
|
||
|
T1CCTL2_CMP1 = 0x10
|
||
|
T1CCTL2_CMP2 = 0x20
|
||
|
T1CCTL2_CPSEL = 0x80 # Timer 1 channel 2 capture select
|
||
|
T1CCTL2_IM = 0x40 # Channel 2 Interrupt mask
|
||
|
T1CCTL2_MODE = 0x04 # Capture or compare mode
|
||
|
T1CNTH = 0xE3
|
||
|
T1CNTL = 0xE2
|
||
|
T1CTL = 0xE4
|
||
|
T1CTL_CH0IF = 0x20 # Timer 1 channel 0 interrupt flag
|
||
|
T1CTL_CH1IF = 0x40 # Timer 1 channel 1 interrupt flag
|
||
|
T1CTL_CH2IF = 0x80 # Timer 1 channel 2 interrupt flag
|
||
|
T1CTL_DIV = 0x0C
|
||
|
T1CTL_DIV0 = 0x04
|
||
|
T1CTL_DIV1 = 0x08
|
||
|
T1CTL_DIV_1 = (0x00 << 2) # Divide tick frequency by 1
|
||
|
T1CTL_DIV_128 = (0x03 << 2) # Divide tick frequency by 128
|
||
|
T1CTL_DIV_32 = (0x02 << 2) # Divide tick frequency by 32
|
||
|
T1CTL_DIV_8 = (0x01 << 2) # Divide tick frequency by 8
|
||
|
T1CTL_MODE = 0x03
|
||
|
T1CTL_MODE0 = 0x01
|
||
|
T1CTL_MODE1 = 0x02
|
||
|
T1CTL_MODE_FREERUN = (0x01) # Free Running mode
|
||
|
T1CTL_MODE_MODULO = (0x02) # Modulo
|
||
|
T1CTL_MODE_SUSPEND = (0x00) # Operation is suspended (halt)
|
||
|
T1CTL_MODE_UPDOWN = (0x03) # Up/down
|
||
|
T1CTL_OVFIF = 0x10 # Timer 1 counter overflow interrupt flag
|
||
|
T1IE = 2
|
||
|
T1IF = 2
|
||
|
T1_VECTOR = 9 # Timer 1 (16-bit) Capture/Compare/Overflow
|
||
|
T2CT = 0x9C
|
||
|
T2CTL = 0x9E
|
||
|
T2CTL_INT = 0x10 # Enable Timer 2 interrupt
|
||
|
T2CTL_TEX = 0x40
|
||
|
T2CTL_TIG = 0x04 # Tick generator mode
|
||
|
T2CTL_TIP = 0x03
|
||
|
T2CTL_TIP0 = 0x01
|
||
|
T2CTL_TIP1 = 0x02
|
||
|
T2CTL_TIP_1024 = (0x03)
|
||
|
T2CTL_TIP_128 = (0x01)
|
||
|
T2CTL_TIP_256 = (0x02)
|
||
|
T2CTL_TIP_64 = (0x00)
|
||
|
T2IE = 4
|
||
|
T2IF = 4
|
||
|
T2PR = 0x9D
|
||
|
T2_VECTOR = 10 # Timer 2 (MAC Timer) Overflow
|
||
|
T3C0_CLR_CMP_SET_0 = (0x06 << 3) # Clear when equal to T3CC0, set on 0
|
||
|
T3C0_CLR_CMP_UP_SET_0 = (0x04 << 3) # Clear output on compare-up set on 0
|
||
|
T3C0_CLR_ON_CMP = (0x01 << 3) # Clear output on compare
|
||
|
T3C0_SET_CMP_CLR_255 = (0x05 << 3) # Set when equal to T3CC0, clear on 255
|
||
|
T3C0_SET_CMP_UP_CLR_0 = (0x03 << 3) # Set output on compare-up clear on 0
|
||
|
T3C0_SET_ON_CMP = (0x00 << 3) # Set output on compare
|
||
|
T3C0_TOG_ON_CMP = (0x02 << 3) # Toggle output on compare
|
||
|
T3C1_CLR_CMP_SET_C0 = (0x06 << 3) # Clear when equal to T3CC1, set when equal to T3CC0
|
||
|
T3C1_CLR_CMP_UP_SET_0 = (0x04 << 3) # Clear output on compare-up set on 0
|
||
|
T3C1_CLR_ON_CMP = (0x01 << 3) # Clear output on compare
|
||
|
T3C1_SET_CMP_CLR_C0 = (0x05 << 3) # Set when equal to T3CC1, clear when equal to T3CC0
|
||
|
T3C1_SET_CMP_UP_CLR_0 = (0x03 << 3) # Set output on compare-up clear on 0
|
||
|
T3C1_SET_ON_CMP = (0x00 << 3) # Set output on compare
|
||
|
T3C1_TOG_ON_CMP = (0x02 << 3) # Toggle output on compare
|
||
|
T3CC0 = 0xCD
|
||
|
T3CC1 = 0xCF
|
||
|
T3CCTL0 = 0xCC
|
||
|
T3CCTL0_CMP = 0x38
|
||
|
T3CCTL0_CMP0 = 0x08
|
||
|
T3CCTL0_CMP1 = 0x10
|
||
|
T3CCTL0_CMP2 = 0x20
|
||
|
T3CCTL0_IM = 0x40
|
||
|
T3CCTL0_MODE = 0x04
|
||
|
T3CCTL1 = 0xCE
|
||
|
T3CCTL1_CMP = 0x38
|
||
|
T3CCTL1_CMP0 = 0x08
|
||
|
T3CCTL1_CMP1 = 0x10
|
||
|
T3CCTL1_CMP2 = 0x20
|
||
|
T3CCTL1_IM = 0x40
|
||
|
T3CCTL1_MODE = 0x04
|
||
|
T3CH0IF = 2
|
||
|
T3CH1IF = 4
|
||
|
T3CNT = 0xCA
|
||
|
T3CTL = 0xCB
|
||
|
T3CTL_CLR = 0x04
|
||
|
T3CTL_DIV = 0xE0
|
||
|
T3CTL_DIV0 = 0x20
|
||
|
T3CTL_DIV1 = 0x40
|
||
|
T3CTL_DIV2 = 0x80
|
||
|
T3CTL_DIV_1 = (0x00 << 5)
|
||
|
T3CTL_DIV_128 = (0x07 << 5)
|
||
|
T3CTL_DIV_16 = (0x04 << 5)
|
||
|
T3CTL_DIV_2 = (0x01 << 5)
|
||
|
T3CTL_DIV_32 = (0x05 << 5)
|
||
|
T3CTL_DIV_4 = (0x02 << 5)
|
||
|
T3CTL_DIV_64 = (0x06 << 5)
|
||
|
T3CTL_DIV_8 = (0x03 << 5)
|
||
|
T3CTL_MODE = 0x03
|
||
|
T3CTL_MODE0 = 0x01
|
||
|
T3CTL_MODE1 = 0x02
|
||
|
T3CTL_MODE_DOWN = (0x01)
|
||
|
T3CTL_MODE_FREERUN = (0x00)
|
||
|
T3CTL_MODE_MODULO = (0x02)
|
||
|
T3CTL_MODE_UPDOWN = (0x03)
|
||
|
T3CTL_OVFIM = 0x08
|
||
|
T3CTL_START = 0x10
|
||
|
T3IE = 8
|
||
|
T3IF = 8
|
||
|
T3OVFIF = 1
|
||
|
T3_VECTOR = 11 # Timer 3 (8-bit) Capture/Compare/Overflow
|
||
|
T4CC0 = 0xED
|
||
|
T4CC1 = 0xEF
|
||
|
T4CCTL0 = 0xEC
|
||
|
T4CCTL0_CLR_CMP_SET_0 = (0x06 << 3)
|
||
|
T4CCTL0_CLR_CMP_UP_SET_0 = (0x04 << 3)
|
||
|
T4CCTL0_CLR_ON_CMP = (0x01 << 3)
|
||
|
T4CCTL0_CMP = 0x38
|
||
|
T4CCTL0_CMP0 = 0x08
|
||
|
T4CCTL0_CMP1 = 0x10
|
||
|
T4CCTL0_CMP2 = 0x20
|
||
|
T4CCTL0_IM = 0x40
|
||
|
T4CCTL0_MODE = 0x04
|
||
|
T4CCTL0_SET_CMP_CLR_255 = (0x05 << 3)
|
||
|
T4CCTL0_SET_CMP_UP_CLR_0 = (0x03 << 3)
|
||
|
T4CCTL0_SET_ON_CMP = (0x00 << 3)
|
||
|
T4CCTL0_TOG_ON_CMP = (0x02 << 3)
|
||
|
T4CCTL1 = 0xEE
|
||
|
T4CCTL1_CLR_CMP_SET_C0 = (0x06 << 3)
|
||
|
T4CCTL1_CLR_CMP_UP_SET_0 = (0x04 << 3)
|
||
|
T4CCTL1_CLR_ON_CMP = (0x01 << 3)
|
||
|
T4CCTL1_CMP = 0x38
|
||
|
T4CCTL1_CMP0 = 0x08
|
||
|
T4CCTL1_CMP1 = 0x10
|
||
|
T4CCTL1_CMP2 = 0x20
|
||
|
T4CCTL1_IM = 0x40
|
||
|
T4CCTL1_MODE = 0x04
|
||
|
T4CCTL1_SET_CMP_CLR_C0 = (0x05 << 3)
|
||
|
T4CCTL1_SET_CMP_UP_CLR_0 = (0x03 << 3)
|
||
|
T4CCTL1_SET_ON_CMP = (0x00 << 3)
|
||
|
T4CCTL1_TOG_ON_CMP = (0x02 << 3)
|
||
|
T4CH0IF = 16
|
||
|
T4CH1IF = 32
|
||
|
T4CNT = 0xEA
|
||
|
T4CTL = 0xEB
|
||
|
T4CTL_CLR = 0x04
|
||
|
T4CTL_DIV = 0xE0
|
||
|
T4CTL_DIV0 = 0x20
|
||
|
T4CTL_DIV1 = 0x40
|
||
|
T4CTL_DIV2 = 0x80
|
||
|
T4CTL_DIV_1 = (0x00 << 5)
|
||
|
T4CTL_DIV_128 = (0x07 << 5)
|
||
|
T4CTL_DIV_16 = (0x04 << 5)
|
||
|
T4CTL_DIV_2 = (0x01 << 5)
|
||
|
T4CTL_DIV_32 = (0x05 << 5)
|
||
|
T4CTL_DIV_4 = (0x02 << 5)
|
||
|
T4CTL_DIV_64 = (0x06 << 5)
|
||
|
T4CTL_DIV_8 = (0x03 << 5)
|
||
|
T4CTL_MODE = 0x03
|
||
|
T4CTL_MODE0 = 0x01
|
||
|
T4CTL_MODE1 = 0x02
|
||
|
T4CTL_MODE_DOWN = (0x01)
|
||
|
T4CTL_MODE_FREERUN = (0x00)
|
||
|
T4CTL_MODE_MODULO = (0x02)
|
||
|
T4CTL_MODE_UPDOWN = (0x03)
|
||
|
T4CTL_OVFIM = 0x08
|
||
|
T4CTL_START = 0x10
|
||
|
T4IE = 16
|
||
|
T4IF = 16
|
||
|
T4OVFIF = 8
|
||
|
T4_VECTOR = 12 # Timer 4 (8-bit) Capture/Compare/Overflow
|
||
|
TCON = 0x88
|
||
|
TEST0 = 0xDF25
|
||
|
TEST1 = 0xDF24
|
||
|
TEST2 = 0xDF23
|
||
|
TICKSPD_DIV_1 = (0x00 << 3)
|
||
|
TICKSPD_DIV_128 = (0x07 << 3)
|
||
|
TICKSPD_DIV_16 = (0x04 << 3)
|
||
|
TICKSPD_DIV_2 = (0x01 << 3)
|
||
|
TICKSPD_DIV_32 = (0x05 << 3)
|
||
|
TICKSPD_DIV_4 = (0x02 << 3)
|
||
|
TICKSPD_DIV_64 = (0x06 << 3)
|
||
|
TICKSPD_DIV_8 = (0x03 << 3)
|
||
|
TIMIF = 0xD8
|
||
|
TX_BYTE = 2
|
||
|
U0BAUD = 0xC2
|
||
|
U0CSR = 0x86
|
||
|
U0CSR_ACTIVE = 0x01
|
||
|
U0CSR_ERR = 0x08
|
||
|
U0CSR_FE = 0x10
|
||
|
U0CSR_MODE = 0x80
|
||
|
U0CSR_RE = 0x40
|
||
|
U0CSR_RX_BYTE = 0x04
|
||
|
U0CSR_SLAVE = 0x20
|
||
|
U0CSR_TX_BYTE = 0x02
|
||
|
U0DBUF = 0xC1
|
||
|
U0GCR = 0xC5
|
||
|
U0GCR_BAUD_E = 0x1F
|
||
|
U0GCR_BAUD_E0 = 0x01
|
||
|
U0GCR_BAUD_E1 = 0x02
|
||
|
U0GCR_BAUD_E2 = 0x04
|
||
|
U0GCR_BAUD_E3 = 0x08
|
||
|
U0GCR_BAUD_E4 = 0x10
|
||
|
U0GCR_CPHA = 0x40
|
||
|
U0GCR_CPOL = 0x80
|
||
|
U0GCR_ORDER = 0x20
|
||
|
U0UCR = 0xC4
|
||
|
U0UCR_BIT9 = 0x10
|
||
|
U0UCR_D9 = 0x20
|
||
|
U0UCR_FLOW = 0x40
|
||
|
U0UCR_FLUSH = 0x80
|
||
|
U0UCR_PARITY = 0x08
|
||
|
U0UCR_SPB = 0x04
|
||
|
U0UCR_START = 0x01
|
||
|
U0UCR_STOP = 0x02
|
||
|
U1BAUD = 0xFA
|
||
|
U1CSR = 0xF8
|
||
|
U1CSR_ACTIVE = 0x01
|
||
|
U1CSR_ERR = 0x08
|
||
|
U1CSR_FE = 0x10
|
||
|
U1CSR_MODE = 0x80
|
||
|
U1CSR_RE = 0x40
|
||
|
U1CSR_RX_BYTE = 0x04
|
||
|
U1CSR_SLAVE = 0x20
|
||
|
U1CSR_TX_BYTE = 0x02
|
||
|
U1DBUF = 0xF9
|
||
|
U1GCR = 0xFC
|
||
|
U1GCR_BAUD_E = 0x1F
|
||
|
U1GCR_BAUD_E0 = 0x01
|
||
|
U1GCR_BAUD_E1 = 0x02
|
||
|
U1GCR_BAUD_E2 = 0x04
|
||
|
U1GCR_BAUD_E3 = 0x08
|
||
|
U1GCR_BAUD_E4 = 0x10
|
||
|
U1GCR_CPHA = 0x40
|
||
|
U1GCR_CPOL = 0x80
|
||
|
U1GCR_ORDER = 0x20
|
||
|
U1UCR = 0xFB
|
||
|
U1UCR_BIT9 = 0x10
|
||
|
U1UCR_D9 = 0x20
|
||
|
U1UCR_FLOW = 0x40
|
||
|
U1UCR_FLUSH = 0x80
|
||
|
U1UCR_PARITY = 0x08
|
||
|
U1UCR_SPB = 0x04
|
||
|
U1UCR_START = 0x01
|
||
|
U1UCR_STOP = 0x02
|
||
|
URX0IE = 4
|
||
|
URX0IF = 8
|
||
|
URX0_VECTOR = 2 # USART0 RX Complete
|
||
|
URX1IE = 8
|
||
|
URX1IF = 128
|
||
|
URX1_VECTOR = 3 # USART1 RX Complete
|
||
|
USBADDR = 0xDE00
|
||
|
USBADDR_UPDATE = 0x80 #r
|
||
|
USBCIE = 0xDE0B
|
||
|
USBCIE_RESUMEIE = 0x02 #rw
|
||
|
USBCIE_RSTIE = 0x04 #rw
|
||
|
USBCIE_SOFIE = 0x08 #rw
|
||
|
USBCIE_SUSPENDIE = 0x01 #rw
|
||
|
USBCIF = 0xDE06
|
||
|
USBCIF_RESUMEIF = 0x02 #r h0
|
||
|
USBCIF_RSTIF = 0x04 #r h0
|
||
|
USBCIF_SOFIF = 0x08 #r h0
|
||
|
USBCIF_SUSPENDIF = 0x01 #r h0
|
||
|
USBCNT0 = 0xDE16
|
||
|
USBCNTH = 0xDE17
|
||
|
USBCNTL = 0xDE16
|
||
|
USBCS0 = 0xDE11
|
||
|
USBCS0_CLR_OUTPKT_RDY = 0x40 #rw h0
|
||
|
USBCS0_CLR_SETUP_END = 0x80 #rw h0
|
||
|
USBCS0_DATA_END = 0x08 #rw h0
|
||
|
USBCS0_INPKT_RDY = 0x02 #rw h0
|
||
|
USBCS0_OUTPKT_RDY = 0x01 #r
|
||
|
USBCS0_SEND_STALL = 0x20 #rw h0
|
||
|
USBCS0_SENT_STALL = 0x04 #rw h1
|
||
|
USBCS0_SETUP_END = 0x10 #r
|
||
|
USBCSIH = 0xDE12
|
||
|
USBCSIH_AUTOSET = 0x80 #rw
|
||
|
USBCSIH_FORCE_DATA_TOG = 0x08 #rw
|
||
|
USBCSIH_IN_DBL_BUF = 0x01 #rw
|
||
|
USBCSIH_ISO = 0x40 #rw
|
||
|
USBCSIL = 0xDE11
|
||
|
USBCSIL_CLR_DATA_TOG = 0x40 #rw h0
|
||
|
USBCSIL_FLUSH_PACKET = 0x08 #rw h0
|
||
|
USBCSIL_INPKT_RDY = 0x01 #rw h0
|
||
|
USBCSIL_PKT_PRESENT = 0x02 #r
|
||
|
USBCSIL_SEND_STALL = 0x10 #rw
|
||
|
USBCSIL_SENT_STALL = 0x20 #rw
|
||
|
USBCSIL_UNDERRUN = 0x04 #rw
|
||
|
USBCSOH = 0xDE15
|
||
|
USBCSOH_AUTOCLEAR = 0x80 #rw
|
||
|
USBCSOH_ISO = 0x40 #rw
|
||
|
USBCSOH_OUT_DBL_BUF = 0x01 #rw
|
||
|
USBCSOL = 0xDE14
|
||
|
USBCSOL_CLR_DATA_TOG = 0x80 #rw h0
|
||
|
USBCSOL_DATA_ERROR = 0x08 #r
|
||
|
USBCSOL_FIFO_FULL = 0x02 #r
|
||
|
USBCSOL_FLUSH_PACKET = 0x10 #rw
|
||
|
USBCSOL_OUTPKT_RDY = 0x01 #rw
|
||
|
USBCSOL_OVERRUN = 0x04 #rw
|
||
|
USBCSOL_SEND_STALL = 0x20 #rw
|
||
|
USBCSOL_SENT_STALL = 0x40 #rw
|
||
|
USBF0 = 0xDE20
|
||
|
USBF1 = 0xDE22
|
||
|
USBF2 = 0xDE24
|
||
|
USBF3 = 0xDE26
|
||
|
USBF4 = 0xDE28
|
||
|
USBF5 = 0xDE2A
|
||
|
USBFRMH = 0xDE0D
|
||
|
USBFRML = 0xDE0C
|
||
|
USBIF = 1
|
||
|
USBIIE = 0xDE07
|
||
|
USBIIE_EP0IE = 0x01 #rw
|
||
|
USBIIE_INEP1IE = 0x02 #rw
|
||
|
USBIIE_INEP2IE = 0x04 #rw
|
||
|
USBIIE_INEP3IE = 0x08 #rw
|
||
|
USBIIE_INEP4IE = 0x10 #rw
|
||
|
USBIIE_INEP5IE = 0x20 #rw
|
||
|
USBIIF = 0xDE02
|
||
|
USBIIF_EP0IF = 0x01 #r h0
|
||
|
USBIIF_INEP1IF = 0x02 #r h0
|
||
|
USBIIF_INEP2IF = 0x04 #r h0
|
||
|
USBIIF_INEP3IF = 0x08 #r h0
|
||
|
USBIIF_INEP4IF = 0x10 #r h0
|
||
|
USBIIF_INEP5IF = 0x20 #r h0
|
||
|
USBINDEX = 0xDE0E
|
||
|
USBMAXI = 0xDE10
|
||
|
USBMAXO = 0xDE13
|
||
|
USBOIE = 0xDE09
|
||
|
USBOIE_EP1IE = 0x02 #rw
|
||
|
USBOIE_EP2IE = 0x04 #rw
|
||
|
USBOIE_EP3IE = 0x08 #rw
|
||
|
USBOIE_EP4IE = 0x10 #rw
|
||
|
USBOIE_EP5IE = 0x20 #rw
|
||
|
USBOIF = 0xDE04
|
||
|
USBOIF_OUTEP1IF = 0x02 #r h0
|
||
|
USBOIF_OUTEP2IF = 0x04 #r h0
|
||
|
USBOIF_OUTEP3IF = 0x08 #r h0
|
||
|
USBOIF_OUTEP4IF = 0x10 #r h0
|
||
|
USBOIF_OUTEP5IF = 0x20 #r h0
|
||
|
USBPOW = 0xDE01
|
||
|
USBPOW_ISO_WAIT_SOF = 0x80 #rw
|
||
|
USBPOW_RESUME = 0x04 #rw
|
||
|
USBPOW_RST = 0x08 #r
|
||
|
USBPOW_SUSPEND = 0x02 #r
|
||
|
USBPOW_SUSPEND_EN = 0x01 #rw
|
||
|
USB_BM_REQTYPE_DIRMASK = 0x80
|
||
|
USB_BM_REQTYPE_DIR_IN = 0x80
|
||
|
USB_BM_REQTYPE_DIR_OUT = 0x00
|
||
|
USB_BM_REQTYPE_TGTMASK = 0x1f
|
||
|
USB_BM_REQTYPE_TGT_DEV = 0x00
|
||
|
USB_BM_REQTYPE_TGT_EP = 0x02
|
||
|
USB_BM_REQTYPE_TGT_INTF = 0x01
|
||
|
USB_BM_REQTYPE_TYPEMASK = 0x60
|
||
|
USB_BM_REQTYPE_TYPE_CLASS = 0x20
|
||
|
USB_BM_REQTYPE_TYPE_RESERVED = 0x60
|
||
|
USB_BM_REQTYPE_TYPE_STD = 0x00
|
||
|
USB_BM_REQTYPE_TYPE_VENDOR = 0x40
|
||
|
USB_CLEAR_FEATURE = 0x01
|
||
|
USB_DESC_CONFIG = 0x02
|
||
|
USB_DESC_DEVICE = 0x01
|
||
|
USB_DESC_ENDPOINT = 0x05
|
||
|
USB_DESC_INTERFACE = 0x04
|
||
|
USB_DESC_STRING = 0x03
|
||
|
USB_ENABLE_PIN = P1_0
|
||
|
USB_GET_CONFIGURATION = 0x08
|
||
|
USB_GET_DESCRIPTOR = 0x06
|
||
|
USB_GET_INTERFACE = 0x0a
|
||
|
USB_GET_STATUS = 0x00
|
||
|
USB_SET_ADDRESS = 0x05
|
||
|
USB_SET_CONFIGURATION = 0x09
|
||
|
USB_SET_DESCRIPTOR = 0x07
|
||
|
USB_SET_FEATURE = 0x03
|
||
|
USB_SET_INTERFACE = 0x11
|
||
|
USB_STATE_BLINK = 0xff
|
||
|
USB_STATE_IDLE = 0
|
||
|
USB_STATE_RESET = 3
|
||
|
USB_STATE_RESUME = 2
|
||
|
USB_STATE_SUSPEND = 1
|
||
|
USB_STATE_WAIT_ADDR = 4
|
||
|
USB_SYNCH_FRAME = 0x12
|
||
|
UTX0IF = 2
|
||
|
UTX0_VECTOR = 7 # USART0 TX Complete
|
||
|
UTX1IF = 4
|
||
|
UTX1_VECTOR = 14 # USART1 TX Complete
|
||
|
VCO_VC_DAC = 0xDF3D
|
||
|
VERSION = 0xDF37
|
||
|
WDCTL = 0xC9
|
||
|
WDCTL_CLR = 0xF0
|
||
|
WDCTL_CLR0 = 0x10
|
||
|
WDCTL_CLR1 = 0x20
|
||
|
WDCTL_CLR2 = 0x40
|
||
|
WDCTL_CLR3 = 0x80
|
||
|
WDCTL_EN = 0x08
|
||
|
WDCTL_INT = 0x03
|
||
|
WDCTL_INT0 = 0x01
|
||
|
WDCTL_INT1 = 0x02
|
||
|
WDCTL_INT1_MSEC_250 = (0x01)
|
||
|
WDCTL_INT2_MSEC_15 = (0x02)
|
||
|
WDCTL_INT3_MSEC_2 = (0x03)
|
||
|
WDCTL_INT_SEC_1 = (0x00)
|
||
|
WDCTL_MODE = 0x04
|
||
|
WDTIF = 16
|
||
|
WDT_VECTOR = 17 # Watchdog Overflow in Timer Mode
|
||
|
WORCTL_WOR_RES = 0x03
|
||
|
WORCTL_WOR_RES0 = 0x01
|
||
|
WORCTL_WOR_RES1 = 0x02
|
||
|
WORCTL_WOR_RESET = 0x04
|
||
|
WORCTL_WOR_RES_1 = (0x00)
|
||
|
WORCTL_WOR_RES_1024 = (0x02)
|
||
|
WORCTL_WOR_RES_32 = (0x01)
|
||
|
WORCTL_WOR_RES_32768 = (0x03)
|
||
|
WORCTRL = 0xA2
|
||
|
WOREVT0 = 0xA3
|
||
|
WOREVT1 = 0xA4
|
||
|
WORIRQ = 0xA1
|
||
|
WORIRQ_EVENT0_FLAG = 0x01
|
||
|
WORIRQ_EVENT0_MASK = 0x10
|
||
|
WORTIME0 = 0xA5
|
||
|
WORTIME1 = 0xA6
|
||
|
X_ADCCFG = 0xDFF2
|
||
|
X_ADCCON1 = 0xDFB4
|
||
|
X_ADCCON2 = 0xDFB5
|
||
|
X_ADCCON3 = 0xDFB6
|
||
|
X_ADCH = 0xDFBB
|
||
|
X_ADCL = 0xDFBA
|
||
|
X_CLKCON = 0xDFC6
|
||
|
X_DMA0CFGH = 0xDFD5
|
||
|
X_DMA0CFGL = 0xDFD4
|
||
|
X_DMA1CFGH = 0xDFD3
|
||
|
X_DMA1CFGL = 0xDFD2
|
||
|
X_DMAARM = 0xDFD6
|
||
|
X_DMAIRQ = 0xDFD1
|
||
|
X_DMAREQ = 0xDFD7
|
||
|
X_ENCCS = 0xDFB3
|
||
|
X_ENCDI = 0xDFB1
|
||
|
X_ENCDO = 0xDFB2
|
||
|
X_FADDRH = 0xDFAD
|
||
|
X_FADDRL = 0xDFAC
|
||
|
X_FCTL = 0xDFAE
|
||
|
X_FWDATA = 0xDFAF
|
||
|
X_FWT = 0xDFAB
|
||
|
X_MEMCTR = 0xDFC7
|
||
|
X_MPAGE = 0xDF93
|
||
|
X_P0DIR = 0xDFFD
|
||
|
X_P0IFG = 0xDF89
|
||
|
X_P0INP = 0xDF8F
|
||
|
X_P0SEL = 0xDFF3
|
||
|
X_P1DIR = 0xDFFE
|
||
|
X_P1IEN = 0xDF8D
|
||
|
X_P1IFG = 0xDF8A
|
||
|
X_P1INP = 0xDFF6
|
||
|
X_P1SEL = 0xDFF4
|
||
|
X_P2DIR = 0xDFFF
|
||
|
X_P2IFG = 0xDF8B
|
||
|
X_P2INP = 0xDFF7
|
||
|
X_P2SEL = 0xDFF5
|
||
|
X_PERCFG = 0xDFF1
|
||
|
X_PICTL = 0xDF8C
|
||
|
X_RFD = 0xDFD9
|
||
|
X_RFIF = 0xDFE9
|
||
|
X_RFIM = 0xDF91
|
||
|
X_RFST = 0xDFE1
|
||
|
X_RNDH = 0xDFBD
|
||
|
X_RNDL = 0xDFBC
|
||
|
X_SLEEP = 0xDFBE
|
||
|
X_T1CC0H = 0xDFDB
|
||
|
X_T1CC0L = 0xDFDA
|
||
|
X_T1CC1H = 0xDFDD
|
||
|
X_T1CC1L = 0xDFDC
|
||
|
X_T1CC2H = 0xDFDF
|
||
|
X_T1CC2L = 0xDFDE
|
||
|
X_T1CCTL0 = 0xDFE5
|
||
|
X_T1CCTL1 = 0xDFE6
|
||
|
X_T1CCTL2 = 0xDFE7
|
||
|
X_T1CNTH = 0xDFE3
|
||
|
X_T1CNTL = 0xDFE2
|
||
|
X_T1CTL = 0xDFE4
|
||
|
X_T2CT = 0xDF9C
|
||
|
X_T2CTL = 0xDF9E
|
||
|
X_T2PR = 0xDF9D
|
||
|
X_T3CC0 = 0xDFCD
|
||
|
X_T3CC1 = 0xDFCF
|
||
|
X_T3CCTL0 = 0xDFCC
|
||
|
X_T3CCTL1 = 0xDFCE
|
||
|
X_T3CNT = 0xDFCA
|
||
|
X_T3CTL = 0xDFCB
|
||
|
X_T4CC0 = 0xDFED
|
||
|
X_T4CC1 = 0xDFEF
|
||
|
X_T4CCTL0 = 0xDFEC
|
||
|
X_T4CCTL1 = 0xDFEE
|
||
|
X_T4CNT = 0xDFEA
|
||
|
X_T4CTL = 0xDFEB
|
||
|
X_TIMIF = 0xDFD8
|
||
|
X_U0BAUD = 0xDFC2
|
||
|
X_U0CSR = 0xDF86
|
||
|
X_U0DBUF = 0xDFC1
|
||
|
X_U0GCR = 0xDFC5
|
||
|
X_U0UCR = 0xDFC4
|
||
|
X_U1BAUD = 0xDFFA
|
||
|
X_U1CSR = 0xDFF8
|
||
|
X_U1DBUF = 0xDFF9
|
||
|
X_U1GCR = 0xDFFC
|
||
|
X_U1UCR = 0xDFFB
|
||
|
X_WDCTL = 0xDFC9
|
||
|
X_WORCTRL = 0xDFA2
|
||
|
X_WOREVT0 = 0xDFA3
|
||
|
X_WOREVT1 = 0xDFA4
|
||
|
X_WORIRQ = 0xDFA1
|
||
|
X_WORTIME0 = 0xDFA5
|
||
|
X_WORTIME1 = 0xDFA6
|
||
|
_NA_ACC = 0xDFE0
|
||
|
_NA_B = 0xDFF0
|
||
|
_NA_DPH0 = 0xDF83
|
||
|
_NA_DPH1 = 0xDF85
|
||
|
_NA_DPL0 = 0xDF82
|
||
|
_NA_DPL1 = 0xDF84
|
||
|
_NA_DPS = 0xDF92
|
||
|
_NA_IEN0 = 0xDFA8
|
||
|
_NA_IEN1 = 0xDFB8
|
||
|
_NA_IEN2 = 0xDF9A
|
||
|
_NA_IP0 = 0xDFA9
|
||
|
_NA_IP1 = 0xDFB9
|
||
|
_NA_IRCON = 0xDFC0
|
||
|
_NA_IRCON2 = 0xDFE8
|
||
|
_NA_P0 = 0xDF80
|
||
|
_NA_P1 = 0xDF90
|
||
|
_NA_P2 = 0xDFA0
|
||
|
_NA_PCON = 0xDF87
|
||
|
_NA_PSW = 0xDFD0
|
||
|
_NA_S0CON = 0xDF98
|
||
|
_NA_S1CON = 0xDF9B
|
||
|
_NA_SP = 0xDF81
|
||
|
_NA_TCON = 0xDF88
|
||
|
_SFR8E = 0x8E
|
||
|
_SFR94 = 0x94
|
||
|
_SFR95 = 0x95
|
||
|
_SFR96 = 0x96
|
||
|
_SFR97 = 0x97
|
||
|
_SFR99 = 0x99
|
||
|
_SFR9F = 0x9F
|
||
|
_SFRA7 = 0xA7
|
||
|
_SFRAA = 0xAA
|
||
|
_SFRB0 = 0xB0
|
||
|
_SFRB7 = 0xB7
|
||
|
_SFRBF = 0xBF
|
||
|
_SFRC3 = 0xC3
|
||
|
_SFRC8 = 0xC8
|
||
|
_XPAGE = 0x93
|
||
|
_XREGDF20 = 0xDF20
|
||
|
_XREGDF21 = 0xDF21
|
||
|
_XREGDF22 = 0xDF22
|
||
|
_XREGDF26 = 0xDF26
|
||
|
_XREGDF32 = 0xDF32
|
||
|
_XREGDF33 = 0xDF33
|
||
|
_XREGDF34 = 0xDF34
|
||
|
_XREGDF35 = 0xDF35
|
||
|
_X_SFR8E = 0xDF8E
|
||
|
_X_SFR94 = 0xDF94
|
||
|
_X_SFR95 = 0xDF95
|
||
|
_X_SFR96 = 0xDF96
|
||
|
_X_SFR97 = 0xDF97
|
||
|
_X_SFR99 = 0xDF99
|
||
|
_X_SFR9F = 0xDF9F
|
||
|
_X_SFRA7 = 0xDFA7
|
||
|
_X_SFRAA = 0xDFAA
|
||
|
_X_SFRB0 = 0xDFB0
|
||
|
_X_SFRB7 = 0xDFB7
|
||
|
_X_SFRBF = 0xDFBF
|
||
|
_X_SFRC3 = 0xDFC3
|
||
|
_X_SFRC8 = 0xDFC8
|
||
|
|
||
|
# AES co-processor
|
||
|
# defines for specifying desired crypto operations.
|
||
|
# AES_CRYPTO is in two halves:
|
||
|
# upper 4 bits mirror CC1111 mode (ENCCS_MODE_CBC etc.)
|
||
|
# lower 4 bits are switches
|
||
|
# AES_CRYPTO[7:4] ENCCS_MODE...
|
||
|
# AES_CRYPTO[3] OUTBOUND 0 == OFF, 1 == ON
|
||
|
# AES_CRYPTO[2] OUTBOUND 0 == Decrypt, 1 == Encrypt
|
||
|
# AES_CRYPTO[1] INBOUND 0 == OFF, 1 == ON
|
||
|
# AES_CRYPTO[0] INBOUND 0 == Decrypt, 1 == Encrypt
|
||
|
# bitfields
|
||
|
AES_CRYPTO_MODE = 0xF0
|
||
|
AES_CRYPTO_OUT = 0x0C
|
||
|
AES_CRYPTO_OUT_ENABLE = 0x08
|
||
|
AES_CRYPTO_OUT_ON = (0x01 << 3)
|
||
|
AES_CRYPTO_OUT_OFF = (0x00 << 3)
|
||
|
AES_CRYPTO_OUT_TYPE = 0x04
|
||
|
AES_CRYPTO_OUT_DECRYPT = (0x00 << 2)
|
||
|
AES_CRYPTO_OUT_ENCRYPT = (0x01 << 2)
|
||
|
AES_CRYPTO_IN = 0x03
|
||
|
AES_CRYPTO_IN_ENABLE = 0x02
|
||
|
AES_CRYPTO_IN_ON = (0x01 << 1)
|
||
|
AES_CRYPTO_IN_OFF = (0x00 << 1)
|
||
|
AES_CRYPTO_IN_TYPE = 0x01
|
||
|
AES_CRYPTO_IN_DECRYPT = (0x00 << 0)
|
||
|
AES_CRYPTO_IN_ENCRYPT = (0x01 << 0)
|
||
|
AES_CRYPTO_NONE = 0x00
|
||
|
AES_CRYPTO_DEFAULT = (ENCCS_MODE_CBC | AES_CRYPTO_OUT_ON | AES_CRYPTO_OUT_ENCRYPT | AES_CRYPTO_IN_ON | AES_CRYPTO_IN_DECRYPT)
|
||
|
# flags
|
||
|
AES_DISABLE = 0x00
|
||
|
AES_ENABLE = 0x01
|
||
|
AES_DECRYPT = 0x00
|
||
|
AES_ENCRYPT = 0x01
|
||
|
|
||
|
|
||
|
|
||
|
ADCCON1S = {}
|
||
|
ADCCON2S = {}
|
||
|
ADCCON3S = {}
|
||
|
AGCCTRL0S = {}
|
||
|
AGCCTRL1S = {}
|
||
|
BSCFGS = {}
|
||
|
CLKCONS = {}
|
||
|
CLKSPDS = {}
|
||
|
DEVIATNS = {}
|
||
|
IEN0S = {}
|
||
|
IEN1S = {}
|
||
|
IEN2S = {}
|
||
|
IOCFG0S = {}
|
||
|
IOCFG1S = {}
|
||
|
IOCFG2S = {}
|
||
|
MARC_STATES = {}
|
||
|
MCSM0S = {}
|
||
|
MCSM1S = {}
|
||
|
MCSM2S = {}
|
||
|
MDMCFG2S = {}
|
||
|
PKTCTRL0S = {}
|
||
|
PKTCTRL1S = {}
|
||
|
RFIFS = {}
|
||
|
RFIMS = {}
|
||
|
|
||
|
for key,val in globals().items():
|
||
|
if key.startswith("RFIF_"):
|
||
|
RFIFS[val] = key
|
||
|
elif key.startswith("RFIM_"):
|
||
|
RFIMS[val] = key
|
||
|
elif key.startswith("ADCCON1_"):
|
||
|
ADCCON1S[val] = key
|
||
|
elif key.startswith("ADCCON2_"):
|
||
|
ADCCON2S[val] = key
|
||
|
elif key.startswith("ADCCON3_"):
|
||
|
ADCCON3S[val] = key
|
||
|
elif key.startswith("AGCCTRL0_"):
|
||
|
AGCCTRL0S[val] = key
|
||
|
elif key.startswith("AGCCTRL1_"):
|
||
|
AGCCTRL1S[val] = key
|
||
|
elif key.startswith("BSCFG_"):
|
||
|
BSCFGS[val] = key
|
||
|
elif key.startswith("CLKCON_"):
|
||
|
CLKCONS[val] = key
|
||
|
elif key.startswith("CLKSPD_"):
|
||
|
CLKSPDS[val] = key
|
||
|
elif key.startswith("DEVIATN_"):
|
||
|
DEVIATNS[val] = key
|
||
|
elif key.startswith("IEN0_"):
|
||
|
IEN0S[val] = key
|
||
|
elif key.startswith("IEN1_"):
|
||
|
IEN1S[val] = key
|
||
|
elif key.startswith("IEN2_"):
|
||
|
IEN2S[val] = key
|
||
|
elif key.startswith("IOCFG0_"):
|
||
|
IOCFG0S[val] = key
|
||
|
elif key.startswith("IOCFG1_"):
|
||
|
IOCFG1S[val] = key
|
||
|
elif key.startswith("IOCFG2_"):
|
||
|
IOCFG2S[val] = key
|
||
|
elif key.startswith("MARC_STATE_"):
|
||
|
MARC_STATES[val] = key
|
||
|
elif key.startswith("MCSM0_"):
|
||
|
MCSM0S[val] = key
|
||
|
elif key.startswith("MCSM1_"):
|
||
|
MCSM1S[val] = key
|
||
|
elif key.startswith("MCSM2_"):
|
||
|
MCSM2S[val] = key
|
||
|
elif key.startswith("MDMCFG2_"):
|
||
|
MDMCFG2S[val] = key
|
||
|
elif key.startswith("PKTCTRL0_"):
|
||
|
PKTCTRL0S[val] = key
|
||
|
elif key.startswith("PKTCTRL1_"):
|
||
|
PKTCTRL1S[val] = key
|
||
|
|
||
|
|
||
|
|