RockSeed RS310P

From sigrok
Revision as of 19:08, 1 February 2021 by Trcm (talk | contribs)
Jump to navigation Jump to search
ROCKSEED RS310P
Rockseed rs310p.jpg
Status work-in-progress
Source code etommens-etm-xxxxp
Channels 1
Voltage/current (CH1) varies
Connectivity serial over USB
Features programmable presets, values, output, over-(voltage,current,power) thresholds.

Please note: This page is a work in progress, more to come. This is a very low cost programmable switching power-supply providing up to 30V and 10A.

Hardware

Model Topology Voltage Current Max Power
RS310P Buck 0-30V 0-10A 300W

Protocol

Modbus RTU only function codes 0x03 and 0x06 are supported (according to the pdf that came with the device).(Wikipedia). Baudrate defaults to 9600, 1 start bit, 8 data bits, no checkbits and 1 stop bit. Registers are 16bits, bigendian.

Name Register Address Access
Output State 0x0001 RW
Protection State 0x0002 R
Model ID 0x0004 R
Output Voltage 0x0010 R
Output Current 0x0011 R
Output Power high bits 0x0012 R
Output Power low bits 0x0013 R
Voltage Target 0x0030 RW
Current Limit 0x0031 RW
OVP Value 0x0020 RW
OCP Value 0x0021 RW
OPP Value high bits 0x0022 RW
OPP Value low bits 0x0023 RW
Decimals 0x0005 R

1. There is actually no OPP button on the power supply, but the protocol documentation lists, the address for it. Not relevant at the moment for a driver, since sigrok seems to have no OPP support anyway. 2. In the protocol documentation there is no mention of how to set the presets M1 to M6. But it seems they start at address 0x1000. This needs to be researched still, but I currently do not know how to handle presets in sigrok, so I need to find that out too. Also there is some other addresses listed in config files that are with the software provided, these need to be researched too.

3. The Protection State registers contains looks as follow and the designated bit goes high if the protection state is active:

Bit Designation
0 OVP
1 OCP
2 OPP
3 OTP
4 SCP
5
6
7
8

the 2nd byte does not give any information, and seems to always be 0.

4. The decimals registers contains the the decimal information for Voltage, Current and Power. The lower 12 bits are used with 4bits for each value. If the register content is 0x0321, it means Voltage has 3 decimals, Current 2 and Power 1.

Researched Registers:

Name Register Address Access Notes
Voltage upper Limit (UH) 0xC11E R 4 bytes long, contains high voltage limit (like the limit you get when turning the knob on the device), did not even try to write to it, values are same as current in format so divide int value by 10^digits
Current upper Limit (IH) 0xC12E R 4 bytes long, contains high current limit (like the limit you get when turning the knob on the device), did not even try to write to it, values are same as current in format so divide int value by 10^digits
Voltage lower Limit? (UL) 0xC110 R 4 bytes long, not sure what this is, it contains the value 10. But my supply outputs at 1 already.
Current lower Limit? (IL) 0xC120 R 4 bytes long, not sure what this is, it contains the value 21. And my power supply actually only starts outputting when set to 21mA or above.
Buzzer 0x8804 RW 2 bytes long, you can enable (write 0x0001) or disable (write 0x0000) the buzzer. It beeps on every single click (and on startup ) so probably no one wants to enable this ever.
defaultshow 0x8802 ? 2 bytes long, no idea what it is about
powerstat 0x8801 ? 2 bytes long, no idea what it is about
scp 0x8803 R 2 bytes long, no idea what it is about, i can't write to it, maybe my model just has no scp support?
sdtime 0xCCCC ? 2 bytes long, no idea what it is about
settimespan 0x0032 ? 2 bytes long, timespan till it auto disables output, but only if you use the preset list function. Don't see how this is useful for anything since the value only matters per preset.
preset voltage 0x1000+(0 to 5)*10 RW 2 bytes long, registers for presets M1 to M6
preset current 0x1001+(0 to 5)*10 RW 2 bytes long, registers for presets M1 to M6
preset timespan 0x1002+(0 to 5)*10 RW 2 bytes long, registers for presets M1 to M6, max value 9999 (this is seconds, so max is about 2,78h)
preset enabled (included in list) 0x1003+(0 to 5)*10 RW 2 bytes long, registers for presets M1 to M6

See also