• sales

    +86-0755-88291180

2-CH RS485 HAT

Introduction


This is a dual-channel isolated RS485 extension board specially designed for raspberry PI, which adopts SC16IS752+SP3485 solution, embed with protection circuits such as power supply isolation, ADI magnetical isolation, and TVS diode, etc. It is easy to control the 2-channel RS485 for auto transceiving via SPI interface. Due to its fast communication, stability, reliability, and safety, it is an ideal choice for fields like industrial automation.

Interfaces

VCC3.3V
PINDescription
VCC3.3V/5V Power
GNDGround
SCLKSPI Clock input
MOSISPI Data input
MISOSPI Data output
CSSPI Chip Selection
IRQInterrupt output (Interrupt Request)
EN1Channel 1 output enable
EN2Channel 2 output enable


Working principle

Introduction



This product adopts SC16IS752 as controller. SC16IS752 is a dual-channel high-performance UART expansion chip that supports SPI and I2C interfaces communication. This module uses SPI interface. Onboard power isolation, ADI magnetic coupler isolation, onboard TVS (transient voltage suppression tube), self-recovery fuses, protection diodes, and automatic transceiver switching circuit. It can effectively suppress the surge voltage and transient peak voltage in the circuit, prevent lightning and static electricity, prevent over-voltage, improve the anti-impact ability, can conduct signal isolation, with high dependence, strong anti-interference, low power consumption advantages, etc.

Communication protocol





  • CS:Slave chip selection, when CS is low, the slave chip is enabled.
  • SCLK:SPI communication clock
  • MOSI/SI:SPI Communication master sends, slave receives
  • MOSI/SI:SPI Communication master receives, slave sends
  • Timing Sequence:CPHL=0, CPOL=0 (SPI0)

How to use

We provide C and Python demo codes for Raspberry Pi. A quick testing example is provided in python.

Hardware Connection

To run examples, you should prepare an external RS485 to UART module, connect it to Channel 1 of 2-CH RS485 HAT.

If you test the 2-CH RS485 HAT with the text.py example, you need to wire Channel 1 and Channel 2 of 2-CH RS485 HAT.

485 PINRaspberry Pi(BCM)
VCC5V
GNDGND
SCKP21 (SPI1 SCLK)
MOSIP20 (SPI1 MOSI)
MISOP19 (SPI1 MISO)
CSP18 (SPI1 CS)
IRQP24
EN1P27
EN2P22

Software setup

  • Open the terminal and modify config.txt file by commands:
sudo nano /boot/config.txt
  • Add the line below to the file, the int_pin should be set according to the actual welding:
dtoverlay=sc16is752-spi1,int_pin=24
  • Then restart Raspberry Pi
sudo reboot
  • After rebooting, the driver of SC16IS752 will be loaded into the system kernel. You can run command ls /dev to check the following devices:

Install Libraries

  • Install wiringpi
sudo apt-get install wiringpi
# An upgrade may be required for raspberry PI 4B:
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# Running gpio-v to check if the version is 2.52, If it is not, you need to check the installation again.
  • Install the python2 library
sudo apt-get update
sudo apt-get install python-pip
sudo pip install RPi.GPIO
sudo apt-get install python-serial
  • Install the python3 library
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install RPi.GPIO
sudo apt-get install python3-serial


Test

  • Download and run the examples:
sudo apt-get install p7zip-full
wget http://www.waveshare.net/w/upload/4/44/2-CH_RS485_HAT_code.7z
7z x 2-CH_RS485_HAT_code.7z
sudo chmod 777 -R  2-CH_RS485_HAT
cd 2-CH_RS485_HAT/
  • You can also clone the project from our Github:
sudo git clone https://github.com/waveshare/2-CH-RS485-HAT
cd 2-CH-RS485-HAT/
  • C program
cd c
make clean
make
sudo ./main
  • Python program
cd python 
cd examples
sudo python main.py

Hardware connection: Channel 1 of the 2-CH RS485 HAT is connected to the USB TO USB TO RS232/485/TTL

Connect USB TO USB TO RS232/485/TTL to the computer, open the serial port assistant software, select the corresponding serial port, and set the baud rate to 115200.

  • Run the C program, the data sent by computer will all be received by Raspberry Pi, as below:

Note: The path of the samples is based on the actual directory;

  • Run the main.py, the data sent by computer will all be received by Raspberry Pi, as below:

Note: The path of the samples is based on the actual directory;

If you don't have other RS485 devices, you can choose the test method as follow by connecting channel 1 with channel 2:



  • Running result of test.py :

TAG: Pi5 Raspberry Pi 10.1 inch DSI LCD TouchScreen Display 800x1280 Also For RK3576/RK3506/ESP32-P4 Raspberry Pi Starlight Camera IR-CUT IMX462 (A) Sensor 2MP 90 Degree Raspberry Pi Pico 2 RP2350 1.8 inch AMOLED Development Board Display 368×448 TouchScreen Programmable Watch QSPI Raspberry Pi 5 Cooling Raspberry Pi Pico 2 RP2350-One Mini Board Type-A RP2350A Magnetic Encoder Servo Motor 85KG.CM 12V/24V 360° RS485 High Precision And Large Torque and Audio Speaker Luckfox Pico MINI Raspberry Pi 5 Aluminium Case Raspberry Pi 5 inch LCD 720x1280 Capacitive TouchScreen Display HDMI For Jetson Nano/mini Computer PC Pi5 Heatsink Arduino IR Thermal Imaging Camera ESP32-S3 AI Electronic Eye Development Doard DualEye TouchEye 1.28 inch TouchScreen LCD Round Display N16R8 Toy Doll Robot TVBOX Kit Luckfox Pico Ultra And 4inch LCD RGB Captive TouchScreen Display Sipeed Tang Primer 25K GW5A RISCV FPGA Development Board Dock SDRAM GW5A-LV25MG121 Retro Game linux Xiaozhi AI video tutorial CAN Analyzer Raspberry Pi 1.3inch ESP32 ST7789 configuration