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 |