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.

[参考译文] AM5728:如何使用 DCAN

Guru**** 2589280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590626/am5728-how-to-use-dcan

器件型号:AM5728

大家好、

我在使用 DCAN 时遇到了一些问题。

我能够设置比特率、但当我尝试打开器件时、出现以下错误:

root@am57xx-EVM:~# canconfig CAN0 bitrate 50000 ctrlmode 三次采样打开
CAN0位速率:50000、采样点:0.875
CAN0 ctrlmode:环回[关闭]、仅监听[关闭]、tripple-sampling[打开]、单次触发[的
f]、错误报告[off]
root@am57xx-EVM:~# canconfig CAN0 start
[1149.882464]网络 CAN0:C_CAN_HW_raminit_wait_SYSCON:超时
[1149.888401] c_CAN_platform 4ae3c000.can CAN0:设置 BTR=1c18 BRPE=0000
CAN0状态:错误激活

这是 dmesg,驱动程序加载打印:

root@am57xx-EVM:~# dmesg | grep can
[6.415792]   AHCI 4a140000.SATA:SSS 标志置位、并行总线扫描已禁用
[6.658759]   pinctrl-single 4a00340.00.pinmux:无法为 scan1添加函数
_pines_default 14288x
[6.692822]   c_CAN_platform 4ae3c000.can: c_CAN_platform 设备已注册(可参阅
Gs=fce3c000、IRQ=356)
[1149.882464]网络 CAN0:C_CAN_HW_raminit_wait_SYSCON:超时
[1149.888401] c_CAN_platform 4ae3c000.can CAN0:设置 BTR=1c18 BRPE=0000


root@am57xx-EVM:~# lsmod | grep can
C_CAN_platform         6604 0
C_CAN                  9462 1 c_CAN_platform
CAN_DEV               12292 1 c_CAN

执行'canconfig CAN0 start'命令后、我可以找到 CAN0器件

root@am57xx-EVM:~# ifconfig                                                     
CAN0     Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
-00                                                                             
         正在运行 NOARP MTU:16 Metric:1                                    
         RX 数据包:0错误:0丢弃:0超限:0帧:0                    
         TX 数据包:0错误:0丢弃:0超限:0载波:0                  
         冲突:0 txqueuelen:10                                            
         RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)                                
         中断:100                                      

这是我执行'cansequence'命令时的一些信息

root@am57xx-EVM:~#可对 CAN0进行排序                                             
接口= CAN0、系列= 29、类型= 3、PROTO= 1                              
[185.975735] CAN:控制器局域网内核(修订版20120528 ABI 9)           
[185.982345] NET:注册协议系列29                               
[185.991247] CAN:原始协议(修订版20120528)                                 
^C                                                                              
root@am57xx-EVM:~# cat /proc/net/can/stats                                      
                                                                               
 1286933传输帧(TXF)                                              
       3个接收到的帧(RXF)                                                 
       0个匹配帧(RXMF)                                                 
                                                                               
       0%总匹配比(RXMR)                                            
       0帧/秒总 TX 速率(TXR)                                          
       0帧/秒总 Rx 速率(RXR)                                          
                                                                               
       0 %电流匹配比(CRXMR)                                         
       0帧/秒当前 TX 速率(CTXR)                                       
       0帧/秒当前 Rx 速率(CRXR)                                       
                                                                               
       0 %最大匹配比率(MRXMR)                                             
  481206帧/秒最大 TX 速率(MTXR)                                           
       3帧/秒最大 Rx 速率(MRXR)                                           
                                                                               
       0个当前接收列表条目(CRCV)                                   
       0个最大接收列表条目(MRCV)                                   
                                                                               
root@am57xx-EVM:~# lsmod | grep can                                             
CAN_RAW                6589 1.                                                 
CAN                   29605 1 CAN_RAW                                         
C_CAN_platform         6604 0                                                 
C_CAN                  9462 1 c_CAN_platform                                  
CAN_DEV               12292 1 c_CAN  

                                         
root@am57xx-EVM:~# dmesg | grep can                                             
[5.981282]   AHCI 4a140000.SATA:SSS 标志置1,并行总线扫描已禁用     
[6.187731]   pinctrl-single 4a00340.00.pinmux:无法为 scan1添加函数
_pines_default 14288x                                                            
[6.203728]   c_CAN_platform 4ae3c000.can: c_CAN_platform 器件已注册(关于
Gs=fce3c000、IRQ=356)                                                           
[129.752423] Net CAN0:C_CAN_HW_raminit_wait_SYSCON:超时                 
[129.758349] c_CAN_platform 4ae3c000.can CAN0:设置 BTR=1c18 BRPE=0000     
[185.975735] CAN:控制器局域网内核(修订版20120528 ABI 9)           
[185.991247] CAN:原始协议(修订版20120528)    

我使用两块板进行了连接测试:

我曾发送过一篇文章:

https://e2e.ti.com/support/arm/sitara_arm/f/791/p/562088/2060062#pi316653=1

根据您对更改硬件的建议、可以在之后使用硬件。

现在、我的硬件和软件与之前相同、但提示我出现 pinmux 问题、这是我的 pinmux。

&dra7_PMX_CORE{

Dcan1_PINS_DEFAULT:Dcan1_PINS_DEFAULT{
   pinctrl-single、pins =<
       0x37d0  (PIN_OUTPUT 下拉| MUX_MODE0)/* DCA1_TX *
       0x37d4  (PIN_INPUT_PULLUP | MUX_MODE0)/* DCAN1_Rx *
       >;
   };  
};

{.dcan1}(&D)
     状态="正常";
     pinctrl-names ="default";
     pinctrl-0 =<&dcan1_PINS_DEFAULT>;
};

希望您能帮我解决这个问题。

谢谢