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.

[参考译文] LAUNCHXL-F28379D:LAUNCHXL-F28379D、BOOSTXL-POSMGR BiSS_C 读取反向寄存器

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/989743/launchxl-f28379d-launchxl-f28379d-boostxl-posmgr-biss_c-reading-reveral-register

器件型号:LAUNCHXL-F28379D

您好!

使用 C2000位置管理器 BiSS-C 库时、如何进行顺序 CD 寄存器读取?

如上例所示、我必须按顺序创建 CDM 变量。 则 CDM 变量将获得超过32位的值。

从这里可以看出、CDM 变量定义为 uint32_t 为32 位。 其他相关变量的位限制是不够的。

我可以正确访问8位数据。 但是、为了读取其他变量、例如以 RPM 为单位的转速、我需要如下45位。
−μ C/CDM = ST (1)+ CTS (1)+ ID (3)+地址(7) CRC (4)+ R (1)+ W (1)+ S (1)+ TxData (8)+ TxDataCRC (4)+ STOP (1)+ TxData (8)+ TxDataCRC (4)+ STOP (1)

如何访问大于8位的数据(如上一张图片所示)?

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

    在每一帧中、发送一个 CDM 位、然后接收一个 CDS 位。  如果要读取顺序寄存器、则在每次读取后发送 CDM 起始位。  您发布的图表中的这些内容周围会出现红色框。   该起始位(S)将告诉接收器您希望读取下一个寄存器。  

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

    好的、我会尝试这个。

    那么、如何更快地获得 CD 数据呢?
    我意识到要读取 CD 数据、由于剩余的_CD_BITS、我不得不读取 SCD 数据32次(此变量显示在 CD 数据完成之前必须发生多少次 SCD 事务)。
    一个 SCD 周期大约以26us (微秒)完成。 因此、我可以每26us 读取一次位置数据。
    但是、当我想读取 CD 数据的速度数据时、需要32 * 26 (REMAING_CD_Bits * SCD_PERIOD)= 832us 的时间。 如何缩短此时间? 那么、我能否在不等待剩余_CD_BITS 的情况下读取 CD 数据?

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

    这就是协议的工作方式。  每帧传输一个 CDM/CDS 位。