主题中讨论的其他器件:CC3220SF-LAUNCHXL、、
大家好、我将使用 CC3220SF-LAUNCHXL Wi-Fi 板测试定制 AFE4403模块。
如数据表所示、我使用数据0x000001 h 配置寄存器0以启用 SPI_READ。
在2MHz SPI 时钟信号配置为 SPI 模式0的情况下、我在写入 control0寄存器的 SPI_READ 位后尝试读取 LED2数字采样值寄存器(地址= 0x2Ah +读取位= 0xAAh)。
问题是 MISO 始终为零;未从 AFE4403接收到任何值。
通过 SPI 写入值确实可行;在配置 AFE4403的寄存器(例如 CONTRO0~3、TIAGAIN、TIA_AMB_GAIN、LEDCNTRL)后、定制模块具有 SPH7050 LED、红色 LED 亮起。
因此、我的自定义 SPI 读取代码可能有问题、或者我可能没有配置其他寄存器来启用 SPI_READ 功能。
我的问题是、
1) 1)与其他 SPI 器件一样、AFE4403是否不使用 MSB 上的读/写位?
持续读取数据表后、AFE4403似乎不使用 MSB 上的 R/W 位、对吧?
2) 2)是否可以读取多个寄存器? 由于上面的"图73"只显示了一个 SPI 读取块。
如果只触发一次 SPISTE、我能否发送几个寄存器地址来读取多个数据?
3) 3)我已经做了一些额外的测试。 设置 SPI_READ 位后、我尝试读取 control0寄存器。
情形1 -在 MSB 处添加读取位
正如预期的那样、AFE4403未返回任何数据。
CASE2-MSB 中的 READ 位
但是、结果是相同的。 看起来 R/W 位不是问题。
我错过了什么? 我已仔细检查 CC3220和 AFE4403模块之间的 MISO 线路连接。
此外、我参考"AFE4403EVM_FW_SRCv2.3"来遵循寄存器配置。
void AFE44xx_Default_Reg_Init (void) { Disable_AFE44xx_SPI_Read (); AFE44xx_ReG_Write ((unsigned char) PRPCOUNT、(unsigned long) PRP); AFE44xx_ReG_Write (unsigned char) LED2STC、(unsigned long) LED2STC_VAL); AFE44xx_ReG_Write ((unsigned char) LED2ENDC、 (unsigned long) LED2ENDC_VAL); AFE44xx_ReG_Write ((unsigned char) LED2LEDSTC、(unsigned long) LED2LEDSTC_VAL); AFE44xx_ReG_Write (unsigned char) LED2LEDENDC、(unsigned long) LED2LEDENDC_VAL; AFE44xx_Reg_Write ((unsigned char) ALED2STC、(unsigned long) ALED2STC_VAL); AFE44xx_Reg_Write ((unsigned char) ALED2ENDC、(unsigned long) ALED2ENDC_VAL); AFE44xx_Reg_Write (((((unsigned char) LED1C、unsigned LED2ENDC) (无符号长整型) LED1STC_VAL); AFE44xx_Reg_Write ((unsigned char) LED1ENDC、(unsigned long) LED1ENDC_VAL); AFE44xx_Reg_Write ((unsigned char) LED1LEDSTC、(unsigned long) LED1LED1LEDSTC_VAL); AFE44xx_Reg_Write ((unsigned char) LED1LEDENDC、(unsigned long) LED1LEDENDC_VAL); AFE44xx_Reg_Write ((unsigned char) ALED1STC、(unsigned long) ALED1STC_VAL); AFE44xx_Reg_Write (((unsigned LED1STC、无符号 AGL) (无符号长整型) ALED1ENDC_VAL); AFE44xx_Reg_Write ((无符号字符) LED2CONVST、(无符号长整型) LED2CONVST_VAL); AFE44xx_ReG_Write ((无符号字符) LED2CONVEND、(无符号长整型) LED2CONVEND_VAL; AFE44xx_Reg_Write ((unsigned char) ALED2CONVST、(unsigned long) ALED2CONVST_VAL); AFE44xx_Reg_Write (unsigned char) ALED2CONVEND、(unsigned long) ALED2CONVEND_VAL; AFE44xx_Reg (unsigned VST、CHAR) (无符号长整型) LED1CONVST_VAL); AFE44xx_Reg_Write ((无符号字符) LED1CONVEND、(无符号长整型) LED1CONVEND_VAL); AFE44xx_Reg_Write ((无符号字符) ALED1CONVST、(无符号长整型) ALED1VST_VAL; AFE44xx_Reg_Write ((unsigned char) ALED1CONVEND、(unsigned long) ALED1CONVEND_VAL); AFE44xx_Reg_Write (unsigned char) ADCRSTCT0、(unsigned long) ADCRSTCT0_VAL); AFE44xx_Reg_Write (unsigned char (ADCRSTCT0) (无符号长整型) ADCRSTENDCT0_VAL); AFE44xx_Reg_Write ((无符号字符) ADCRSTCT1、(无符号长整型) ADCRSTCT1_VAL); AFE44xx_ReG_Write ((无符号字符) ADCRSTENDCT1、(无符号长整型) ADCRSTCT1_VAL); AFE44xx_Reg_Write ((unsigned char) ADCRSTCT2、(unsigned long) ADCRSTCT2_VAL); AFE44xx_Reg_Write ((unsigned char) ADCRSTENDCT2、(unsigned long) ADCRSTENDCT2_VAL); AFE44xx_CHAR_Write (((((unsigned char) ADCRSTCT2、ADCRSTENDCT3) (无符号长整型) ADCRSTCT3_VAL); AFE44xx_Reg_Write ((无符号字符) ADCRSTENDCT3、(无符号长整型) ADCRSTENDCT3_VAL); AFE44xx_Reg_Write ((unsigned char) control0、AFE44xx_Current_Register_Settings[0]); //0x00 AFE44xx_Reg_Write ((unsigned char) CONTROL2、AFE44xx_CURRENT_Register_Settings[35]); //0x23 AFE44xx_Reg_Write ((unsigned char) TIAGAIN、AFE44xx_CURRENT_Register_Settings[32]); //0x20 AFE44xx_Reg_Write ((unsigned char) TIA_AMB_GAIN、AFE44xx_CURRENT_Register_Settings[33]); //0x21 AFE44xx_Reg_Write ((unsigned char) LEDCNTRL、AFE44xx_CURRENT_Register_Settings[34]); //0x22 AFE44xx_Reg_Write ((unsigned char) CONTROL1、AFE44xx_CURRENT_Register_Settings[30]); //0x1E #ifdef __AFE4403__ AFE44xx_Reg_Write ((unsigned char) CONTROL3,0); //0x31 AFE44xx_Reg_Write ((unsigned char) PDNCYCLESTC、0); //0x32 AFE44xx_Reg_Write ((unsigned char) PDNCYCLEENDC、0); //0x33 #endif Enable_AFE44xx_SPI_Read(); }
问题是什么?





