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.
我使用的开发版本是CCS12版本。使用的是官网上的demo板。根据官网提供的例程进行操作,在初始化芯片和GPIO引脚之后,进行CAN模块的配置,发现CAN_BTR寄存
器无法写入。而CAN_CTL寄存器也无法也有一些位无法操作,比如说CCE位,该位应该在CAN_initModule()函数里面就调用了。我这边以为是CAN时钟无法配置导致的,但是在Device_init()之后,可以看到
CAN的外设时钟已经打开。还有一个是,尝试过,直接操作CAN_BTR也无法操作
。
你好,你参考的是哪个例程,试过这个例程吗?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试一试吗?同时建议导入例程是直接导入整个工程,不要将文件复制到现有工程。
你好,似乎代码没有引用正确的 CAN peripheral地址。如果在 CCS Register 视图中写入这些 CAN 寄存器是否成功?
你那边是否验证一下能否初始化
工程师那边是可以的。
你好,抱歉回复晚了。
那边工程师复现了该问题,并将该问题报告给了相关软件团队。问题是 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的问题,而是CCS寄存器视图的问题。它可以配置寄存器但是无法正常显示。
CAN 寄存器的xml有不正确的偏移量,请尝试下这个:/cfs-file/__key/communityserver-discussions-components-files/171/f280013x_5F00_can_5F00_regs.xm
可以尝试下这个具有正确偏移量的XML文件吗?