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.

TMS320F2800137: CAN的波特率寄存器无法写入

Part Number: TMS320F2800137
Other Parts Discussed in Thread: C2000WARE, ISO1050

我使用的开发版本是CCS12版本。使用的是官网上的demo板。根据官网提供的例程进行操作,在初始化 芯片和GPIO引脚之后,进行CAN模块的配置,发现CAN_BTR寄存 器无法写入。而CAN_CTL寄存器也无法也有一些位无法操作,比如说CCE位,该位应该在CAN_initModule()函数里面就调用了。我这边以为是CAN时钟无法配置导致的,但是在Device_init()之后,可以看到 CAN的外设时钟已经打开。还有一个是,尝试过,直接操作CAN_BTR也无法操作

  • I asked the question in Chinese and I hope there are technicians who can answer it

  • 我使用F280049,同样的流程,可以初始化CAN,也可以使用CAN_BTR寄存器;所有,我怀疑是F2800137的Decive_Init()这个函数有问题

  • 你好,你参考的是哪个例程,试过这个例程吗?C:\ti\c2000\C2000Ware_4_03_00_00\driverlib\f280013x\examples\can ex1.

    所有,我怀疑是F2800137的Decive_Init()这个函数有问题

    可以指出具体位置吗?

  •  关于CAN例程里面的所有demo,can_ex1_loopback我没有试过,因为我没有找到board.h这个文件, 不过我在屏蔽掉board.h这个文件和相关的函数后,也试过了,但是没有用。在查看CAN_BTR寄存器的时候,该寄存器都无法初始化。我使用的demo板是绿色的,主控是F2800137,焊接了CAN芯片 使用的CAN芯片是iso1050。
    VCC1接3.3;VCC2接板子上的5V


    然后TX与F2800137的CANRX引脚连接,RX与F2800137CANTX引脚引脚连接


    GND都接板子上的地。不管是否有CAN芯片,在初始化CAN外设的时候,都应该可以配置寄存器CAN_BTR才对。

  •  我调用的工程是从这个文件夹里面提取出来的

  • 你是直接将文件复制进工程的吗?

    你可以直接导入工程试一下吗?

  • 是的,复制新建工程

  • 你遇到的这个问题很少见,我们这边手头也没有相关的板子进行测试。

    所有,我怀疑是F2800137的Decive_Init()这个函数有问题

    关于这个函数,我对比了一下2800137的和280049的,两者CAN部分的函数是相同的,所以应该不是这个函数的问题。

    C2000ware的例程都是经过官方验证才发布的,应该不会出现寄存器无法配置的情况。

    现在只能推测是硬件出了问题。可以换一块F2800137试一试吗?同时建议导入例程是直接导入整个工程,不要将文件复制到现有工程。

  • 我手上还有两块F2800137,等有时间会验证一下;这个问题确实是很少见的。希望是软件的问题或者是只是这个芯片出问题了,我这边硬件设计方案已经基本完成了,如果没法解决,可能要换方案。

  • 你好,验证结果怎么样?

  • 验证了两块板子,寄存器CAN_BTR都无法写入

  • 你那边是否验证一下能否初始化。红色的板子没有验证,因为使用XDS100V3无法连接验证,同时使用XDS110,查看设备管理器,已经显示出来了,但是暂时没法使用

  • 你那边是否验证一下能否初始化

    我们手边暂时没有这块板子。

    验证了两块板子,寄存器CAN_BTR都无法写入

    我咨询下相关资深工程师,一旦有回复会立即回复您。

  • 你好,似乎代码没有引用正确的 CAN peripheral地址。如果在 CCS Register 视图中写入这些 CAN 寄存器是否成功?

    你那边是否验证一下能否初始化

    工程师那边是可以的。

  • 部分寄存器可以,比如说CAN_CTL控制寄存器就可以写入

  • 已向工程师跟进。

  • 你那边有邮箱吗?我可以把工程发给你那边测试一下。我这边验证了3个板子,都无法初始化化,CAN_BTR寄存器。

  • 你好,抱歉回复晚了。

    那边工程师复现了该问题,并将该问题报告给了相关软件团队。问题是 CCS 寄存器视图没有反映 CAN 寄存器的正确地址。地址 0x4800C 处的 CAN 位时序寄存器 (CAN_BTR) 实际上已使用正确的 CAN 位时序参数更新,但寄存器视图显示全为 00。 

    目前,建议您暂时使用使用 CAN 基地址 (0x48000) 和 x16 寄存器偏移量的 CCS 内存查看器来查看特定的 CAN 寄存器值,而 CCS 寄存器视图将在 C2000Ware 的下一个版本中修复。

    CAN 寄存器的xml有不正确的偏移量,请尝试下这个:/cfs-file/__key/communityserver-discussions-components-files/171/f280013x_5F00_can_5F00_regs.xml

    此文件必须放在 <CCSInstallDir>\ccs\ccs_base\common\targetdb\Modules\C2000 文件夹中。

    这将在下一个CCS版本中修复。

  • 也就是说这个是C2000Ware软件的问题,实际,已经配置了CAN的_BTR寄存器,即CAN通信的波特率已经配置了。对吧

  • 这个不是C2000Ware的问题,而是CCS寄存器视图的问题。它可以配置寄存器但是无法正常显示。

    CAN 寄存器的xml有不正确的偏移量,请尝试下这个:/cfs-file/__key/communityserver-discussions-components-files/171/f280013x_5F00_can_5F00_regs.xm

    可以尝试下这个具有正确偏移量的XML文件吗?

  • 寄存器界面已经显示出来了。

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