279 lines
8.3 KiB
Python
279 lines
8.3 KiB
Python
|
|
# TODO: 寄存器统一由excel表格维护
|
|||
|
|
# TODO: 寄存由excel表格生成
|
|||
|
|
FourChZreg_define = {
|
|||
|
|
'sys_reg': {
|
|||
|
|
'IDR': 0x00,
|
|||
|
|
'VIDR': 0x04,
|
|||
|
|
'DATER': 0x08,
|
|||
|
|
'VERR': 0x0C,
|
|||
|
|
'TESTR': 0x10,
|
|||
|
|
'IMR': 0x14,
|
|||
|
|
'ISR': 0x18,
|
|||
|
|
'SFRTR': 0x1C,
|
|||
|
|
'SFRR': 0x20,
|
|||
|
|
'CH0RSTR': 0x24,
|
|||
|
|
'CH1RSTR': 0x28,
|
|||
|
|
'CH2RSTR': 0x2C,
|
|||
|
|
'CH3RSTR': 0x30,
|
|||
|
|
'DBGCFGR': 0x34,
|
|||
|
|
'MISR': 0x40,
|
|||
|
|
'SYNCR': 0x44,
|
|||
|
|
'MSDENR': 0x48,
|
|||
|
|
'MSDPCNTR': 0x4C,
|
|||
|
|
},
|
|||
|
|
'ctrl_reg': {
|
|||
|
|
'MCUPARAR0': 0x00,
|
|||
|
|
'MCUPARAR1': 0x04,
|
|||
|
|
'MCUPARAR2': 0x08,
|
|||
|
|
'MCUPARAR3': 0x0C,
|
|||
|
|
'MCURESR0': 0x10,
|
|||
|
|
'MCURESR1': 0x14,
|
|||
|
|
'MCURESR2': 0x18,
|
|||
|
|
'MCURESR3': 0x1C,
|
|||
|
|
'RTIMR': 0x98,
|
|||
|
|
'ICNTR': 0x9C,
|
|||
|
|
'FSIR': 0xA0,
|
|||
|
|
'MODMR': 0x100,
|
|||
|
|
'MODENR': 0x104,
|
|||
|
|
'MODDOTR': 0x108,
|
|||
|
|
'MIXODFR': 0x10C,
|
|||
|
|
'STR': 0x110,
|
|||
|
|
'NCOAOR': 0x114,
|
|||
|
|
'SPI_RAMPFIXR': 0x118,
|
|||
|
|
'SPI_RAMPSR': 0x11C,
|
|||
|
|
'SPI_RAMPIFSR': 0x120,
|
|||
|
|
'SPI_RAMPENR': 0x124,
|
|||
|
|
'TSTIMER': 0x130,
|
|||
|
|
'TSITVLR': 0x134,
|
|||
|
|
'TSENR': 0x138,
|
|||
|
|
'TSVALR': 0x13C,
|
|||
|
|
},
|
|||
|
|
'mcu_reg': {
|
|||
|
|
'CWFR0': 0x40,
|
|||
|
|
'CWFR1': 0x44,
|
|||
|
|
'CWFR2': 0x48,
|
|||
|
|
'CWFR3': 0x4C,
|
|||
|
|
'CWPRR': 0x50,
|
|||
|
|
'GAPR0': 0x54,
|
|||
|
|
'GAPR1': 0x58,
|
|||
|
|
'GAPR2': 0x5C,
|
|||
|
|
'GAPR3': 0x60,
|
|||
|
|
'GAPR4': 0x64,
|
|||
|
|
'GAPR5': 0x68,
|
|||
|
|
'GAPR6': 0x6C,
|
|||
|
|
'GAPR7': 0x70,
|
|||
|
|
'LCPR': 0x74,
|
|||
|
|
'AMPR0': 0x78,
|
|||
|
|
'AMPR1': 0x7C,
|
|||
|
|
'AMPR2': 0x80,
|
|||
|
|
'AMPR3': 0x84,
|
|||
|
|
'BIASR0': 0x88,
|
|||
|
|
'BIASR1': 0x8C,
|
|||
|
|
'BIASR2': 0x90,
|
|||
|
|
'BIASR3': 0x94,
|
|||
|
|
'RTIMR': 0x98, # Note: Same as in ctrl_reg
|
|||
|
|
'ICNTR': 0x9C, # Note: Same as in ctrl_reg
|
|||
|
|
'FSIR': 0xA0, # Note: Same as in ctrl_reg
|
|||
|
|
'DCBVR': 0xA4,
|
|||
|
|
'FMER': 0xB4,
|
|||
|
|
'MCU_RAMPFIXR': 0xB8,
|
|||
|
|
'MCU_RAMPSR': 0xBC,
|
|||
|
|
'MCU_RAMPIFSR': 0xC0,
|
|||
|
|
'MCU_RAMPENR': 0xC4,
|
|||
|
|
'PRNGSDR': 0xC8,
|
|||
|
|
'PRNGRESR': 0xCC,
|
|||
|
|
'MULTR0': 0xD0,
|
|||
|
|
'MULTR1': 0xD4,
|
|||
|
|
'DTFR': 0xD8,
|
|||
|
|
},
|
|||
|
|
'tc_reg': {
|
|||
|
|
'TCPARR0': 0x000,
|
|||
|
|
'TCPARR1': 0x004,
|
|||
|
|
'TCPARR2': 0x008,
|
|||
|
|
'TCPARR3': 0x00C,
|
|||
|
|
'TCPARR4': 0x010,
|
|||
|
|
'TCPARR5': 0x014,
|
|||
|
|
'TCPARR6': 0x018,
|
|||
|
|
'TCPARR7': 0x01C,
|
|||
|
|
'TCPAIR0': 0x020,
|
|||
|
|
'TCPAIR1': 0x024,
|
|||
|
|
'TCPAIR2': 0x028,
|
|||
|
|
'TCPAIR3': 0x02C,
|
|||
|
|
'TCPAIR4': 0x030,
|
|||
|
|
'TCPAIR5': 0x034,
|
|||
|
|
'TCPAIR6': 0x038,
|
|||
|
|
'TCPAIR7': 0x03C,
|
|||
|
|
'TCPBRR0': 0x040,
|
|||
|
|
'TCPBRR1': 0x044,
|
|||
|
|
'TCPBRR2': 0x048,
|
|||
|
|
'TCPBRR3': 0x04C,
|
|||
|
|
'TCPBRR4': 0x050,
|
|||
|
|
'TCPBRR5': 0x054,
|
|||
|
|
'TCPBRR6': 0x058,
|
|||
|
|
'TCPBRR7': 0x05C,
|
|||
|
|
'TCPBIR0': 0x060,
|
|||
|
|
'TCPBIR1': 0x064,
|
|||
|
|
'TCPBIR2': 0x068,
|
|||
|
|
'TCPBIR3': 0x06C,
|
|||
|
|
'TCPBIR4': 0x070,
|
|||
|
|
'TCPBIR5': 0x074,
|
|||
|
|
'TCPBIR6': 0x078,
|
|||
|
|
'TCPBIR7': 0x07C,
|
|||
|
|
'TCBPR': 0x080,
|
|||
|
|
'TCCER': 0x084,
|
|||
|
|
'TCOVR': 0x088,
|
|||
|
|
'TCCDR': 0x08C,
|
|||
|
|
},
|
|||
|
|
'pll_reg': {
|
|||
|
|
'INTPLL_REFCTRL' : 0x00,
|
|||
|
|
'INTPLL_PCNT' : 0x04,
|
|||
|
|
'INTPLL_PFDCTRL' : 0x08,
|
|||
|
|
'INTPLL_SPDCTRL' : 0x0C,
|
|||
|
|
'INTPLL_PTATCTRL' : 0x10,
|
|||
|
|
'INTPLL_SELCTRL' : 0x14,
|
|||
|
|
'INTPLL_VCOCTRL' : 0x18,
|
|||
|
|
'INTPLL_TCCTRL' : 0x1C,
|
|||
|
|
'INTPLL_AFCCTRL' : 0x20,
|
|||
|
|
'INTPLL_AFCFBCTRL': 0x24,
|
|||
|
|
'INTPLL_AFCLDCNT' : 0x28,
|
|||
|
|
'INTPLL_DIVRSTSEL': 0x2C,
|
|||
|
|
'INTPLL_TESTCLK' : 0x30,
|
|||
|
|
'INTPLL_DIGCLKSEL': 0x34,
|
|||
|
|
'INTPLL_STATUS' : 0x38,
|
|||
|
|
'INTPLL_SYNC' : 0x3C,
|
|||
|
|
'INTPLL_UPDATE' : 0x40,
|
|||
|
|
'INTPLL_CLKRXPD' : 0x44,
|
|||
|
|
'INTPLL_RESV' : 0x48,
|
|||
|
|
'CCALRSTR' : 0x4C,
|
|||
|
|
'CCALATENR' : 0x50,
|
|||
|
|
'CCALSELALNR' : 0x54,
|
|||
|
|
'CCALDCCQECR' : 0x58,
|
|||
|
|
'CCALQECCT0R' : 0x5C,
|
|||
|
|
'CCALQECCT1R' : 0x60,
|
|||
|
|
'CCALDCCCT0R' : 0x64,
|
|||
|
|
'CCALDCCCT1R' : 0x68,
|
|||
|
|
'DIVSYNCDCR' : 0x6C,
|
|||
|
|
'SYNCCLRENR' : 0x70,
|
|||
|
|
'CCALDCCCT2R' : 0x74,
|
|||
|
|
'CCALSTR' : 0x78,
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# Usage example:
|
|||
|
|
# value = reg_define['sys_reg']['DATER'] # Gets 0x00
|
|||
|
|
# print(f"IDR value: {value}")
|
|||
|
|
# import reg_define
|
|||
|
|
|
|||
|
|
# 预定义的TC系数组
|
|||
|
|
TC_COEFFICIENT_SETS = {
|
|||
|
|
'default': {
|
|||
|
|
'amp_real': [0.025, 0.015, 0.0002, 0.2, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-1/250, -1/650, -1/1600, -1/20, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': '默认TC系数组'
|
|||
|
|
},
|
|||
|
|
'coef1': {
|
|||
|
|
'amp_real': [0.025, 0.015, 0.0002, 0.2, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-1/250, -1/650, -1/1600, -1/20, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'lsw - coef1'
|
|||
|
|
},
|
|||
|
|
'coef2': {
|
|||
|
|
'amp_real': [0.025, 0.015, 0.0002, 0.2, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-1/250, -1/650, -1/1600, -1/20, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, -1/300, -1/500, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'lsw - coef2'
|
|||
|
|
},
|
|||
|
|
'coef3': {
|
|||
|
|
'amp_real': [0.025, 0.009, 0.0002, 0.2, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0.012, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-1/250, -1/650, -1/1600, -1/20, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, -1/300, -1/500, 0, 0, 0, 0, 0],
|
|||
|
|
|
|||
|
|
'description': 'lsw - coef3'
|
|||
|
|
},
|
|||
|
|
'coef4': {
|
|||
|
|
'amp_real': [0.025, 0.015, 0.0002, 0.2, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-1/250, -1/2000, -1/1600, -1/20, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, -1/15, -1/50, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'lsw - coef4'
|
|||
|
|
},
|
|||
|
|
'coef5': {
|
|||
|
|
'amp_real': [0.0281, 0.0024, 0.0021, 0.0011, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-0.0033, -0.0027, -0.0027, -0.0002, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'czy - coef5'
|
|||
|
|
},
|
|||
|
|
'coef6': {
|
|||
|
|
'amp_real': [0.0314, 0.0132, 0.0055, 0.0017, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-0.0096, -0.0021, -0.0009, -0.0002, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'czy - coef6'
|
|||
|
|
},
|
|||
|
|
'coef7': {
|
|||
|
|
'amp_real': [0, 0.0282, 0, 0.0130, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-0.0193, -0.0051, -0.0012, -0.0020, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'czy - coef7'
|
|||
|
|
},
|
|||
|
|
'coef8': {
|
|||
|
|
'amp_real': [0.0314*1, 0.0132*1, 0.0055*1, 0.0017*1, 0.0282*1, 0.0130*1, 0.0024*1, 0.0021*1],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [-0.0096, -0.0021, -0.0009, -0.0002, -0.0051, -0.0020, -0.0027, -0.0027],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': 'thfu - coef8'
|
|||
|
|
},
|
|||
|
|
'coef9': {
|
|||
|
|
'amp_real': [0.0314*1, 0.0132*1, 0.0055*1, 0.0017*1, 0.0282*1, 0.0130*1, 0.0024*1, 0.0021*1],
|
|||
|
|
'amp_imag': [0.012, 0.012, 0.012, 0.012, 0.012, 0.012, 0.012, 0.012],
|
|||
|
|
'time_real': [-0.0096, -0.0021, -0.0009, -0.0011, -0.0051, -0.0020, -0.0027, -0.0027],
|
|||
|
|
'time_imag': [-1/300, -1/500, -1/15, -1/20, -1/100, -1/200, -1/400, -1/800],
|
|||
|
|
'description': 'thfu - coef9'
|
|||
|
|
},
|
|||
|
|
'custom': {
|
|||
|
|
'amp_real': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'amp_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_real': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'time_imag': [0, 0, 0, 0, 0, 0, 0, 0],
|
|||
|
|
'description': '自定义系数组 - 需要手动设置'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
#### regfile base address ####
|
|||
|
|
addr_base = {
|
|||
|
|
'SYST_BASE': 0x00000000,
|
|||
|
|
'DBGM_BASE': 0x01900000,
|
|||
|
|
|
|||
|
|
'ITCM0_BASE': 0x00100000,
|
|||
|
|
'DTCM0_BASE': 0x00200000,
|
|||
|
|
'CTRL0_BASE': 0x00300000,
|
|||
|
|
'TCCO0_BASE': 0x00301000,
|
|||
|
|
'ENVI0_BASE': 0x00400000,
|
|||
|
|
'ENVM0_BASE': 0x00500000,
|
|||
|
|
'CLK0_BASE': 0x01F00000,
|
|||
|
|
'DAC0_BASE': 0x01F01000,
|
|||
|
|
|
|||
|
|
'ITCM1_BASE': 0x00700000,
|
|||
|
|
'DTCM1_BASE': 0x00800000,
|
|||
|
|
'CTRL1_BASE': 0x00900000,
|
|||
|
|
'TCCO1_BASE': 0x00901000,
|
|||
|
|
'ENVI1_BASE': 0x00A00000,
|
|||
|
|
'ENVM1_BASE': 0x00B00000,
|
|||
|
|
'CLK1_BASE': 0x01F02000,
|
|||
|
|
'DAC1_BASE': 0x01F03000,
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 共用是SYST_BASE 基地址,前5个地址其实就是偏移地址夹600000,后面两个其实是加1000
|
|||
|
|
|
|||
|
|
|
|||
|
|
fs = 750 #MHz
|