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.
您好,
寄存器配置没有先后顺序要求
DATA_TYPE 一直写不进去,别的寄存器是可以的
仅这3bits写不进去是吗? SYSTEM_CONFIG寄存器的其他bits可以写入是吗?写不进去是指写入非0值后,读出仍为000?您可以用示波器或逻辑分析仪抓取写入这个寄存器的SPI时序图吗,然后附在这里?
在TMAG5170产品首页提供了 C code example,不知道您是否已经下载参考?
TMAG5170产品首页链接:https://www.ti.com.cn/product/cn/TMAG5170
system config写入非零的值,读取的结果一直是0x1000000D,我目前的操作是上电后先进去deep sleep,然后退出deep sleep,先后配置mag_ch_en为3,配置data_type为1,再配置standby模式,在配置data_type之后读取出来的数据就变成0x1000000D,请问这个流程是不是缺少某个寄存器配置?或者流程哪里有错误的地方吗?
SENSOR_CONFIG Register配置后可以正确读出来是吗?
另外,32 bits SPI帧的低4位是CRC位,启用CRC后,如果未收到正确的CRC代码,设备将忽略SDI命令。因此请检查SDI写入帧是否存在CRC错误。CRC代码由多项式x^4 + x + 1生成,初始CRC位是b1111。具体见 datasheet 7.5.2.5 SPI CRC章节。
要在SDI禁用CRC,请发送SPI SDI命令x0F000407。
仔细阅读 datasheet 7.5.2.6 SPI Frame部分,我发现只有在regular read模式下,也就是 DATA_TYPE = 000b时才能读取寄存器值,在DATA_TYPE > 000b时,SDO输出的是 DATA_TYPE寄存器位定义的两通道数据,如下截图部分所示。因此DATA_TYPE配置非0值后,就不能读取寄存器值了。