M5Unit-ANADIG 0.1.0 git rev:3fbd370
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
60 explicit UnitADS1110(const float factor = 100.f / 610.f, const uint8_t addr = DEFAULT_ADDRESS) : UnitADS11XX(addr)
61 {
62 _vdd = 2048.f; // Fixed (internal VDD)
63 _cfg.factor = _factor = factor;
64 }
65 virtual ~UnitADS1110()
66 {
67 }
68
69 virtual bool begin() override;
70
73
75 {
76 return _cfg;
77 }
79 inline void config(const config_t& cfg)
80 {
81 _cfg = cfg;
82 }
84
87
99 bool writeSamplingRate(const ads1110::Sampling rate);
101
104
110 inline bool startPeriodicMeasurement(const ads1110::Sampling rate, const ads1110::PGA pga)
111 {
112 return start_periodic_measurement(rate, pga);
113 }
116 {
117 return UnitADS11XX::startPeriodicMeasurement();
118 }
124 {
125 return UnitADS11XX::stopPeriodicMeasurement();
126 }
128
131
142 bool measureSingleshot(ads1110::Data& data, const ads1110::Sampling rate, const ads1110::PGA pga);
145 {
146 return UnitADS11XX::measure_singleshot(data);
147 }
149
156 virtual bool generalReset() override;
157
158protected:
159 bool start_periodic_measurement(const ads1110::Sampling rate, const ads1110::PGA pga);
160 virtual uint32_t get_interval(const uint8_t rate) override;
161
162private:
163 config_t _cfg{};
164};
165
166} // namespace unit
167} // namespace m5
168#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:144
bool startPeriodicMeasurement()
Start periodic measurement using current settings.
Definition unit_ADS1110.hpp:115
bool startPeriodicMeasurement(const ads1110::Sampling rate, const ads1110::PGA pga)
Start periodic measurement.
Definition unit_ADS1110.hpp:110
bool stopPeriodicMeasurement()
Stop periodic measurement.
Definition unit_ADS1110.hpp:123
config_t config()
Gets the configration.
Definition unit_ADS1110.hpp:74
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
void config(const config_t &cfg)
Set the configration.
Definition unit_ADS1110.hpp:79
virtual bool generalReset() override
General reset.
Definition unit_ADS1110.cpp:57
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