SG SE752 1A

一、产品介绍

I2C接口,SC16IS752芯片设计,2路UART扩展,8位I/O扩展

基于树莓派40P接口排针设计,适用于Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+/4B,采用SC16IS752芯片方案,可以同时扩展两路串口和8个GPIO。I2C地址的设置和中断引脚的选择均采用跳线帽设计,用户使用方便。

二、产品特性

  • 板载SC16IS752,可通过I2C扩展2路串口和8个可编程IO,不占用额外管脚
  • 通过改变地址跳线可同时接入多达16个模块,即扩展出32路串口
  • 板载串口发送和接收指示灯,方便查看串口的工作状态
  • 预留I2C控制接口,方便接入其他主控板

三、产品参数  

供电电压

3.3V or 5V

逻辑电压

3.3V

扩展芯片

SC16IS752

接口协议

I2C

四、产品使用

4.1 资源简介

资源简介如下图所示:

 

I2C控制接口预留焊盘

中断引脚选择

串口A数据收发指示灯

串口A 排针

I2C地址A0设置

I2C地址A1设置

串口B排针

电源指示灯

串口B数据收发指示灯

GPIO预留焊盘

树莓派40P排母

4.2 硬件接口配置说明

SG-SE752-1A将I2C地址线全部引出,可以通过跳线帽对A0和A1进行地址设置另外中断引脚引出了6个,最多可以进行6块SG-SE752-1A的堆叠,我们提供的例程是将地址设为0x48,将中断引脚设置成D5(BCM)跳线帽设置如下所示:

 * Hardware Connection : Header

 *  I2C_Address:    A0 -> 3V3       IRQ_PIN:    IRQ -> D5

 *                     A2 -> 3V3          

A0和A1设置地址对应关系如下所示:

可以看到表中的列出来的地址均为8位数据,在实际操作中的I2C地址7位,所以需要往最低位移一位。 比如说第一个A1和A0接到VDD, 表格中给出来的地址是0x90(1001 000X), 但是实际使用的时候,对应的设备地址应该是,100 1000, 即0x48,如果需要进行SG-SE752-1A堆叠,则需要将堆叠的SG-SE752-1A设置成其他地址和其他的中断引脚。

4.3 示例程序

4.3.1、安装wiringpi库:

sudo apt-get install wiringpi

wget https://project-downloads.drogon.net/wiringpi-latest.deb  #

树莓派4B版本升级

sudo dpkg -i wiringpi-latest.deb

gpio -v #

对于Bullseye分支系统则使用如下命令:

git clone https://github.com/WiringPi/WiringPi

cd WiringPi

./build

gpio -v

行"gpio -v"会出现2.70版本,如果没有出现说明安装出错

如在运行python版本的示例程序时出现“ImportError: No module named 'wiringpi'”的错误提示则运行以下命令:

对Python2.x 版本

pip install wiringpi

对Python3.x 版本

pip3 install wiringpi

注:若安装失败,可尝试下面的编译安装:

git clone --recursive https://github.com/WiringPi/WiringPi-Python.git

注:--recursive选项,可以自动拉取子模块,否则就需要手动下载。

进入刚下载的WiringPi-Python文件夹,输入以下命令,编译、安装:

对Python2.x 版本

sudo python setup.py install

对Python3.x 版本

sudo python3 setup.py install

如出现如下错误:

此时输入命令“sudo apt install swig”安装swig,完成后,然后再实行“sudo python3 setup.py install”编译、安装。如出现类似如下信息则表示安装成功。

生成设备:

sudo nano /boot/config.txt

# addr根据A0 A1跳线帽实际组合方式设置,默认是0x48

dtoverlay=sc16is752-i2c,int_pin=5,addr=0x48

#如果需要堆叠多个SG-SE752-1A,则根据自己实际跳线帽的组合方式修改下列代码中的x和0xyy,并将#给去掉

#dtoverlay=sc16is752-i2c,int_pin=x,addr=0xyy

#重启设备

sudo reboot

重启之后执行

ls /dev/ttySC*

如果出现/dev/ttySC0和/dev/ttySC1则配置成功;如果堆叠了两块SG-SE752-1A则是会出现/dev/ttySC0、/dev/ttySC1、/dev/ttySC2、/dev/ttySC3。

安装python环境下的serial库:

sudo apt-get install python3-serial

4.3.2、树莓派I2C配置

启动树莓派系统配置:

sudo raspi-config

使能I2C接口:

Interfacing Options -> I2C -> Yes

重启设备

sudo reboot

查看已启用的I2C设备:

ls /dev/i2c*   #

此时会打印出:“/dev/i2c-1”

安装I2C库:

sudo apt install i2c-tools

安装python的smbus:

sudo apt install python-smbus

检测I2C总线上挂载的设备地址:

sudo i2cdetect -y -a 1

4.3.3、执行示例程序

Python:

进入python目录:

cd /home/pi/Serial_Expansion_Module/demo_codes/raspberry_pi/python

执行:

sudo python3 sc16is752.py

C:

进入c目录:

cd /home/pi/Seria_Expansion_Module/demo_codes/raspberry_pi/c

执行:

make clean

make

sudo ./main

4.3.4、演示代码说明

接线说明:

TXDA----RXDB

RXDA----TXDB

演示代码是针对只插入1块SG-SE752-1A时的操作,首先是完成串口与GPIO的初始化,GPIO0~GPIO3配置为输出,GPIO4~GPIO7配置为输入,然后进入周期约为1秒的循环步骤:ttySC0发送字符“Hello word”,ttySC1发送字符“www.seengreat.com”,然后读取ttySC0和ttySC1接收的字符内容并打印,接着GPIO0~GPIO3输出out_val电平并读取GPIO4~GPIO7的输入电平,在每次循环中out_val的值都会反转一次。串口设备符是/dev/ttySC0和/dev/ttySC1,GPIO是通过sysfs方式来控制,它会在/sys/class/gpio文件路径下生成gpiochip496,模块上的GPIO0~GPIO7对应gpio496~gpio503。如果是堆叠两块串行扩展模块,则会在/sys/class/gpio文件路径下增加gpiochip488,第二个模块上的GPIO0~GPIO7对应gpio488~gpio495。同时用户需要自己修改演示代码才能使用第二块模块的GPIO引脚。

 

五、附录

5.1 预防措施                                

  • 在通电状态下,不要插拔模块。
  • 遵循产品上提供的所有警告和指南。
  • 保持产品干燥。如不小心溅水或浸入液体,立即断开电源并彻底干燥产品。
  • 确保操作环境有良好的通风和散热,以避免因高温导致组件损坏。
  • 不要在多尘或肮脏的环境中使用或存放产品。
  • 避免在温度频繁变化的环境中使用产品,以防止组件发生冷凝损坏。
  • 轻拿轻放产品,避免跌落、撞击或剧烈震动,以免损坏电路和组件。
  • 不要使用有机溶剂或腐蚀性液体清洁产品。
  • 请勿自行尝试维修或拆解产品。如出现任何故障,请联系我们公司进行维修。未经授权的维修可能会损坏产品,造成的损坏将不在保修范围内。

5.2保养

地址:广西壮族自治区桂林市七星区漓江花园19栋

联系人:售后维修部

技术支持

技术支持时间(工作日):香港时间:上午9:30 - 上午11:30,

下午1:30 - 下午5:30电话:0773-7799838 传真:gxshengui@163.com

感谢您选择深桂科技的产品。如果您有创意产品或想法,请随时给我们发送电子邮件,也许我们可以进一步合作。我们的电子邮件地址是:gxshengui@163.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其他信息