M5Unit-ANADIG 0.3.0 git rev:6ce23e4
Loading...
Searching...
No Matches
unit_ADS1110.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
10#ifndef M5_UNIT_ANADIG_UNIT_ADS1110_HPP
11#define M5_UNIT_ANADIG_UNIT_ADS1110_HPP
12#include "unit_ADS11xx.hpp"
13
14namespace m5 {
15namespace unit {
20namespace ads1110 {
25enum class Sampling : uint8_t {
26 Rate240,
27 Rate60,
28 Rate30,
29 Rate15,
30};
31
32using PGA = m5::unit::ads11xx::PGA;
33using Data = m5::unit::ads11xx::Data;
34
35} // namespace ads1110
36
41class UnitADS1110 : public UnitADS11XX {
42 M5_UNIT_COMPONENT_HPP_BUILDER(UnitADS1110, 0x48);
43
44public:
49 struct config_t {
51 bool start_periodic{true};
53 ads1110::Sampling sampling_rate{ads1110::Sampling::Rate15};
55 ads1110::PGA pga{ads1110::PGA::Gain1};
57 float factor{100.f / 610.f};
58 };
59
63 explicit UnitADS1110(const float factor = 100.f / 610.f, const uint8_t addr = DEFAULT_ADDRESS) : UnitADS11XX(addr)
64 {
65 _vdd = 2048.f; // Fixed (internal VDD)
66 _cfg.factor = _factor = factor;
67 }
68 virtual ~UnitADS1110()
69 {
70 }
71
73 virtual bool begin() override;
74
77
79 {
80 return _cfg;
81 }
83 inline void config(const config_t& cfg)
84 {
85 _cfg = cfg;
86 }
88
91
103 bool writeSamplingRate(const ads1110::Sampling rate);
105
108
114 inline bool startPeriodicMeasurement(const ads1110::Sampling rate, const ads1110::PGA pga)
115 {
116 return start_periodic_measurement(rate, pga);
117 }
120 {
121 return UnitADS11XX::startPeriodicMeasurement();
122 }
128 {
129 return UnitADS11XX::stopPeriodicMeasurement();
130 }
132
135
146 bool measureSingleshot(ads1110::Data& data, const ads1110::Sampling rate, const ads1110::PGA pga);
149 {
150 return UnitADS11XX::measure_singleshot(data);
151 }
153
160 virtual bool generalReset() override;
161
162protected:
163 bool start_periodic_measurement(const ads1110::Sampling rate, const ads1110::PGA pga);
164 virtual uint32_t get_interval(const uint8_t rate) override;
165
166private:
167 config_t _cfg{};
168};
169
170} // namespace unit
171} // namespace m5
172#endif
16-bit, self-calibrating, delta-sigma A/D converter
Definition unit_ADS1110.hpp:41
bool measureSingleshot(ads1110::Data &data)
Measurement single shot using current settings.
Definition unit_ADS1110.hpp:148
bool startPeriodicMeasurement()
Start periodic measurement using current settings.
Definition unit_ADS1110.hpp:119
bool startPeriodicMeasurement(const ads1110::Sampling rate, const ads1110::PGA pga)
Start periodic measurement.
Definition unit_ADS1110.hpp:114
bool stopPeriodicMeasurement()
Stop periodic measurement.
Definition unit_ADS1110.hpp:127
config_t config()
Gets the configuration.
Definition unit_ADS1110.hpp:78
bool writeSamplingRate(const ads1110::Sampling rate)
Write the Sampling rate.
Definition unit_ADS1110.cpp:75
bool measureSingleshot(ads1110::Data &data, const ads1110::Sampling rate, const ads1110::PGA pga)
Measurement single shot.
Definition unit_ADS1110.cpp:49
UnitADS1110(const float factor=100.f/610.f, const uint8_t addr=DEFAULT_ADDRESS)
Constructor.
Definition unit_ADS1110.hpp:63
void config(const config_t &cfg)
Set the configuration.
Definition unit_ADS1110.hpp:83
virtual bool generalReset() override
General reset.
Definition unit_ADS1110.cpp:57
virtual bool begin() override
Begin the unit.
Definition unit_ADS1110.cpp:34
bool readSamplingRate(ads1110::Sampling &rate)
Read the Sampling rate.
Definition unit_ADS1110.cpp:65
Base class of ADS1100,ADS1110.
Definition unit_ADS11xx.hpp:68
For ADS1110.
Top level namespace of M5Stack.
Unit-related namespace.
Settings for begin.
Definition unit_ADS1110.hpp:49
float factor
Correction factor (Normalization factor of input due to voltage divider resistors,...
Definition unit_ADS1110.hpp:57
ads1110::PGA pga
PGA if start on begin.
Definition unit_ADS1110.hpp:55
ads1110::Sampling sampling_rate
Data sampling rate if start on begin.
Definition unit_ADS1110.hpp:53
bool start_periodic
Start periodic measurement on begin?
Definition unit_ADS1110.hpp:51
Measurement data group.
Definition unit_ADS11xx.hpp:41
Sampling
Data sampling rate for periodic.
Definition unit_ADS1110.hpp:25
@ Rate15
15 SPS as default
Base class of ADS1100,ADS1110.
PGA
Programmable Gain Amplifier.
Definition unit_ADS11xx.hpp:30