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

am335x can回环测试bing出错?

can的移植使用过程如下:

芯片:am335x

linux:   Linux 3.2.0+ #16 Wed Jan 6 17:51:54 CST 2016 armv7l GNU/Linux

1.参考 配置内核 AM335X DCAN Driver Guide – Texas Instruments Wiki.htm

2.板级文件添加如下:

(1)

static struct evm_dev_cfg gen_purp_evm_dev_cfg[] = {

{dcan_init, DEV_ON_BASEBOARD, PROFILE_ALL},

}

(2)

static void dcan_init(int evm_id, int profile)
{
(void)evm_id;
(void)profile;

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);
}

(3)

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},
};

3. 把对应的uart1 与 i2c2 注释掉!避免跟can管教冲突!

4. 交叉编译

libsocketcan-0.0.10

canutils4.0.6

5. 测试:

root@hi-target:/mnt/platform/can# ifconfig -a
can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:52

can1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:55

6.错误情况:

root@hi-target:/mnt/platform/can# ./canconfig can0 bitrate 100000 ctrlmode loop
back on
can0 bitrate: 100000, sample-point: 0.875
can0 ctrlmode: loopback[ON], listen-only[OFF], tripple-sampling[OFF],one-shot[OFF], berr-reporting[OFF]
root@hi-target:/mnt/platform/can# ./canconfig can0 start
can0 state: ERROR-ACTIVE
root@hi-target:/mnt/platform/can# ./cansend can0 –identifier=0x123 0x12
interface = can0, family = 29, type = 3, proto = 1
bind: Invalid argument

root@hi-target:/mnt/platform/can# ./candump can0
interface = can0, family = 29, type = 3, proto = 1
bind: Invalid argument

=================================================

为什么 会出现bind: Invalid argument 》?????  另外can0 state: ERROR-ACTIVE 是不是表示启动不成功can????

这个是回环测试,用两个am335x的can连起来,使用 tripple-sampling 模式,也是这样的情况,希望TI工程师看看是啥情况?

=======================================================================================

1.现在的dcan已经能正常运行了!

现在想把j1939的can协议补丁上去,请问TI工程师,

 insmod  can-j1939.ko  

之后,DCAN跟这个 can-j1939.ko  冲突么? 

另外有相关支持j1939的资料么?

Jian Zhou:

请问是AM335x的2个CAN进行互联通信么?

MYC huang:

自己顶一个先,初步看到使用的是linux-3.2.0-psp04.06.00.11 这个内核编译出来的,暂且不知道是sdk6还是sdk4, 但是sdk5的linux编译出来的can是可以使用的!!\

万能的TI工程师,请问一下,各个版本的sdk  can都可以参照AM335X DCAN Driver Guide – Texas Instruments Wiki.htm 这个文档来设置的么?  目前测得bind不

同,兼容不好、、、、

MYC huang:

回复 Jian Zhou:

是的!  目前但一个板子的回环测试都bing错,两个am335x互联也是这样。 使用的是linux-3.2.0-psp04.06.00.11 这个内核编译出来的!不知道是sdk6还是sdk4,, 跟这个sdk兼容么?  

user4043133:

MYC huang:

    CAN是怎么调通的,我的收发管脚上测不到波形,有时也提示can0 state: ERROR-ACTIVE

赞(0)
未经允许不得转载:TI中文支持网 » am335x can回环测试bing出错?
分享到: 更多 (0)