mik32-uploader/mik32_debug_hal/registers/bitfields/dma.py

97 lines
3.1 KiB
Python

# --------------------------
# DMA register fields
# --------------------------
CHANNEL_COUNT = 4
CHANNEL_M = ((1 << CHANNEL_COUNT) - 1)
# CONTROL
CONTROL_CLEAR_LOCAL_IRQ_S = 0
CONTROL_CLEAR_LOCAL_IRQ_M = (
CHANNEL_M << CONTROL_CLEAR_LOCAL_IRQ_S)
def CONTROL_CLEAR_LOCAL_IRQ(i):
return ((1 << (CONTROL_CLEAR_LOCAL_IRQ_S + (i))) & CONTROL_CLEAR_LOCAL_IRQ_M)
CONTROL_CLEAR_GLOBAL_IRQ_S = (CHANNEL_COUNT + 0)
CONTROL_CLEAR_GLOBAL_IRQ_M = (1 << CONTROL_CLEAR_GLOBAL_IRQ_S)
CONTROL_CLEAR_ERROR_IRQ_S = (CHANNEL_COUNT + 1)
CONTROL_CLEAR_ERROR_IRQ_M = (1 << CONTROL_CLEAR_ERROR_IRQ_S)
CONTROL_GLOBAL_IRQ_ENA_S = (CHANNEL_COUNT + 2)
CONTROL_GLOBAL_IRQ_ENA_M = (1 << CONTROL_GLOBAL_IRQ_ENA_S)
CONTROL_ERROR_IRQ_ENA_S = (CHANNEL_COUNT + 3)
CONTROL_ERROR_IRQ_ENA_M = (1 << CONTROL_ERROR_IRQ_ENA_S)
CONTROL_CURRENT_VALUE_S = (CHANNEL_COUNT + 4)
CONTROL_CURRENT_VALUE_M = (1 << CONTROL_CURRENT_VALUE_S)
CFG_CH_ENABLE_S = 0
CFG_CH_ENABLE_M = (1 << CFG_CH_ENABLE_S)
CFG_CH_DISABLE_M = (0 << CFG_CH_ENABLE_S)
CFG_CH_PRIOR_S = 1
CFG_CH_PRIOR_M = (0x3 << CFG_CH_PRIOR_S)
CFG_CH_READ_MODE_S = 3
CFG_CH_READ_MODE_memory_M = (1 << CFG_CH_READ_MODE_S)
CFG_CH_READ_MODE_periphery_M = (0 << CFG_CH_READ_MODE_S)
CFG_CH_WRITE_MODE_S = 4
CFG_CH_WRITE_MODE_memory_M = (1 << CFG_CH_WRITE_MODE_S)
CFG_CH_WRITE_MODE_periphery_M = (0 << CFG_CH_WRITE_MODE_S)
CFG_CH_READ_INCREMENT_S = 5
CFG_CH_READ_INCREMENT_M = (1 << CFG_CH_READ_INCREMENT_S)
CFG_CH_READ_no_INCREMENT_M = (0 << CFG_CH_READ_INCREMENT_S)
CFG_CH_READ_INCREMENT_S = 5
CFG_CH_READ_INCREMENT_M = (1 << CFG_CH_READ_INCREMENT_S)
CFG_CH_READ_no_INCREMENT_M = (0 << CFG_CH_READ_INCREMENT_S)
CFG_CH_WRITE_INCREMENT_S = 6
CFG_CH_WRITE_INCREMENT_M = (1 << CFG_CH_WRITE_INCREMENT_S)
CFG_CH_WRITE_no_INCREMENT_M = (0 << CFG_CH_WRITE_INCREMENT_S)
CFG_CH_READ_SIZE_S = 7
CFG_CH_READ_SIZE_byte_M = (0B00 << CFG_CH_READ_SIZE_S) # байт
CFG_CH_READ_SIZE_2byte_M = (0B01 << CFG_CH_READ_SIZE_S) # полуслово
CFG_CH_READ_SIZE_4byte_M = (0B10 << CFG_CH_READ_SIZE_S) # слово
CFG_CH_READ_SIZE_rez_M = (0B11 << CFG_CH_READ_SIZE_S) # резерв
CFG_CH_WRITE_SIZE_S = 9
CFG_CH_WRITE_SIZE_byte_M = (0B00 << CFG_CH_WRITE_SIZE_S) # байт
CFG_CH_WRITE_SIZE_2byte_M = (0B01 << CFG_CH_WRITE_SIZE_S) # полуслово
CFG_CH_WRITE_SIZE_4byte_M = (0B10 << CFG_CH_WRITE_SIZE_S) # слово
CFG_CH_WRITE_SIZE_rez_M = (0B11 << CFG_CH_WRITE_SIZE_S) # резерв
# Кол-во байт пакетной передачи: 2^Read_burst_size
CFG_CH_READ_BURST_SIZE_S = 11
# Кол-во байт пакетной передачи: 2^Write_burst_size
CFG_CH_WRITE_BURST_SIZE_S = 14
CFG_CH_READ_REQ_S = 17 # выбор канала чтения
CFG_CH_READ_REQ_M = (0xF << CFG_CH_READ_REQ_S)
def CFG_CH_READ_REQ(v):
return (((v) << CFG_CH_READ_REQ_S) & CFG_CH_READ_REQ_M)
CFG_CH_WRITE_REQ_S = 21 # выбор канала записи
CFG_CH_WRITE_REQ_M = (0xF << CFG_CH_WRITE_REQ_S)
def CFG_CH_WRITE_REQ(v):
return (((v) << CFG_CH_WRITE_REQ_S) & CFG_CH_WRITE_REQ_M)
CFG_CH_ACK_READ_S = 25
CFG_CH_ACK_READ_M = (1 << CFG_CH_ACK_READ_S)
CFG_CH_ACK_WRITE_S = 26
CFG_CH_ACK_WRITE_M = (1 << CFG_CH_ACK_WRITE_S)
STATUS_READY_S = 0