Skip to content

Commit e550691

Browse files
committed
Added Ridden PSU model descriptions.
Added support for other RD and DPS models: fixes #1013
1 parent 8e21f83 commit e550691

2 files changed

Lines changed: 57 additions & 6 deletions

File tree

scopehal/RidenPowerSupply.cpp

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,38 @@ RidenPowerSupply::RidenPowerSupply(SCPITransport* transport)
5555
// Read model number
5656
uint16_t modelNumber = ReadRegister(REGISTER_MODEL);
5757
m_model = string("RD") + to_string(modelNumber/10) +"-" + to_string(modelNumber%10);
58+
// Determine current and voltage factor
59+
switch(modelNumber)
60+
{
61+
case 3005:
62+
case 5005:
63+
case 8005:
64+
case 60061:
65+
case 60062:
66+
case 60066:
67+
m_currentFactor = 1000;
68+
m_voltageFactor = 100;
69+
break;
70+
case 60065:
71+
m_currentFactor = 10000;
72+
m_voltageFactor = 100;
73+
break;
74+
case 5015:
75+
case 5020:
76+
case 60121:
77+
case 60181:
78+
case 60241:
79+
m_currentFactor = 100;
80+
m_voltageFactor = 100;
81+
break;
82+
case 60125:
83+
m_currentFactor = 1000;
84+
m_voltageFactor = 1000;
85+
break;
86+
default:
87+
m_currentFactor = 1000;
88+
m_voltageFactor = 100;
89+
}
5890
// Read serial number
5991
uint16_t serialNumber = ReadRegister(REGISTER_SERIAL);
6092
m_serial = to_string(serialNumber);
@@ -112,28 +144,28 @@ double RidenPowerSupply::GetPowerVoltageActual(int chan)
112144
{
113145
if(chan != 0)
114146
return 0;
115-
return ((double)ReadRegister(REGISTER_V_OUT))/100;
147+
return ((double)ReadRegister(REGISTER_V_OUT))/m_voltageFactor;
116148
}
117149

118150
double RidenPowerSupply::GetPowerVoltageNominal(int chan)
119151
{
120152
if(chan != 0)
121153
return 0;
122-
return ((double)ReadRegister(REGISTER_V_SET))/100;
154+
return ((double)ReadRegister(REGISTER_V_SET))/m_voltageFactor;
123155
}
124156

125157
double RidenPowerSupply::GetPowerCurrentActual(int chan)
126158
{
127159
if(chan != 0)
128160
return 0;
129-
return ((double)ReadRegister(REGISTER_I_OUT))/1000;
161+
return ((double)ReadRegister(REGISTER_I_OUT))/m_currentFactor;
130162
}
131163

132164
double RidenPowerSupply::GetPowerCurrentNominal(int chan)
133165
{
134166
if(chan != 0)
135167
return 0;
136-
return ((double)ReadRegister(REGISTER_I_SET))/1000;
168+
return ((double)ReadRegister(REGISTER_I_SET))/m_currentFactor;
137169
}
138170

139171
bool RidenPowerSupply::GetPowerChannelActive(int chan)
@@ -147,14 +179,14 @@ void RidenPowerSupply::SetPowerVoltage(int chan, double volts)
147179
{
148180
if(chan != 0)
149181
return;
150-
WriteRegister(REGISTER_V_SET,(uint16_t)(volts*100));
182+
WriteRegister(REGISTER_V_SET,(uint16_t)(volts*m_voltageFactor));
151183
}
152184

153185
void RidenPowerSupply::SetPowerCurrent(int chan, double amps)
154186
{
155187
if(chan != 0)
156188
return;
157-
WriteRegister(REGISTER_I_SET,(uint16_t)(amps*1000));
189+
WriteRegister(REGISTER_I_SET,(uint16_t)(amps*m_currentFactor));
158190
}
159191

160192
void RidenPowerSupply::SetPowerChannelActive(int chan, bool on)

scopehal/RidenPowerSupply.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,27 @@ class RidenPowerSupply
9191
REGISTER_ON_OFF = 0x12
9292
};
9393

94+
double m_currentFactor;
95+
double m_voltageFactor;
96+
9497
public:
9598
static std::string GetDriverNameInternal();
99+
static std::vector<SCPIInstrumentModel> GetDriverSupportedModels()
100+
{
101+
return {
102+
#ifdef _WIN32
103+
{"Riden RD60xx", {{ SCPITransportType::TRANSPORT_UART, "COM<x>" }}},
104+
{"Riden DPS30xx", {{ SCPITransportType::TRANSPORT_UART, "COM<x>" }}},
105+
{"Riden DPS50xx", {{ SCPITransportType::TRANSPORT_UART, "COM<x>" }}},
106+
{"Riden DPS80xx", {{ SCPITransportType::TRANSPORT_UART, "COM<x>" }}}
107+
#else
108+
{"Riden RD60xx", {{ SCPITransportType::TRANSPORT_UART, "/dev/ttyUSB<x>" }}},
109+
{"Riden DPS30xx", {{ SCPITransportType::TRANSPORT_UART, "/dev/ttyUSB<x>" }}},
110+
{"Riden DPS50xx", {{ SCPITransportType::TRANSPORT_UART, "/dev/ttyUSB<x>" }}},
111+
{"Riden DPS80xx", {{ SCPITransportType::TRANSPORT_UART, "/dev/ttyUSB<x>" }}}
112+
#endif
113+
};
114+
}
96115
POWER_INITPROC(RidenPowerSupply);
97116
};
98117

0 commit comments

Comments
 (0)