Project

General

Profile

Actions

Wiki » History » Revision 64

« Previous | Revision 64/123 (diff) | Next »
Frédéric Blanc, 2024-06-10 16:38


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

/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 6 months ago · 123 revisions