Project

General

Profile

Wiki » History » Version 110

Frédéric Blanc, 2024-11-06 13:57

1 1 Frédéric Blanc
h1. Wiki
2
3 42 Frédéric Blanc
!{width: 30%}https://redmine.laas.fr/attachments/download/4815/Face%20AV%20PS.jpg!
4 43 Frédéric Blanc
5 42 Frédéric Blanc
!{width: 30%}https://redmine.laas.fr/attachments/download/4814/Face%20AR%20PS.jpg!
6
7 41 Frédéric Blanc
{{toc}}
8
9 110 Frédéric Blanc
h2. DPS version 2411
10
11
h3. Version a base de module DPH5005 [[Wiki#DPH5005]]
12
13
h3. Fabrication
14
15
[[Boitier]] 
16
17
h3. Interface USB <-> Modbus (RS485)
18
19
!clipboard-202411061355-f3ozb.png!
20
21
Solution au problème de ttyUSB0, il faut faire:
22
23
<pre><code class="shell">
24
sudo apt remove brltty
25
</code></pre>
26
27
28
https://askubuntu.com/questions/1403705/dev-ttyusb0-not-present-in-ubuntu-22-04
29
30
31 11 Frédéric Blanc
h2. Modbus / RS485 isolated
32
33 25 Frédéric Blanc
!clipboard-202404091540-4btca.png!
34
35 50 Frédéric Blanc
https://arduino103.blogspot.com/2021/10/decoder-une-trame-rs485-loscilloscope.html
36
37 25 Frédéric Blanc
h3. non isoler
38 24 Frédéric Blanc
39
!clipboard-202404091414-fugem.png!
40
41 21 Frédéric Blanc
!clipboard-202404081517-wbjgq.png!
42
43 27 Frédéric Blanc
h4. Fusibles réarmables
44
45
!clipboard-202404091611-8b8z9.png!
46
47 23 Frédéric Blanc
h3. Texas Instruments ISOW14x2 Isolated RS-485 DC-DC Converter
48 22 Frédéric Blanc
49
!clipboard-202404081533-dzk67.png!
50
51 18 Frédéric Blanc
h3.  ANALOG DEVICES LTM2881CV-5#PBF
52
53 19 Frédéric Blanc
!clipboard-202404051942-kmfn5.jpg!
54
55 18 Frédéric Blanc
Transceiver, RS422, RS485, 20 Mbps, 1 Driver, 1 Récepteur, 4,5 à 5.5V, 0 à 70°C, LGA-32
56
57
Code Farnell 4023829
58
59
h3. ADM2865E Power Isolated, RS-485 Transceivers
60 12 Frédéric Blanc
61 1 Frédéric Blanc
!clipboard-202404041435-zyzea.png!
62 12 Frédéric Blanc
63 13 Frédéric Blanc
|Code Farnell|Référence Fabricant	|Fabricant / Description|
64 12 Frédéric Blanc
|4023816	|ADM2865EBRNZ	|ANALOG DEVICES  Transceiver, RS422, RS485, 25 Mbps, 1 Driver, 1 Récepteur, 3 à 5.5V, -40 à 105°C, WSOIC-28|
65
|1456395	|SM712.TCT	|SEMTECH  Diode TVS, SM, Bidirectionelle, 12 V, 26 V, SOT-23, 3 Broche(s)|
66
|1515786	|BLM15HD182SN1D	|MURATA  Perle de ferrite, 0402 [1005 Metric], 1.8 kohm, 200 mA, BLM15H, 2.2 ohm, ± 25%|
67
|1867958	|08053D106KAT2A	|KYOCERA AVX  Condensateur céramique multicouche CMS, 10 µF, 25 V, 0805 [Métrique 2012], ± 10%, X5R|
68
|2443238	|BLM18HE601SN1D	|MURATA  Perle de ferrite, 0603 [1608 Metric], 600 ohm, 800 mA, BLM18H, 0.25 ohm, ± 25%|
69 11 Frédéric Blanc
70 37 Frédéric Blanc
h3. Module de communication d'isolation, ADUM3201 + B0505XT TTL à RS485
71
72
!clipboard-202404231543-s8vft.png!
73
74
*Attention RX sur TX*
75
76 83 Frédéric Blanc
h3. DFR0845 
77
78
!clipboard-202407041533-yroi0.png!
79 90 Frédéric Blanc
!clipboard-202407121501-bz7ns.png!
80 83 Frédéric Blanc
Ce module de transfert de signal RS485 vers UART actif et isolé est livré avec des circuits de protection tels que l'isolation de puissance et le TVS. Compatible avec la plupart des contrôleurs principaux, il présente les caractéristiques d'une vitesse de communication rapide, de performances stables et fiables, d'une sécurité élevée, etc., et peut être appliqué à divers capteurs industriels, équipements de contrôle industriel ou applications nécessitant une conversion de signal RS485.
81
https://wiki.dfrobot.com/Gravity_Active_Isolated_RS485_to_UART_Signal_Converter_SKU_DFR0845
82
83 84 Frédéric Blanc
 N° Mouser :
84
426-DFR0845 
85
www.gotronic.fr
86 85 Frédéric Blanc
Code: 37411
87
https://fr.farnell.com
88 1 Frédéric Blanc
Code Commande :
89 88 Frédéric Blanc
3974134
90 84 Frédéric Blanc
91 28 Frédéric Blanc
h3. RS485 I2C
92
93
!clipboard-202404120929-wdgmq.png!
94
95 20 Frédéric Blanc
h2. XY5005E
96
97 40 Frédéric Blanc
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
98 20 Frédéric Blanc
99
!clipboard-202404081443-iygma.png!
100 39 Frédéric Blanc
!clipboard-202404241236-ulutn.png!
101 38 Frédéric Blanc
!clipboard-202404241234-m5crk.png!
102
103 14 Frédéric Blanc
h2. XY6015L Step-Down Regulated Power Supply
104 1 Frédéric Blanc
105
!clipboard-202403251011-lfrn1.png!
106
107 4 Frédéric Blanc
µC AT32F421  ARM® Cortex®-M4 core
108
Ctrl EG1163S BUCK DC-DC de Rectification synchrone 300kHz
109
MOS NCE82H140
110
111 81 Frédéric Blanc
h2. DPS5005
112
113
!clipboard-202406181357-wvt60.png!
114
115
116
117
Module d'alimentation à afficheur LCD réglable en tension de 0 à 50 Vcc et en intensité de 0 à 5 A. L'écran couleur de 1,44'' offre un affichage particulièrement détaillé et complet des informations.
118
119
https://www.gotronic.fr/art-alimentation-programmable-dps5005-29294.htm
120
121 86 Frédéric Blanc
h3. modification port com
122
123
La vitesse de communication par défaut du port série DPS5005 est de 9 600 bauds, mais vous pouvez la modifier en alimentant l'alimentation tout en maintenant le bouton V/M1 enfoncé. Lorsque la modification est effectuée, appuyez deux fois sur le bouton « set » pour enregistrer la nouvelle configuration.
124
125 91 Frédéric Blanc
h3. Firmware alternatif
126
127
https://github.com/kanflo/opendps
128 92 Frédéric Blanc
https://redmine.laas.fr/attachments/4885
129 91 Frédéric Blanc
130 87 Frédéric Blanc
h3. Brochage port com
131
132
!clipboard-202407121448-7reos.png!
133
134 1 Frédéric Blanc
h2. DPH5005
135 107 Frédéric Blanc
136
h3. Driver
137
138 109 Frédéric Blanc
[[Driver DPH5005:Wiki|Driver Light DPH5005]]
139 81 Frédéric Blanc
140
!clipboard-202406181358-4or4r.png!
141
142
Module d'alimentation à afficheur LCD 1,44" réglable en tension de 0 à 50 Vcc et en intensité de 0 à 5 A. Ce module délivre un signal de sortie haute résolution réglable par paliers de 10 mV et de 1 mA.
143
144
https://www.gotronic.fr/art-alimentation-programmable-dph5005-31537.htm
145
146 31 Frédéric Blanc
h3. Modbus
147
148 1 Frédéric Blanc
!clipboard-202404121322-qk0l1.png!
149 32 Frédéric Blanc
150 53 Frédéric Blanc
voir documentation document:"protocol -english translation V1.2"
151
152 64 Frédéric Blanc
|_.function code|_.Definition|_.Operation (binary)|
153 52 Frédéric Blanc
|0x03|Read register data|Read data from one or more registers|
154
|0x06|Write a single register|Write a set of binary data to a single register|
155
|0x10|Write multiple registers|Write multiple sets of binary data to multiple registers|
156
157 61 Frédéric Blanc
|\5=. *0x03 Read the function of the host format* |
158 57 Frédéric Blanc
|address code|function code|Register start address |Number of register
159
 addresses n (1 ~ 32)|CRC Check code|
160 54 Frédéric Blanc
|1 byte|1 byte|2 byte|2 byte|2 byte|
161
162 62 Frédéric Blanc
|\5=. *0x03 Read function Slave returns format*|
163
|address code|function code|Returns the number of bytes 2 * n|Register data|CRC Check code|
164
|1 byte|1 byte|1 byte|2*n Bytes|2 byte|
165 52 Frédéric Blanc
166 63 Frédéric Blanc
|\5=. *0x06 Write a single register function in host format*|
167
|address code|function code|Register address|Register data|CRC Check code|
168 1 Frédéric Blanc
|1 byte|1 byte|2 byte|2 byte|2 byte|
169 64 Frédéric Blanc
170 65 Frédéric Blanc
|\5=. *0x06 Write a single register function from the machine to return the format*|
171 64 Frédéric Blanc
|address code|function code|Register address|Register data|CRC Check code|
172
|1 byte|1 byte|2 byte|2 byte|2 byte|
173
174 68 Frédéric Blanc
|\6=. *0x10 Write function host format*|
175 67 Frédéric Blanc
|address code|function code|Register start address|Number of register addresses
176
n (1 ~ 32)|Write the number of bytes 2 * n|Register data|CRC Check code|
177 66 Frédéric Blanc
|1 byte|1 byte|2 byte|2 byte|1 byte|2*n byte|2 byte|
178
179
|\5=. *0x10 Write function slave return format*|
180 67 Frédéric Blanc
|address code|function code|Register start address|Number of register addresses
181 66 Frédéric Blanc
n (1 ~ 32)|CRC Check code|
182
|1 byte|1 byte|2 byte|2 byte|2 byte|
183 63 Frédéric Blanc
184 69 Frédéric Blanc
Protocol register description (single register address data for double-byte data)
185 70 Frédéric Blanc
186 102 Frédéric Blanc
|name|Description|number of bytes|Decimal point|unit|Read and write|XY6015L|DPS5005|dps_modbus.py|
187
|U-SET|Voltage setting|2|2|V|R/W|0x0000|0x0000|voltage_set|
188
|I-SET|Current setting|2|2|A|R/W|0x0001|0x0001|current_set|
189 103 Frédéric Blanc
|UOUT|Output voltage display value|2|2|V|R|0x0002|0x0002|voltage|
190
|IOUT|Output current display value|2|2|A|R|0x0003|0x0003|current|
191
|POWER|Output power display value|2|2|W|R|0x0004|0x0004|power|
192
|UIN|Input voltage display value|2|2|V|R|0x0005|0x0005|voltage_in|
193
|LOCK|Key lock|2|0|-|R/W|0x0006|0x0006|lock|
194
|PROTECT|Protection state|2|0|-|R|0x0007|0x0007|protect|
195 76 Frédéric Blanc
|CVCC|Constant voltage constant current state|2|0|-|R|0x0008|cv_cc|
196 106 Frédéric Blanc
|ONOFF|Switch output|2|0|-|R/W|%{color:red}0x0012%|%{color:red}0x0009%|onoff|
197 105 Frédéric Blanc
|B_LED|Backlight brightness level|2|0|-|R/W|--|0x000A|b_led|
198 76 Frédéric Blanc
|MODEL|Product number|2|0|-|R|0x000B|model|
199
|VERSON|Firmware version number|2|0|-|R|0x000C|version|
200
|EXTRACT_M|Quickly bring up data sets|2|0|-|W|0x0023|extract_m|
201
|U-SET|Voltage setting|2|2|V|R/W|0x0050|voltage_set2|
202
|I-SET|Current setting|2|3|A|R/W|0x0051|current_set2|
203
|S-OVP|Overvoltage protection|2|2|V|R/W|0x0052|s_ovp|
204
|S-OCP|Overcurrent protection value|2|3|A|R/W|0x0053|s_ocp|
205
|S-OPP|Over power protection value|2|1、2|W|R/W|0x0054|s_opp|
206
|B-LED|Backlight brightness level|2|0|-|R/W|0x0055|b_led2|
207
|M-PRE|The data is called to update the output|2|0|-|R/W|0x0056|m_pre|
208
|S-INI|Power on the output switch|2|2|-|R/W|0x0057|s_ini|
209 75 Frédéric Blanc
210 76 Frédéric Blanc
h3. dps_modbus.py
211 69 Frédéric Blanc
212 79 Frédéric Blanc
|commande|Description|
213 78 Frédéric Blanc
|voltage_set|Voltage setting|
214
|current_set|Current setting|
215
|voltage|Output voltage display value|
216
|current|Output current display value|
217
|power|Output power display value|
218
|voltage_in|Input voltage display value|
219
|lock|Key lock|
220
|protect|Protection state|
221
|cv_cc|Constant voltage constant current state|
222
|onoff|Switch output|
223
|b_led|Backlight brightness level|
224
|model|Product number|
225
|version|Firmware version number|
226
|extract_m|Quickly bring up data sets|
227
|voltage_set2|Voltage setting|
228
|current_set2|Current setting|
229
|s_ovp|Overvoltage protection|
230
|s_ocp|Overcurrent protection value|
231
|s_opp|Over power protection value|
232
|b_led2|Backlight brightness level|
233
|m_pre|The data is called to update the output|
234
|s_ini|Power on the output switch|
235 77 Frédéric Blanc
|read_all|Read data as a block, much faster than individual reads|
236
|write_voltage_current|write voltage & current as a block|
237
|write_all|write block|
238
239
240 31 Frédéric Blanc
241 1 Frédéric Blanc
Slave Address: 1..247 ( *0: broadcast* )
242 31 Frédéric Blanc
Function code: see later
243
Data: 0..252 byte(s)
244 33 Frédéric Blanc
*CRC16-MODBUS* : see https://crccalc.com/ for code.
245 48 Frédéric Blanc
https://github.com/LacobusVentura/MODBUS-CRC16
246 1 Frédéric Blanc
247 34 Frédéric Blanc
h3. test commande
248
249 97 Frédéric Blanc
h4. XY6015L
250 46 Frédéric Blanc
251 45 Frédéric Blanc
sur /dev/ttyACM0
252 1 Frédéric Blanc
253 46 Frédéric Blanc
Broadcast Power ON
254 1 Frédéric Blanc
<pre><code class="shell">
255 35 Frédéric Blanc
echo -ne "\x00\x06\x00\x12\x00\x01\xE9\xDE" > /dev/ttyACM0
256 34 Frédéric Blanc
</code></pre>
257
258 36 Frédéric Blanc
Broadcast Power OFF
259
<pre><code class="shell">
260
echo -ne "\x00\x06\x00\x12\x00\x00\x28\x1E" > /dev/ttyACM0
261
</code></pre>
262 1 Frédéric Blanc
263 45 Frédéric Blanc
sur /dev/ttyUSB0
264 1 Frédéric Blanc
265 46 Frédéric Blanc
Broadcast Power ON
266 45 Frédéric Blanc
<pre><code class="shell">
267
echo -ne "\x00\x06\x00\x12\x00\x01\xE9\xDE" > /dev/ttyUSB0
268
</code></pre>
269
270
Broadcast Power OFF
271
<pre><code class="shell">
272
echo -ne "\x00\x06\x00\x12\x00\x00\x28\x1E" > /dev/ttyUSB0
273 1 Frédéric Blanc
</code></pre>
274 97 Frédéric Blanc
275 98 Frédéric Blanc
h4. DPS5005 or DPH5005
276 36 Frédéric Blanc
277 99 Frédéric Blanc
*BAUD Max 9600*
278
sur /dev/ttyACM0
279
280
Broadcast Power ON
281
<pre><code class="shell">
282 100 Frédéric Blanc
echo -ne "\x00\x06\x00\x09\x00\x01\DE\xE9" > /dev/ttyACM0
283 99 Frédéric Blanc
</code></pre>
284
285
Broadcast Power OFF
286
<pre><code class="shell">
287 100 Frédéric Blanc
echo -ne "\x00\x06\x00\x09\x00\x00\x1E\x28" > /dev/ttyACM0
288 99 Frédéric Blanc
</code></pre>
289
290 104 Frédéric Blanc
DPS07 Power OFF
291
<pre><code class="shell">
292
echo -ne "\x07\x06\x00\x09\x00\x00\xAE\x59" > /dev/ttyACM0
293
</code></pre>
294
295 99 Frédéric Blanc
sur /dev/ttyUSB0
296
297
Broadcast Power ON
298
<pre><code class="shell">
299 101 Frédéric Blanc
echo -ne "\x00\x06\x00\x09\x00\x01\DE\xE9" > /dev/ttyUSB0
300 99 Frédéric Blanc
</code></pre>
301
302
Broadcast Power OFF
303
<pre><code class="shell">
304 101 Frédéric Blanc
echo -ne "\x00\x06\x00\x09\x00\x00\1E\x28" > /dev/ttyUSB0
305 99 Frédéric Blanc
</code></pre>
306
307 30 Frédéric Blanc
h3. notice
308 15 Frédéric Blanc
309
presser [SW] pendant 2s pour accéder aux paramètres 
310
!clipboard-202404041503-e5ifh.png!
311
312 6 Frédéric Blanc
h2. GUI Python
313
314 9 Frédéric Blanc
h3. venv — Création d'environnements virtuels
315 6 Frédéric Blanc
316
<pre><code class="shell">
317 8 Frédéric Blanc
$ python3 -m venv venv
318 6 Frédéric Blanc
</code></pre>
319
320
Pour activer l'environnement, exécutez
321
322
<pre><code class="shell">
323
source venv/bin/activate
324
</code></pre>
325
326 7 Frédéric Blanc
<pre><code class="shell">
327
. venv/bin/activate
328
</code></pre>
329
330 51 Frédéric Blanc
sous Windows
331
<pre><code class="shell">
332
env\Scripts\activate.bat
333
</code></pre>
334
335 9 Frédéric Blanc
Vous devrez « quitter » ou « désactiver » votre environnement virtuel à l'aide de la commande 
336 6 Frédéric Blanc
337
<pre><code class="shell">
338
deactivate
339
</code></pre>
340
341
342
343 1 Frédéric Blanc
https://docs.python.org/fr/3/library/venv.html
344
345 16 Frédéric Blanc
h3. pyqt5
346
347
<pre><code class="shell">
348
pip3 install pyqt5 --config-settings --confirm-license= --verbose
349
</code></pre>
350
351 17 Frédéric Blanc
https://stackoverflow.com/questions/73714829/pip-install-pyqt5-it-cannot-go-on
352 16 Frédéric Blanc
353 9 Frédéric Blanc
h3. XY6015L_pyGUI
354
355 44 Frédéric Blanc
lancement de l'interface
356
357
<pre><code class="python">
358
python dps_GUI_program.py
359
</code></pre>
360
361 9 Frédéric Blanc
!clipboard-202404041117-w53xm.png!
362
363
configuration du port com
364
365
le port série peut être corrigé en modifiant le paramètre "port_set" dans "dps5005_limits.ini".
366
367
368
<pre><code class="shell">
369
[SectionZero]
370
The parameters below limit the code from incorrectly transmitting extreme values entered by the user:
371
if threshold exceeded value defaults to zero:
372
This file may be adapted for other versions of 'DPSxxxx' power supplies:
373
374
[SectionOne]
375
#leave empty "" for automatic port scanning or set serial port e.g. "/dev/cu.wchusbserial1410" or "/dev/ttyUSB0":
376
port_set: "/dev/ttyACM0"	#
377
378
#The parameters below limit the code from incorrectly transmitting extreme values entered by the user:
379 1 Frédéric Blanc
#if threshold exceeded value defaults to zero:
380 10 Frédéric Blanc
...
381 9 Frédéric Blanc
</code></pre>
382
383 93 Frédéric Blanc
h2. SCPI
384
385 94 Frédéric Blanc
h3. SCPI parser
386
387
À propos de l'analyseur SCPI
388
389
La bibliothèque SCPI Parser vise à fournir une capacité d'analyse des commandes SCPI côté instrument. Toutes les commandes sont définies par leurs modèles, par exemple : "STATus:QUEStionable:EVENt?".
390
391
Les codes sources sont publiés avec une licence BSD simplifiée open source.
392
393
La bibliothèque d'analyseurs SCPI est basée sur ces normes:
394 95 Frédéric Blanc
*SCPI-99
395
IEEE 488.2-2004*
396 94 Frédéric Blanc
397
398 93 Frédéric Blanc
https://github.com/j123b567/scpi-parser
399
400 9 Frédéric Blanc
h2. Sources
401 5 Frédéric Blanc
402 82 Frédéric Blanc
https://profimaxblog.ru/dps_update/
403 26 Frédéric Blanc
https://www.circuitstate.com/tutorials/what-is-rs-485-how-to-use-max485-with-arduino-for-reliable-long-distance-serial-communication/
404 29 Frédéric Blanc
http://xj900diversion.free.fr/bus/I2C%20-%20RS-485%20adapter.htm
405 5 Frédéric Blanc
https://github.com/AntaresAdroit/RDTech_PS_Comm
406
https://github.com/lambcutlet/DPS5005_pyGUI
407
https://github.com/kbs3056/XY6015L_pyGUI