RaspberryPi 3b
RS485 CAN HAT树莓派扩展模块,mcp2515
CAN分析仪
ubuntu mate16.04 desktop
WiringPi 的安装
WiringPi 官网下载: https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
复制安装包到你自己的镜像的系统中,把文件解压后,进入 WiringPi 文件夹内部,执行:
chmod 777 build
./build
安装完后输入: gpio -v
查看是否安装完成
bcm2835 C 函数库的安装
bcm2835 官网下载:http://www.airspayce.com/mikem/bcm2835/
复制文件解压后,进入 bcm2835-1.36 文件夹内部,执行:
./configure
make
sudo make check
sudo make install
python 函数库的安装
通过apt-get命令安装树莓派的python函数库(包括RPi.GPIO安装包和spidev安装包)链接如下,点进去左上命令复制安装即可
https://pypi.python.org/pypi/RPi.GPIO
https://pypi.python.org/pypi/spidev
pip install RPi.GPIO
pip install spidev
安装python-dev
sudo apt-get install python-dev
安装smbus库,I2C接口库函数
sudo apt-get install python-smbus
安装serial库,UART接口库函数
sudo apt-get install python-serial
安装Can-utils库
sudo apt-get install git autoconf libtool
git clone https://github.com/linux-can/can-utils.git
cd can-utils
./autogen.sh
./configure
make
sudo make install
sudo apt-get install can-utils
运行如下命令进入树莓派配置(3b支持)
sudo raspi-config
选择第三项Interfacing Options–>SPI、I2C、Serial、SSH等开启,finish退出
重启生效
sudo reboot
ubuntu 下
建议使用ssh来用电脑控制树莓派,命令为
ssh raspberrypi_username@raspi_ip
例如ssh [email protected]。ssh相当于开启一个树莓派的终端
修改树莓派的/boot/config.txt
sudo vim /boot/config.txt
在config.txt最后加入
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25
dtoverlay=spi-bcm2835-overlay
其中模块使用mcp2515-can0,时钟晶振频率为8M,中断25,实际之前配置已经启动了spi,这里第一句修改启动文件,可以确保开机生效,之后
sudo reboot
终端输入ifconfig-can
出现如下
pi@raspberrypi:~ $ ifconfig can
can0 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)
打开文件/boot/overlays/README,可以找到
Name: mcp2515-can0
Info: Configures the MCP2515 CAN controller on spi0.0
Load: dtoverlay=mcp2515-can0,=
Params: oscillator Clock frequency for the CAN controller (Hz)
spimaxfrequency Maximum SPI frequence (Hz)
interrupt GPIO for interrupt signal
CAN0以50K的传输速率,最大500K
sudo ip link set can0 up type can bitrate 50000
每次修改速率之前都需要关闭CAN0,
sudo ip link set can0 down
上一步启动can之后,另外开一个终端来查看接收,使用命令如下
candump can0
发送终端示例
cansend can0 001#1122334455667788