This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1200:SPI 设置阵列写入故障、怀疑订购问题

Guru**** 2539500 points
Other Parts Discussed in Thread: CC1200

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/706126/cc1200-spi-settings-array-write-failure-suspected-ordering-issue

器件型号:CC1200

您好!

我尝试通过寄存器设置数组进行初始化写入。

但是、有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 请求?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CC1200已上市多年、从未报告过与此相关的任何问题。 寄存器可以按照任何需要的顺序写入。
    您需要更仔细地查看 SPI 实现、并在浏览阵列时小心地单步执行代码。 验证每次写入的地址和数据值是否正确写入 UART TX 缓冲区。 您甚至可以在不将 cc1200连接到 SPI 总线的情况下执行此操作。
    是否有其他外设连接到同一总线? MCU 是主器件、因此当 CSn 或 MOSI 出现问题时、您需要调试 MCU 侧、因为这些信号连接到从器件(CC1200)上的输入端。
    除了 CC1200连接到该线路之外、是否还有其他东西可防止 MCU 将其驱动为低电平?
    单步执行每次寄存器写入的代码。 您是否实际将地址0x08加载到 SPI 并将 CSn 拉至低电平?
    很抱歉,我目前再也没有什么帮助了。

    为了确保、我已经与您一样写入了相同的寄存器、而没有任何问题。

    祝您调试顺利。

    Siri