Project

General

Profile

Actions

Wiki » History » Revision 58

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


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

/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