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.

[参考译文] TMS320F280039C:请勿在 LIN BRSR.M 中看到按预期设置的值、并且 BRSR 中的值不正确

Guru**** 2595805 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1129885/tms320f280039c-do-not-see-value-in-lin-brsr-m-set-as-expected-and-incorrect-value-s-in-brsr

器件型号:TMS320F280039C
主题中讨论的其他器件:C2000WARESysConfig


我在 SCI 模式下使用 LIN、并使用以下语句设置波特率。

LIN_setBaudRatePrescaler (Lina_base、164、5);

------------------------
C:\ti\c2000Ware_4_01_00_00\driverlib\f28003x\driverlib\lin.h

LIN_setBaudRatePrescaler (uint32_t base、uint32_t 预分频器、uint32_t 分频器)

   … 为简洁起见、删除了断言和注释
   HWREG_BP (base + LIN_O_BRSR)=(预分频器|(divider << LIN_BRSR_M_S));

------------------------

我在 BRSR.M 中看不到任何值 我希望:

164 =              0x 0000 00A4
(5 << LIN_BRSR_M_S) 0x 0500 0000
(0x 0000 00A4 | 0x 0500 0000)= 0x 0500 00A4 (预期值)
                                     U  M  PSH PSL
BRSR 寄存器中的值为0x 000 0000 0A4 00A4 (非预期值)

这对我来说毫无意义。 我是否有误解?

也许这是 CCS 调试器呈现数据的问题?

我有相关帖子、其中已确认调试器\chip 未在 LIN 中报告 TXENA 和 RXENA 的正确值。
e2e.ti.com/.../tms320f280039c-lin-in-sci-mode-scigcr1-txena-0-but-data-still-goes-out-via-hwregh-base-lin_o_scitd-data-lin_scitd_td_m


请参见附加的图像。

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

    下面是对位域值的一些说明。 在上一篇文章中、它们有点偏。

    BRSR 寄存器的值为:
     _________________________________
    | RU | M | PSH | PSL  |
    | r0 | 00 | A4 | 00 A4 |(不是预期值)
    --------------

    值应为:
     _________________________________
    | RU | M | PSH | PSL  |
    | r0 | 05 | 00 | 00 A4 |(预期值)
    --------------

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

    已尝试以下行:

       HWREG_BP (Lina_base + LIN_O_BRSR)= 0x050000A4;

    调试器中显示的值仍然不正确。

    调试器是否有问题? 器件(它是修订版0)?

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

    您好、MonkeyBusiness、

    感谢您的提问。 您能否通过将完整的 LIN_O_BRSR 寄存器存储在变量中来确认实际值是多少?

    示例:

    uint32_t some_global_value = HWREG_BP(base + LIN_O_BRSR);
    // add a "Watch" expression for this by right-clicking and "Add to Watch"

    这将绕过"Register Viewer"。 从本质上讲、寄存器查看器使用偏移量来查看所有字段、直接读取将完全绕过这一步。

    此致、

    Vince

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

    尊敬的 Vince:
    我尝试了您的建议、并将价值解读为全球价值。 值正确。 那么、调试器似乎存在问题? 请参见随附的图像。

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

    您好、MonkeyBusiness、

    感谢您的检查。 这似乎是我们在您 安装的 CCS (编辑:从 C200Ware 到 CCS)安装中使用的偏移量的问题。 您能否在此处提供您正在使用的 CCS、C2000Ware 和 SysConfig 版本? 我将通知所有者纠正寄存器查看器的 LIN 寄存器。

    对于一些背景:

    我相信该器件只是从调试器中读取所有寄存器数据、为了以更有用的方式显示这些数据、CCS 安装会为每个寄存器和字段提供"偏移量"。 当偏移值不正确时、您可能会看到奇怪的显示数据。

    此致、

    Vince

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

    CCS = 11.2

    C2000Ware = 4.01.00.00    (C:\ti\c2000\C2000Ware_4_01_00_00)

    SysConfig =我没有在此项目上使用 SysConfig。

    注:我曾尝试过,但遇到了一些困难。 有一个很长的线程我开始了它。 实际上、它仍在进行中、TI 正在等待我执行测试并发布结果。 最近太忙了!

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

    您好!  

    LIN 寄存器 xml 文件存在问题-寄存器的偏移不正确、因此您会发现此问题。  将引发一个错误以使其得到修复。  同时、您可以使用附加的 xml 文件并将其替换为中的文件 \ccs_base\common\targetdb\Modules\C2000、然后检查寄存器视图是否显示正确的数据。

    /scs-file/__key/communityserver-discussions 组件-files/171/f28003x_5F00_lin_5F00_regs.xml 

    此致

    Siddharth