牛卧堂MCU技术交流

标题: 小白求大佬解惑,关于M467,canfd的例程问题 [打印本页]

作者: 匿名    时间: 2024-7-8 15:39
标题: 小白求大佬解惑,关于M467,canfd的例程问题
不好意思请问一下,我使用的是M467JJHAN的芯片,一开始测试canfd,自己写的应用跑不起来,就下了官方的单CANFD只发的例程,改成了外部晶振,CANFD0改成我用的PB10和PB11,别的就只加了个定时器,但还是跑不起来,keil仿真程序没卡死,一直在CANFD_TxTest循环里遍历,用can工具收不到数据。还有就是canfd_TXBRP寄存器为什么psCanfd->TXBAR = 1 << n之后进行下一轮psCanfd->TXBAR = 1 << n+1发送时,前一个位不会清零啊,一轮之后就一直是0xFF了。

作者: 匿名    时间: 2024-7-8 16:04
你测试的是哪个例程啊?BSP包里面的吗?
作者: 匿名    时间: 2024-7-8 16:09
游客 121.29.80.x 发表于 2024-7-8 16:04
你测试的是哪个例程啊?BSP包里面的吗?

就是M467 Ethernet/Crypto 系列下示例代码里那个en-us--EC_M460_CANFD_Tx_Simply_V1.00
作者: 匿名    时间: 2024-7-8 16:39
游客 218.4.67.x 发表于 2024-7-8 16:09
就是M467 Ethernet/Crypto 系列下示例代码里那个en-us--EC_M460_CANFD_Tx_Simply_V1.00

我之前咨询过这个问题的!
1、你是用的USB-CANFD调试器来调试的吗?我当时用的是珠海创芯的调试器;
2、这个使用的是CANFD的-TXfifo模式;所以必须对KEIL-TARGET的RAM2进行设置;
3、例程中的CANFD的仲裁域和数据域的时钟频率,你确保设置正确了吗?
设置如下:
    CLK_SetModuleClock(CANFD0_MODULE, CLK_CLKSEL0_CANFD0SEL_HCLK, CLK_CLKDIV5_CANFD0(5));
    CLK_EnableModuleClock(CANFD0_MODULE);                                    // Enable CAN FD0 clock

200M的5分频,即40M;

来自阿东的探讨!


作者: 匿名    时间: 2024-7-8 17:10
游客 121.29.80.x 发表于 2024-7-8 16:39
我之前咨询过这个问题的!
1、你是用的USB-CANFD调试器来调试的吗?我当时用的是珠海创芯的调试器;
2、 ...

我用的周立功的USBCANFD,因为之前别的用过这个就沿用了;
RAM2我一开始就加了0x40020200,size0x10000.
这段代码设置我沿用的,原本的波特率应该是1M/4M吧。。大概,我后面用CANFD_OPEN直接定义过200K/2M,都没有数据,刚刚测了一下,芯片引脚上甚至都没有波形。。。我之前直接用CANFD_Tx发送那个函数会一直死在状态等待上
orz
作者: 匿名    时间: 2024-7-8 17:44
CANFD_OPEN 不行的。如果用FIFO,需要单独设置帧速的!不能用CANopen函数。我在这里搞了很久
作者: 匿名    时间: 2024-7-9 10:59
游客 121.29.80.x 发表于 2024-7-8 17:44
CANFD_OPEN 不行的。如果用FIFO,需要单独设置帧速的!不能用CANopen函数。我在这里搞了很久 ...

可是我一开始用官例的时候也是直接寄存器配帧速的呀,就是跑不起来才用函数配的orz
作者: 匿名    时间: 2024-7-9 11:50
游客 218.4.67.x 发表于 2024-7-9 10:59
可是我一开始用官例的时候也是直接寄存器配帧速的呀,就是跑不起来才用函数配的orz ...

那不应该的。。。你观察一下 调试器的状态灯,有没有变化?出现总线错误了吧?
作者: 匿名    时间: 2024-7-9 13:28
游客 121.29.98.x 发表于 2024-7-9 11:50
那不应该的。。。你观察一下 调试器的状态灯,有没有变化?出现总线错误了吧? ...

兄弟,我能不能把程序发你帮我看看,基本是例程改的,没有动什么,应该不会费你多少时间,我把我动过的地方标红
作者: 匿名    时间: 2024-7-9 14:06
游客 218.4.67.x 发表于 2024-7-9 13:28
兄弟,我能不能把程序发你帮我看看,基本是例程改的,没有动什么,应该不会费你多少时间,我把我动过的地 ...

完全没问题!
另外,你确定排除了硬件的问题了吧?可以发到Email:     814584957@qq.com
作者: chrishu    时间: 2024-7-9 15:15
如之前电话所说,将引脚改成PB10和PB11,使用外部晶振。我这里测试通讯ok。
我这里测试是两块开发板,一个烧EC_M460_CANFD_Tx_Simply,一个烧EC_M460_CANFD_FIFO_RX_V1.00
修改的地方如下:


测试结果如下:


作者: 匿名    时间: 2024-7-9 16:03
游客 121.29.98.x 发表于 2024-7-9 14:06
完全没问题!
另外,你确定排除了硬件的问题了吧?可以发到Email:

大哥发你了
作者: 匿名    时间: 2024-7-10 08:49
游客 218.4.67.x 发表于 2024-7-9 16:03
大哥发你了

你的CANFD收发器,接高5V了啊 。不是应该接地吗
作者: 匿名    时间: 2024-7-17 15:14
游客 121.29.80.x 发表于 2024-7-8 17:44
CANFD_OPEN 不行的。如果用FIFO,需要单独设置帧速的!不能用CANopen函数。我在这里搞了很久 ...

兄弟,能发送demo例程吗,我也跑不通,示波器的速率不对,而且一直在发送数据 434342415@qq.com




欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2