Project

General

Profile

Actions

Wiki » History » Revision 74

« Previous | Revision 74/109 (diff) | Next »
Frédéric Blanc, 2024-06-11 09:01


Wiki

Modbus / RS485 isolated

https://arduino103.blogspot.com/2021/10/decoder-une-trame-rs485-loscilloscope.html

non isoler

Fusibles réarmables

Texas Instruments ISOW14x2 Isolated RS-485 DC-DC Converter

ANALOG DEVICES LTM2881CV-5#PBF

Transceiver, RS422, RS485, 20 Mbps, 1 Driver, 1 Récepteur, 4,5 à 5.5V, 0 à 70°C, LGA-32

Code Farnell 4023829

ADM2865E Power Isolated, RS-485 Transceivers

Code Farnell Référence Fabricant Fabricant / Description
4023816 ADM2865EBRNZ ANALOG DEVICES Transceiver, RS422, RS485, 25 Mbps, 1 Driver, 1 Récepteur, 3 à 5.5V, -40 à 105°C, WSOIC-28
1456395 SM712.TCT SEMTECH Diode TVS, SM, Bidirectionelle, 12 V, 26 V, SOT-23, 3 Broche(s)
1515786 BLM15HD182SN1D MURATA Perle de ferrite, 0402 [1005 Metric], 1.8 kohm, 200 mA, BLM15H, 2.2 ohm, ± 25%
1867958 08053D106KAT2A KYOCERA AVX Condensateur céramique multicouche CMS, 10 µF, 25 V, 0805 [Métrique 2012], ± 10%, X5R
2443238 BLM18HE601SN1D MURATA Perle de ferrite, 0603 [1608 Metric], 600 ohm, 800 mA, BLM18H, 0.25 ohm, ± 25%

Module de communication d'isolation, ADUM3201 + B0505XT TTL à RS485

Attention RX sur TX

RS485 I2C

XY5005E

com le port 4 broches JST 1.25 ne semble pas avoir de TX, ni de RX. Il n'y a pas non plus de menu pour le chois de l'adressage



XY6015L Step-Down Regulated Power Supply

µC AT32F421 ARM® Cortex®-M4 core
Ctrl EG1163S BUCK DC-DC de Rectification synchrone 300kHz
MOS NCE82H140

Modbus

voir documentation protocol -english translation V1.2

function code Definition Operation (binary)
0x03 Read register data Read data from one or more registers
0x06 Write a single register Write a set of binary data to a single register
0x10 Write multiple registers Write multiple sets of binary data to multiple registers
0x03 Read the function of the host format
address code function code Register start address Number of register
addresses n (1 ~ 32)
CRC Check code
1 byte 1 byte 2 byte 2 byte 2 byte
0x03 Read function Slave returns format
address code function code Returns the number of bytes 2 * n Register data CRC Check code
1 byte 1 byte 1 byte 2*n Bytes 2 byte
0x06 Write a single register function in host format
address code function code Register address Register data CRC Check code
1 byte 1 byte 2 byte 2 byte 2 byte
0x06 Write a single register function from the machine to return the format
address code function code Register address Register data CRC Check code
1 byte 1 byte 2 byte 2 byte 2 byte
0x10 Write function host format
address code function code Register start address Number of register addresses
n (1 ~ 32)
Write the number of bytes 2 * n Register data CRC Check code
1 byte 1 byte 2 byte 2 byte 1 byte 2*n byte 2 byte
0x10 Write function slave return format
address code function code Register start address Number of register addresses
n (1 ~ 32)
CRC Check code
1 byte 1 byte 2 byte 2 byte 2 byte

Protocol register description (single register address data for double-byte data)

