10 namespace Treehopper {
namespace Libraries {
namespace IO {
namespace Adc {
69 class PuCtrlRegister :
public Register 79 int useExternalCrystal;
82 long getValue() {
return ((registerReset & 0x1) << 0) | ((powerUpDigital & 0x1) << 1) | ((powerUpAnalog & 0x1) << 2) | ((powerUpReady & 0x1) << 3) | ((cycleStart & 0x1) << 4) | ((cycleReady & 0x1) << 5) | ((useExternalCrystal & 0x1) << 6) | ((useInternalLdo & 0x1) << 7); }
83 void setValue(
long val)
85 registerReset = (int)((val >> 0) & 0x1);
86 powerUpDigital = (int)((val >> 1) & 0x1);
87 powerUpAnalog = (int)((val >> 2) & 0x1);
88 powerUpReady = (int)((val >> 3) & 0x1);
89 cycleStart = (int)((val >> 4) & 0x1);
90 cycleReady = (int)((val >> 5) & 0x1);
91 useExternalCrystal = (int)((val >> 6) & 0x1);
92 useInternalLdo = (int)((val >> 7) & 0x1);
96 class Ctrl1Register :
public Register 103 int conversionReadyPinPolarity;
105 void setGain(
Gains enumVal) { gain = (int)enumVal; }
107 void setVldo(
Vldoes enumVal) { vldo = (int)enumVal; }
109 long getValue() {
return ((gain & 0x7) << 0) | ((vldo & 0x7) << 3) | ((drdySelect & 0x1) << 6) | ((conversionReadyPinPolarity & 0x1) << 7); }
110 void setValue(
long val)
112 gain = (int)((val >> 0) & 0x7);
113 vldo = (int)((val >> 3) & 0x7);
114 drdySelect = (int)((val >> 6) & 0x1);
115 conversionReadyPinPolarity = (int)((val >> 7) & 0x1);
119 class Ctrl2Register :
public Register 129 void setCalMod(
CalMods enumVal) { calMod = (int)enumVal; }
131 void setConversionRate(
ConversionRates enumVal) { conversionRate = (int)enumVal; }
133 long getValue() {
return ((calMod & 0x3) << 0) | ((calStart & 0x1) << 2) | ((calError & 0x1) << 3) | ((conversionRate & 0x7) << 4) | ((channelSelect & 0x1) << 7); }
134 void setValue(
long val)
136 calMod = (int)((val >> 0) & 0x3);
137 calStart = (int)((val >> 2) & 0x1);
138 calError = (int)((val >> 3) & 0x1);
139 conversionRate = (int)((val >> 4) & 0x7);
140 channelSelect = (int)((val >> 7) & 0x1);
144 class I2cCtrlRegister :
public Register 157 long getValue() {
return ((bgpCp & 0x1) << 0) | ((ts & 0x1) << 1) | ((boPga & 0x1) << 2) | ((si & 0x1) << 3) | ((wpd & 0x1) << 4) | ((spe & 0x1) << 5) | ((frd & 0x1) << 6) | ((crsd & 0x1) << 7); }
158 void setValue(
long val)
160 bgpCp = (int)((val >> 0) & 0x1);
161 ts = (int)((val >> 1) & 0x1);
162 boPga = (int)((val >> 2) & 0x1);
163 si = (int)((val >> 3) & 0x1);
164 wpd = (int)((val >> 4) & 0x1);
165 spe = (int)((val >> 5) & 0x1);
166 frd = (int)((val >> 6) & 0x1);
167 crsd = (int)((val >> 7) & 0x1);
171 class AdcResultRegister :
public Register 177 long getValue() {
return ((value & 0xFFFFFF) << 0); }
178 void setValue(
long val)
180 value = (int)(((val >> 0) & 0xFFFFFF) << (32 - 24)) >> (32 - 24);
192 void setAdcVcm(
AdcVcms enumVal) { adcVcm = (int)enumVal; }
194 void setRegChpFreq(
RegChpFreqs enumVal) { regChpFreq = (int)enumVal; }
196 long getValue() {
return ((regChp & 0x3) << 0) | ((adcVcm & 0x3) << 2) | ((regChpFreq & 0x3) << 4); }
197 void setValue(
long val)
199 regChp = (int)((val >> 0) & 0x3);
200 adcVcm = (int)((val >> 2) & 0x3);
201 regChpFreq = (int)((val >> 4) & 0x3);
215 long getValue() {
return ((disableChopper & 0x1) << 0) | ((pgaInv & 0x1) << 3) | ((pgaBypass & 0x1) << 4) | ((ldoMode & 0x1) << 5) | ((rdOptSel & 0x1) << 6); }
216 void setValue(
long val)
218 disableChopper = (int)((val >> 0) & 0x1);
219 pgaInv = (int)((val >> 3) & 0x1);
220 pgaBypass = (int)((val >> 4) & 0x1);
221 ldoMode = (int)((val >> 5) & 0x1);
222 rdOptSel = (int)((val >> 6) & 0x1);
226 class PowerCtrlRegister :
public Register 235 long getValue() {
return ((pgaCurr & 0x3) << 0) | ((adcCurr & 0x3) << 2) | ((masterBiasCurr & 0x7) << 4) | ((pgaCapEn & 0x1) << 7); }
236 void setValue(
long val)
238 pgaCurr = (int)((val >> 0) & 0x3);
239 adcCurr = (int)((val >> 2) & 0x3);
240 masterBiasCurr = (int)((val >> 4) & 0x7);
241 pgaCapEn = (int)((val >> 7) & 0x1);
245 PuCtrlRegister puCtrl;
248 I2cCtrlRegister i2cCtrl;
249 AdcResultRegister adcResult;
252 PowerCtrlRegister powerCtrl;
254 Nau7802Registers(SMBusDevice& device) :
RegisterManager(device, true), puCtrl(*this), ctrl1(*this), ctrl2(*this), i2cCtrl(*this), adcResult(*this), adc(*this), pga(*this), powerCtrl(*this)
256 registers.push_back(&puCtrl);
257 registers.push_back(&ctrl1);
258 registers.push_back(&ctrl2);
259 registers.push_back(&i2cCtrl);
260 registers.push_back(&adcResult);
261 registers.push_back(&adc);
262 registers.push_back(&pga);
263 registers.push_back(&powerCtrl);
CalMods
Definition: Nau7802Registers.h:36
Definition: Register.h:11
Definition: RegisterManager.h:10
AdcVcms
Definition: Nau7802Registers.h:53
Vldoes
Definition: Nau7802Registers.h:24
ConversionRates
Definition: Nau7802Registers.h:44
RegChpFreqs
Definition: Nau7802Registers.h:60
Gains
Definition: Nau7802Registers.h:12