您好!
我尝试通过寄存器设置数组进行初始化写入。
但是、有2个寄存器(在~65中)只是被"跳过"而没有被写入(我已附上分析器的屏幕截图来显示问题)。
屏幕截图:
寄存器设置的1 (1x)
逻辑分析仪检测到的值的2.(3x)
可以轻松看出、寄存器 CC120X_SYNC_CFG1未尝试使用值0xA4。
我已经移动了寄存器顺序、认为它可能与要写入的寄存器的顺序有关、但数据表中没有任何内容、或者 E2E 上是否表示顺序很重要。
此外、"编程失败"寄存器和值会在我尝试查找起作用的顺序时继续变化。
当单次写入任何故障寄存器(不在阵列中)时、写入或读取它们不会出现问题。
下面是完整的数组定义:
静态常量寄存器 Setting_t default_settings[]={
{CC120X_IOCFG2、0x09}、
{CC120X_IOCFG0、0x09}、
{CC120X_SYNC3、0x00}、
{CC120X_SYNC2、0x00}、
{CC120X_SYNC1、0x00}、
{CC120X_SYNC_CFG1、0xA4}、
{CC120X_SYNC_CFG0、0x23}、
{CC120X_EXTERING_M、0x27}、
{CC120X_MODCFG_DEV_E、0x0C}、
{CC120X_DCFILT_CFG、0x5D}、
{CC120X_PREAMING_CFG1、0x00}、
{CC120X_PREAMING_CFG0、0x0A}、
{CC120X_IQIC、0xD8}、
{CC120X_CHAN_BW、0x07}、
{CC120X_MDMCFG1、0x10}、
{CC120X_MDMCFG0、0x45}、
{CC120X_symbol_Rate2、0xA7}、
{CC120X_symbol_rate1、0x97}、
{CC120X_symbol_RATE0、0xCC}、
{CC120X_AGC_REF、0x2A}、
{CC120X_AGC_CS_THR、0x01}、
{CC120X_AGC_CFG3、0x11}、
{CC120X_AGC_CFG1、0x12}、
{CC120X_AGC_CFG0、0x80}、
{CC120X_FIFO_CFG、0x00}、
{CC120X_FS_CFG、0x12}、
{CC120X_PKT_CFG2、0x03}、
{CC120X_PKT_CFG1、0x00}、
{CC120X_PKT_CFG0、0x20}、
{CC120X_PA_CFG1、0x6A}、
{CC120X_PKT_LEN、0x0F}、
{CC120X_IF_MIX _CFG、0x1C}、
{CC120X_FREQOFF_CFG、0x22}、
{CC120X_TOC_CFG、0x03}、
{CC120X_MDMCFG2、0x04}、
{CC120X_FREQ2、0x5A}、
{CC120X_FREQ1、0x39}、
{CC120X_FREQ0、0x82}、
{CC120X_FS_CAL0、0x0E}、
{CC120X_FS_DIVTWO、0x03}、
{CC120X_FS_DSM0、0x33}、
{CC120X_FS_DVC0、0x17}、
{CC120X_FS_PFD、0x00}、
{CC120X_FS_PRE、0x6E}、
{CC120X_FS_REG_DIV_CML、0x1C}、
{CC120X_FS_SPARE、0xAC}、
{CC120X_FS_VCO4、0x0F}、
{CC120X_FS_VCO1、0xAC}、
{CC120X_FS_VCO0、0xB5}、
{CC120X_XOSC5、0x0E}、
{CC120X_SERIAL_STATUS、0x08}、
{CC120X_FS_VCO2、0x64}、
{CC120X_IF_ADC0、0x10}、
{CC120X_FS_DIG1、0x07}、
{CC120X_IFAMP、0x09}、
{CC120X_FS_DIG0、0xA5}、
{CC120X_XOSC1、0x03}、
{CC120X_FS_CAL1、0x40}、
{CC120X_IF_ADC1、0xEE}、
{CC120X_SYNC0、0x48}、
{CC120X_FS_CHP、0x17}、
};
问题:
1.这些寄存器是否需要按顺序进行编程才能不进行"删除"设置?
什么会导致 cc1200只"忽略"SPI 请求?