Toggle Navigation
Hatchery
Eggs
updi_test
constants.py
Users
Badges
Login
Register
MCH2022 badge?
go to mch2022.badge.team
constants.py
raw
Content
""" UPDI protocol constants """ # UPDI commands and control definitions UPDI_BREAK = 0x00 UPDI_LDS = 0x00 UPDI_STS = 0x40 UPDI_LD = 0x20 UPDI_ST = 0x60 UPDI_LDCS = 0x80 UPDI_STCS = 0xC0 UPDI_REPEAT = 0xA0 UPDI_KEY = 0xE0 UPDI_PTR = 0x00 UPDI_PTR_INC = 0x04 UPDI_PTR_ADDRESS = 0x08 UPDI_ADDRESS_8 = 0x00 UPDI_ADDRESS_16 = 0x04 UPDI_DATA_8 = 0x00 UPDI_DATA_16 = 0x01 UPDI_KEY_SIB = 0x04 UPDI_KEY_KEY = 0x00 UPDI_KEY_64 = 0x00 UPDI_KEY_128 = 0x01 UPDI_SIB_8BYTES = UPDI_KEY_64 UPDI_SIB_16BYTES = UPDI_KEY_128 UPDI_REPEAT_BYTE = 0x00 UPDI_REPEAT_WORD = 0x01 UPDI_PHY_SYNC = 0x55 UPDI_PHY_ACK = 0x40 UPDI_MAX_REPEAT_SIZE = 0xFF # CS and ASI Register Address map UPDI_CS_STATUSA = 0x00 UPDI_CS_STATUSB = 0x01 UPDI_CS_CTRLA = 0x02 UPDI_CS_CTRLB = 0x03 UPDI_ASI_KEY_STATUS = 0x07 UPDI_ASI_RESET_REQ = 0x08 UPDI_ASI_CTRLA = 0x09 UPDI_ASI_SYS_CTRLA = 0x0A UPDI_ASI_SYS_STATUS = 0x0B UPDI_ASI_CRC_STATUS = 0x0C UPDI_CTRLA_IBDLY_BIT = 7 UPDI_CTRLA_RSD_BIT = 3 UPDI_CTRLB_CCDETDIS_BIT = 3 UPDI_CTRLB_UPDIDIS_BIT = 2 UPDI_KEY_NVM = b"NVMProg " UPDI_KEY_CHIPERASE = b"NVMErase" UPDI_ASI_STATUSA_REVID = 4 UPDI_ASI_STATUSB_PESIG = 0 UPDI_ASI_KEY_STATUS_CHIPERASE = 3 UPDI_ASI_KEY_STATUS_NVMPROG = 4 UPDI_ASI_KEY_STATUS_UROWWRITE = 5 UPDI_ASI_SYS_STATUS_RSTSYS = 5 UPDI_ASI_SYS_STATUS_INSLEEP = 4 UPDI_ASI_SYS_STATUS_NVMPROG = 3 UPDI_ASI_SYS_STATUS_UROWPROG = 2 UPDI_ASI_SYS_STATUS_LOCKSTATUS = 0 UPDI_RESET_REQ_VALUE = 0x59 # FLASH CONTROLLER UPDI_NVMCTRL_CTRLA = 0x00 UPDI_NVMCTRL_CTRLB = 0x01 UPDI_NVMCTRL_STATUS = 0x02 UPDI_NVMCTRL_INTCTRL = 0x03 UPDI_NVMCTRL_INTFLAGS = 0x04 UPDI_NVMCTRL_DATAL = 0x06 UPDI_NVMCTRL_DATAH = 0x07 UPDI_NVMCTRL_ADDRL = 0x08 UPDI_NVMCTRL_ADDRH = 0x09 # CTRLA UPDI_NVMCTRL_CTRLA_NOP = 0x00 UPDI_NVMCTRL_CTRLA_WRITE_PAGE = 0x01 UPDI_NVMCTRL_CTRLA_ERASE_PAGE = 0x02 UPDI_NVMCTRL_CTRLA_ERASE_WRITE_PAGE = 0x03 UPDI_NVMCTRL_CTRLA_PAGE_BUFFER_CLR = 0x04 UPDI_NVMCTRL_CTRLA_CHIP_ERASE = 0x05 UPDI_NVMCTRL_CTRLA_ERASE_EEPROM = 0x06 UPDI_NVMCTRL_CTRLA_WRITE_FUSE = 0x07 UPDI_NVM_STATUS_WRITE_ERROR = 2 UPDI_NVM_STATUS_EEPROM_BUSY = 1 UPDI_NVM_STATUS_FLASH_BUSY = 0