Angus 发表于 2023-11-30 17:44 128PIN 的通,64的无法发送。 并不是刚刚开始用。128PIN的已经用了很久了。这次64PIN的,使用CANFD加速模式,就出现了这个问题。 然而 NUVOTON 只是在128PIN 的开发板做试验,连个CANFD调试器都没加上。 我一再反应,出问题的是 64PIN 的,NUVOTON 一直在用 128PIN的做验证。 我反馈了将TX案例,只是修改了IO配置,使用128PIN 物料其余任何不做改动,速率实测为1M:4M; NUVOTON 又拿出了他的两个板子的法宝来测试。 不涉及时钟速率的。 具体的NUVOTON 自己反思吧。 |
M467-128PIN 的硬件,我们也有。 将IO适配一下,其余不做任何改动和修改之后, 可以发送,但是 CANFD 速率是 1M-4M 这个问题,我们只能对贵司的FAE表示呵呵。 懒得再去研究了。。。 在这里结帖吧。 |
我在新唐网站刚下载了这两个代码,直接编译后在NuMaker-M467 V1.0 板上测试。没有问题,打印数据如下图。 说明文件中,已注明用的测试板是 NuMaker-M467,编译器是 keil V5.38. 我们NuMaker -M467 板上是 177脚的,若换成 64脚的,请用PinView 看一下代码中引脚配置,是否与你的硬件设计一致,若不一致,在main()中改一下引脚配置即可,其它不用改,这个我已测试过。 另外重新选择芯得型号变成64引脚后,Option 内容会变,所以要加上 CANFD 专用 FLASH 区域的定义,还要确认看一下仿真器选项。 若编译器版本不一样,或未装NuLink 驱动,Optoin 选项也会改变,也要检查确认一下。 |
1、请问添加RAM2后是否可以下载,是否可以执行代码? 2、关于TX例程无法发送,RX例程可以接收。请问你的CAN硬件上TX RX使用的哪些引脚? 你说的RX例程可以接收,是指BSP下的CANFD_CANFD_TxRx或CANFD_CANFD_TxRxINT吗?那它的代码里用的PC4, PC5引脚。 EC_M460_CANFD_Tx_Simply_V1.00例程使用的PJ10和PJ11。例程的readme里有说明使用的是NuMaker-M467HJ V1.0板子测试,如果用BSP下的例程来接收的话,需要将bsp下例程的引脚改为PJ10和PJ11。 3、关于TX 和RX的canfd_open函数不一样。 首先bsp下的CANFD_CANFD_TxRx或CANFD_CANFD_TxRxIN例程使用的底层驱动函数。例程里收发都有。习惯调用底层库函数,不希望直接操作寄存器的话收发都可以参考这两个例程。 因为bsp下的例程针对CANFD的驱动lib使用了很多结构体,比较复杂。 所以特意写了一个不使用底层库函数,直接操作寄存器的CANFD 发送的例程EC_M460_CANFD_Tx_Simply_V1.00,以便于习惯直接操作寄存器的工程师来看。 |
按照上图所示,修改了RAM2.发现TX例程,依然无法发送。 然而RX可以利用CANFD调试,可以接收。 而且,TX例程,不包含CANFD的source,加入进去之后,这个里面的canfd_open函数,与RX也不一样。 请新唐的FAE认真并且不要盲目自信。 |