TI中文支持网
TI专业的中文技术问题搜集分享网站

Am335x EVM-SK开发板的DCAN驱动问题

我想再在Am335x EVM-SK开发板上做双路CAN通讯试验,做了如下改动:

1、在board-am335xevm.c中配置UART1的引脚复用:

static struct pinmux_config d_can_dvt0_pin_mux[] = {
{"uart1_ctsn.d_can0_tx", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL},
{"uart1_rtsn.d_can0_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};
static struct pinmux_config d_can_dvt1_pin_mux[] = {
{"uart1_rxd.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL},
{"uart1_txd.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
{NULL, 0},
};

2、在board-am335xevm.c中d_can_init函数里增加代码:

case EVM_SK:
setup_pin_mux(d_can_dvt0_pin_mux);
am33xx_d_can_init(0);
setup_pin_mux(d_can_dvt1_pin_mux);
am33xx_d_can_init(1);
break;

3、在board-am335xevm.c中增加evm_sk_dev_cfg的d_can初始化

{d_can_init, DEV_ON_BASEBOARD, PROFILE_ALL},

4、按照《AM335X DCAN Driver Guide》将DCAN驱动编入内核,然后重新编译。

5、硬件上用飞线将两路CAN勾连,不接收发器。

5、重启系统后,执行ifconfig -a可以看到CAN0和CAN1。执行命令:

canconfig can0 bitrate 50000 ctrlmode triple-sampling on
canconfig can1 bitrate 50000 ctrlmode triple-sampling on
将两路CAN配置成triple-sampling模式,并bringup。
结果,我用任意一路CAN发送
cansend can0 -i 0xFFFFF 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e
,另一路收不到数据。用示波器测量两个发送引脚,一直是高电平输出。
换没有飞线的EVM-SK板,依然没有电平变化;然后设置成loopback模式,可以收到两包收同样的数据。
请问这是怎么回事?求高手帮忙。
Gary Wu:

有个问题,你如何在SK上测试DCAN??

SK板上没有将DCAN引出来。。。。

yin fang:

回复 Gary Wu:

将U11 SN74AVC4T245取下,将其焊盘用飞线连接:PIN5<==>PIN6   PIN4<==>PIN7。

昨天我在内核启动时的输出信息中找到这么两句:

[    0.944549] _omap_mux_get_by_name: Could not find signal uart1_ctsn.d_can0_tx[    0.952087] _omap_mux_get_by_name: Could not find signal uart1_rtsn.d_can0_rx[    0.959655] _omap_mux_get_by_name: Could not find signal uart1_rxd.d_can1_tx[    0.964782] _omap_mux_get_by_name: Could not find signal uart1_txd.d_can1_rx

应该是pinmux_config的时候string_name错了,或者是其他??

yin fang:

回复 yin fang:

似乎是mux33xx.c不支持D15、D16、D17、D18引脚复用成d_can功能:

_AM33XX_MUXENTRY(UART0_CTSN, 0,"uart0_ctsn", NULL, "d_can1_tx", "i2c1_sda","spi1_d0", NULL, NULL, "gpio1_8"), _AM33XX_MUXENTRY(UART0_RTSN, 0,"uart0_rtsn", NULL, "d_can1_rx", "i2c1_scl","spi1_d1", "spi1_cs0", NULL, "gpio1_9"),

要怎么改?还设计其他地方吗?

yin fang:

回复 Gary Wu:

可以复用成Dcan,只是我不知道怎么改到Linux下的源文件里

Gary Wu:

回复 yin fang:

PINMUX,可以参考如下微博

http://blog.chinaunix.net/uid-20543672-id-3067021.html

tenfy zhang:

您好,我现在在用TMS570LS3137芯片,想学习下CAN模块,我看您也是在做DCAN模块,应该和LS3137的DCAN模块有些相似,不知道您有没有相关CAN例程,我在网上始终找不到。谢谢。我的邮箱是faneeboy@163.com 。

赞(0)
未经允许不得转载:TI中文支持网 » Am335x EVM-SK开发板的DCAN驱动问题
分享到: 更多 (0)