name Description number of bytes Decimal point unit Read and write Register address
U-SET Voltage setting 2 2 V R/W 0000H
I-SET Current setting 2 2 A R/W 0001H
UOUT Output voltage display value 2 2 V R 0002H
IOUT Output current display value 2 2 A R 0003H
POWER Output power display value 2 2 W R 0004H
UIN Input voltage display value 2 2 V R 0005H
LOCK Key lock 2 0 - R/W 0006H
PROTECT Protection state 2 0 - R 0007H
CVCC Constant voltage constant current state 2 0 - R 0008H
ONOFF Switch output 2 0 - R/W 0009H
B_LED Backlight brightness level 2 0 - R/W 000AH
MODEL Product number 2 0 - R 000BH
VERSON Firmware version number 2 0 - R 000CH
EXTRACT_M Quickly bring up data sets 2 0 - W 0023H
U-SET Voltage setting 2 2 V R/W 0050H
I-SET Current setting 2 3 A R/W 0051H
S-OVP Overvoltage protection 2 2 V R/W 0052H
S-OCP Overcurrent protection value 2 3 A R/W 0053H
S-OPP Over power protection value 2 1、2 W R/W 0054H
B-LED Backlight brightness level 2 0 - R/W 0055H
M-PRE The data is called to update the output 2 0 - R/W 0056H
S-INI Power on the output switch 2 2 - R/W 0057H

/dev/ttyACM0 ou /dev/ttyUSB0
baud rate 115200

Slave Address: 1..247 ( 0: broadcast )
Function code: see later
Data: 0..252 byte(s)
CRC16-MODBUS : see https://crccalc.com/ for code.
https://github.com/LacobusVentura/MODBUS-CRC16

Modbus registers:
U_SET = 0
I_SET = 1
UOUT = 2
IOUT = 3
POWER = 4
UIN = 5
Ah = 6
PROTECT = 7 # not tested
Wh = 8
Time = 11
Temp = 13
Lock = 15
CV_CC = 17
ONOFF = 18
Celsius = 19
MODEL = 22 # ?
VERSION = 23 # ?

test commande

sur /dev/ttyACM0

Broadcast Power ON

echo -ne "\x00\x06\x00\x12\x00\x01\xE9\xDE" > /dev/ttyACM0

Broadcast Power OFF

echo -ne "\x00\x06\x00\x12\x00\x00\x28\x1E" > /dev/ttyACM0

sur /dev/ttyUSB0

Broadcast Power ON

echo -ne "\x00\x06\x00\x12\x00\x01\xE9\xDE" > /dev/ttyUSB0

Broadcast Power OFF

echo -ne "\x00\x06\x00\x12\x00\x00\x28\x1E" > /dev/ttyUSB0

notice

presser [SW] pendant 2s pour accéder aux paramètres

GUI Python

venv — Création d'environnements virtuels

$ python3 -m venv venv

Pour activer l'environnement, exécutez

source venv/bin/activate
. venv/bin/activate

sous Windows

env\Scripts\activate.bat

Vous devrez « quitter » ou « désactiver » votre environnement virtuel à l'aide de la commande

deactivate

https://docs.python.org/fr/3/library/venv.html

pyqt5

pip3 install pyqt5 --config-settings --confirm-license= --verbose

https://stackoverflow.com/questions/73714829/pip-install-pyqt5-it-cannot-go-on

XY6015L_pyGUI

lancement de l'interface

python dps_GUI_program.py

configuration du port com

le port série peut être corrigé en modifiant le paramètre "port_set" dans "dps5005_limits.ini".

[SectionZero]
The parameters below limit the code from incorrectly transmitting extreme values entered by the user:
if threshold exceeded value defaults to zero:
This file may be adapted for other versions of 'DPSxxxx' power supplies:

[SectionOne]
#leave empty "" for automatic port scanning or set serial port e.g. "/dev/cu.wchusbserial1410" or "/dev/ttyUSB0":
port_set: "/dev/ttyACM0"    #

#The parameters below limit the code from incorrectly transmitting extreme values entered by the user:
#if threshold exceeded value defaults to zero:
...

Sources

https://www.circuitstate.com/tutorials/what-is-rs-485-how-to-use-max485-with-arduino-for-reliable-long-distance-serial-communication/
http://xj900diversion.free.fr/bus/I2C%20-%20RS-485%20adapter.htm
https://github.com/AntaresAdroit/RDTech_PS_Comm
https://github.com/lambcutlet/DPS5005_pyGUI
https://github.com/kbs3056/XY6015L_pyGUI

Updated by Frédéric Blanc 5 months ago · 74 revisions