在balenaOS上使用CAN

1 测试环境

1.1 硬件环境

ED-CM4SEN

1.2 软件环境

设备已经安装BalenaOS、在balena-cloud已经显示设备在线 balena-cloud

2 使用步骤

2.1 下载软件

克隆示例仓库

git clone https://github.com/edatec/balena-ubuntu-cantest.git

2.2 Dashboard

2.2.1 添加设备树配置

ed-mcp2515.dtbo复制到/mnt/boot/overlays/

国外下载地址:dtboopen in new window

国内下载地址:dtboopen in new window

2.2.2 设置设备配置

device-configuration

关闭默认使能的SPI功能

RESIN_HOST_CONFIG_dtparam

配置设备树:

RESIN_HOST_CONFIG_dtoverlay

配置内容:

# CM4 SEN
"vc4-kms-v3d","spi6-1cs,cs0_pin=18,cs0_spidev=disabled","ed-mcp2515,spi6-0,oscillator=16000000,interrupt=7"

# CM4 HMI/IPC263x
"vc4-kms-v3d","spi6-2cs,cs0_spidev=disable,cs1_pin=17,cs1_spidev=disable","ed-mcp2515,spi6-0,oscillator=16000000,interrupt=15",”ed-mcp2515,spi6-1,oscillator=16000000,interrupt=14

2.2.3 添加release

登录balenaCloud,找到Release,点击Add release。

releaserelease1
2.2.3.1 使用balenaCLI来推送release

下载测试代码仓库

git clone https://github.com/edatec/balena-ubuntu-cantest.git

推送到release, <>替换为对应内容

balena login && balena push <your-username> test

2.2.3.2 使用Git推送

下载测试代码仓库

git clone https://github.com/edatec/balena-ubuntu-cantest.git

将修改提交到balena,<>替换为对应内容

git remote add balena your-username@git.balena-cloud.com:<your-username>/<your-fleet>.git
git push balena master

2.3 登陆设备

登陆上设备,执行命令查看docker状态:

balena ps -a
compose

我的容器名为test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3,请根据自己实际容器名更换:

# 更新apt信息
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "apt update"

# 安装can-utils工具
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "apt install -y iproute2 can-utils"

# 设置can0比特率
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "ip link set can0 type can bitrate 500000"

# 使能can0接口
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "ip link set can0 up"

# 使用can0发送数据1122334455667788
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "cansend can0 123#1122334455667788"

# 使用can0接收其他can接口发送的数据
balena exec -t test_9634932_3161183_e96bb9d369e78534cde4f510662923e828cfc2e3 \
sh -c "candump can0"