英偉達的TX2有兩路CAN,默認情況下是沒有啓動的,通過ifconfig命令可以查看CAN是否啓動
通過下面的設置可以啓動CAN模塊
步驟一:
# 注意由於版本不同,modules下模塊可能不是4.4.38
cd /lib/modules/4.4.38-tegra/kernel/net/can
sudo insmod can.ko
sudo insmod can-raw.ko
sudo insmod can-gw.ko
sudo insmod can-bcm.ko
步驟二:
# 同上,可能不是4.4.38
cd /lib/modules/4.4.38-tegra/kernel/drivers/net/can
sudo insmod can-dev.ko
sudo insmod slcan.ko
sudo insmod vcan.ko
步驟三:
cd /lib/modules/4.4.38-tegra/t18x/drivers/net/can/mttcan/native
sudo insmod mttcan.ko
以上步驟應該是啓動can模塊的驅動,接下來設置can模塊的波特率並啓動。
sudo ip link set can0 type can bitrate 500000
sudo ip link set up can0
#ip -s -d link show can0
sudo ip link set can1 type can bitrate 500000
sudo ip link set up can1
#ip -s -d link show can1
可通過ifconfig命令查看是否啓動成功。
在TX2未重啓的情況下,關閉can然後重新開始,不需要重複啓動can模塊驅動的步驟。
迴環測試
要想重新配置波特率先關掉can:
sudo ip link set down can0
設置can0波特率,迴環模式對波特率不做要求:
sudo ip link set can0 type can bitrate 500000 loopback on
啓動can0:
sudo ip link set up can0
發送數據:
cansend can0 123#abcdabcd
在另一個終端接收:
candump can0