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.

TMAG5170: TMAG5170 产品咨询

Part Number: TMAG5170

你好:

请问,TMAG5170 寄存器配置有先后顺序吗?另外,DATA_TYPE 一直写不进去,别的寄存器是可以的,请问是什么原因?谢谢!!!

  • 您好,

    寄存器配置没有先后顺序要求

    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。

  • sensor_config读写都是可以的,CRC在最开始已经disable了,后面命令也没有报crc的错误,所以应该不是crc的问题

  • 仔细阅读 datasheet 7.5.2.6 SPI Frame部分,我发现只有在regular read模式下,也就是 DATA_TYPE = 000b时才能读取寄存器值,在DATA_TYPE > 000b时,SDO输出的是 DATA_TYPE寄存器位定义的两通道数据,如下截图部分所示。因此DATA_TYPE配置非0值后,就不能读取寄存器值了。

  • DATA_TYPE配置非0值后,我不是要读取寄存器值,而是要读取采样值,但是输出的只是固定的数据0x1000000D,而且可以看到stat3-stat0也是零

  • STAT[2:0]由上一帧中的CMD1值决定:

    上一帧中CMD1和CMD0是什么?

  • 上一帧中CMD1为1,CMD0是0

  • CMD1=1的话,STAT[2:0]是DATA_TYPE[2:0],这样看DATA_TYPE[2:0]还是000,是不是没有配置成功?

x 出现错误。请重试或与管理员联系。