RS485 RS232 HAT 是微雪电子专为树莓派设计的隔离型RS485、RS232扩展板,采用SC16IS752+SP3485、SP3232方案,内置电源隔离、ADI磁耦隔离和TVS等保护电路。
引脚号 | 标识 | 管脚描述 |
1 | VCC | 3.3V/5V电源正 |
2 | GND | 电源地 |
3 | SCLK | SPI时钟输入 |
4 | MOSI | SPI数据输入 |
5 | MISO | SPI数据输出 |
6 | CS | SPI片选信号 |
7 | IRQ | 中断输出 |
8 | EN | RS485 输出使能 |
本产品采用SC16IS752作为控制芯片,SC16IS752是双通道高性能的UART扩展芯片,支持SPI和I2C两种接口通信,本模块使用SPI接口。板载电源隔离、ADI磁耦隔离、板载TVS(瞬态电压抑制管)、自恢复保险丝和保护二极管和自动收发转换电路。可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电,防过流过压,提高抗冲击能力,可进行信号隔离,具有靠性高、抗干扰强、功耗低等优点。
CS:从机片选,当CS为低电平的时候,芯片使能
SCLK: SPI通信时钟
MOSI/SI:SPI通信主机发送,从机接收
MIS0/SO:SPI通信主机接收,从机发送
时序:CPHL=0, CPOL=0 (SPI0)
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解
详细连接: C和python例程运行需要一个额外的RS485转串口模块连接通道1才可以看到效果。Python中test.py需要通道1和通道2连接。
功能引脚 | 树莓派接口(BCM) | 描述 |
VCC | 5V | 3.3V/5V电源正 |
GND | GND | 电源地 |
SCLK | D21(SPI1 SCLK) | SPI时钟输入 |
MOSI | D20(SPI1 MOSI) | SPI数据输入 |
MISO | D19(SPI1 MISO) | SPI数据输出 |
CS | D18(SPI1 CS) | SPI片选信号 |
IRQ | D24 | 中断输出 |
EN | D22 | RS485收发使能: 高电平发送使能,低电平接收使能 |
sudo nano /boot/config.txt #加入如下,int_pin根据实际焊接方式设置: dtoverlay=sc16is752-spi1,int_pin=24 #重启设备 sudo reboot
重启后,SC16IS752的驱动会加载到系统内核中,此时可以运行ls /dev查看一下 将会多出如下设备:
在2020-05-27的树莓派系统中gpiochip3没有了变成了gpiochip2
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo ./configure && sudo make && sudo make check && sudo make install # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
sudo apt-get install wiringpi #对于树莓派4B可能需要进行升级; cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # 运行 gpio -v 会出现2.52版本,如果没有出现说明安装出错
sudo apt-get update sudo apt-get install python-pip sudo pip install RPi.GPIO sudo apt-get install python-serial
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install RPi.GPIO sudo apt-get install python3-serial
sudo apt-get install p7zip-full wget https://www.waveshare.net/w/upload/4/44/RS485_RS232_HAT.zip 7z x RS485_RS232_HAT.zip sudo chmod 777 -R RS485_RS232_HAT cd RS485_RS232_HAT/
cd c make clean make sudo ./main
cd python cd examples #使用 RS485 进行通信 sudo python3 RS485.py #使用 RS232 进行通信 sudo python3 RS232.py #使用 RS232 TO RS485 使模块进行相互之间的通信 sudo python3 test.py