树莓派2-CH RS232 HAT扩展板使用教程

产品概述

我是专为树莓派设计的双通道隔离型RS232扩展板,采用SC16IS752+SP3232方案,内置电源隔离、ADI磁耦隔离和TVS等保护电路。 
我操作简单,通过SPI接口即可控制两路RS232通信,具有通信速度快、稳定、可靠、安全等特点,可适用于工业自动化等领域。

特点

  • 基于Raspberry Pi 40pin GPIO接口,适用于Raspberry Pi系列主板
  • 采用SC16IS752与SP3232双芯片组合方案,可实现SPI转RS232,通信速率高达921600bps
  • 板载TVS(瞬态电压抑制管),可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电
  • 板载电源和串口收发指示灯,方便查看模块电源和通信状态
  • 引出SPI控制接口,方便接入Arduino等主控板
  • 提供完善的配套资料手册(C与python示例程序和用户手册等)

产品参数

  • 串口扩展芯片: SC16IS752
  • RS232收发器: SP3232
  • 通信接口: SPI
  • 通信速率: 300~921600 bps
  • 工作电压: 3.3/5V
  • 产品尺寸: 65mm×56.5mm
  • 过孔直径: 3.0mm

接口说明

  • 引脚功能
引脚号标识管脚描述
1VCC3.3V/5V电源正
2GND电源地
3SCLKSPI时钟输入
4MOSISPI数据输入
5MISOSPI数据输出
6CSSPI片选信号
7IRQ中断输出

硬件说明

控制器

本产品采用SC16IS752作为控制芯片,SC16IS752是双通道高性能的UART扩展芯片,支持SPI和I2C两种接口通信,本模块使用SPI接口。板载电源隔离、ADI磁耦隔离、板载TVS(瞬态电压抑制管)、自恢复保险丝和保护二极管和自动收发转换电路。可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电,防过流过压,提高抗冲击能力,可进行信号隔离,具有靠性高、抗干扰强、功耗低等优点。

通信协议


CS:从机片选,当CS为低电平的时候,芯片使能 
SCLK: SPI通信时钟 
MOSI/SI:SPI通信主机发送,从机接收 
MIS0/SO:SPI通信主机接收,从机发送 
时序:CPHL=0, CPOL=0 (SPI0)
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解 

树莓派使用

硬件连接

功能引脚树莓派接口(BCM)描述
VCC5V3.3V/5V电源正
GNDGND电源地
SCLKP21(SPI1 SCLK)SPI时钟输入
MOSIP20(SPI1 MOSI)SPI数据输入
MISOP19(SPI1 MISO)SPI数据输出
CSP18(SPI1 CS)SPI片选信号
IRQP24中断输出

添加驱动

  • 在终端执行:
  1. sudo nano /boot/config.txt
  2. #加入如下,int_pin根据实际焊接方式设置:
  3. dtoverlay=sc16is752-spi1,int_pin=24
  4. #重启设备
  5. sudo reboot

重启后,SC16IS752的驱动会加载到系统内核中,此时可以运行ls /dev查看一下 将会多出如下设备: 


安装库

请根据实际情况安装库,如果你编程为C,安装wiringPi即可;如果是python2,安装python2库;如果是python3,安装python3库;

  • 安装wiringPi
  1. sudo apt-get install wiringpi
  2. #对于树莓派4B可能需要进行升级;
  3. cd /tmp
  4. wget https://project-downloads.drogon.net/wiringpi-latest.deb
  5. sudo dpkg -i wiringpi-latest.deb
  6. gpio -v
  7. # 运行 gpio -v 会出现2.52版本,如果没有出现说明安装出错
  • 安装python2库
  1. sudo apt-get update
  2. sudo apt-get install python-pip
  3. sudo pip install RPi.GPIO
  4. sudo apt-get install python-serial
  • 安装python3库
  1. sudo apt-get update
  2. sudo apt-get install python3-pip
  3. sudo pip3 install RPi.GPIO
  4. sudo apt-get install python3-serial

测试

  • 下载并运行测试例程
  1. sudo apt-get install p7zip-full
  2. wget http://www.waveshare.net/w/upload/3/35/2-CH_RS232_HAT_Code.7z
  3. 7z x 2-CH_RS232_HAT_Code.7z -o./2-CH_RS232_HAT
  4. sudo chmod 777 -R 2-CH_RS232_HAT
  5. cd 2-CH_RS232_HAT/2-CH_RS232_HAT_Code/
  • 另外也可以下载我们Github上面的工程:
  1. sudo git clone https://github.com/waveshare/2-CH-RS232-HAT
  2. cd 2-CH_RS232_HAT_Code/

*注意目录稍微有些不一样

  • C 程序
  1. cd c
  2. make clean
  3. make
  4. sudo ./main

预期效果:
通道1通过转串口线连接电脑,打开电脑串口设置波特率115200,电脑发送任何数据,模块将数据返回(如果结尾不加回车换行,可能会导致终端无显示)。

  • PYTHON 程序
  1. cd python
  2. cd examples
  3. sudo python main.py
  • 通道1通过转串口线连接电脑,打开电脑串口设置波特率115200,电脑发送任何数据,模块将数据返回(如果结尾不加回车换行,可能会导致终端无显示)。


此外提供一个测试程序:

  1. sudo python test.py

运行test.py,通过母对母串口交叉线把通道1与通道2连接