在balenaOS上使用CAN
1 测试环境
1.1 硬件环境
ED-CM4SEN
1.2 软件环境
设备已经安装BalenaOS、在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/
下
国外下载地址:dtbo
国内下载地址:dtbo
2.2.2 设置设备配置

关闭默认使能的SPI功能

配置设备树:

配置内容:
# 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。


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

我的容器名为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"