M5Unit-ANADIG 0.3.0 git rev:6ce23e4
Loading...
Searching...
No Matches
unit_ADS1100.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
10#ifndef M5_UNIT_ANADIG_UNIT_ADS1100_HPP
11#define M5_UNIT_ANADIG_UNIT_ADS1100_HPP
12#include "unit_ADS11xx.hpp"
13
14namespace m5 {
15namespace unit {
20namespace ads1100 {
25enum class Sampling : uint8_t {
26 Rate128,
27 Rate32,
28 Rate16,
29 Rate8
30};
31
32using PGA = m5::unit::ads11xx::PGA;
33using Data = m5::unit::ads11xx::Data;
34
35} // namespace ads1100
36
41class UnitADS1100 : public UnitADS11XX {
42 M5_UNIT_COMPONENT_HPP_BUILDER(UnitADS1100, 0x48);
43
44public:
49 struct config_t {
51 bool start_periodic{true};
53 ads1100::Sampling sampling_rate{ads1100::Sampling::Rate32};
55 ads1100::PGA pga{ads1100::PGA::Gain1};
57 float vdd{3300.f};
59 float factor{0.25f};
60 };
61
66 explicit UnitADS1100(const float vdd = 3300.f, const float factor = 0.25f, const uint8_t addr = DEFAULT_ADDRESS)
67 : UnitADS11XX(addr)
68 {
69 _cfg.vdd = vdd;
70 _cfg.factor = _factor = factor;
71 }
72 virtual ~UnitADS1100()
73 {
74 }
75
77 virtual bool begin() override;
78
81
83 {
84 return _cfg;
85 }
87 inline void config(const config_t& cfg)
88 {
89 _cfg = cfg;
90 }
92
95
107 bool writeSamplingRate(const ads1100::Sampling rate);
109
112
118 inline bool startPeriodicMeasurement(const ads1100::Sampling rate, const ads1100::PGA pga)
119 {
120 return start_periodic_measurement(rate, pga);
121 }
124 {
125 return UnitADS11XX::startPeriodicMeasurement();
126 }
132 {
133 return UnitADS11XX::stopPeriodicMeasurement();
134 }
136
139
150 bool measureSingleshot(ads1100::Data& data, const ads1100::Sampling rate, const ads1100::PGA pga);
153 {
154 return UnitADS11XX::measure_singleshot(data);
155 }
157
164 virtual bool generalReset() override;
165
166protected:
167 bool start_periodic_measurement(const ads1100::Sampling rate, const ads1100::PGA pga);
168 virtual bool read_if_ready_in_periodic(uint8_t v[2]) override;
169 virtual uint32_t get_interval(const uint8_t rate) override;
170
171private:
172 config_t _cfg{};
173};
174
175} // namespace unit
176} // namespace m5
177#endif
16-bit, self-calibrating, delta-sigma A/D converter
Definition unit_ADS1100.hpp:41
bool startPeriodicMeasurement(const ads1100::Sampling rate, const ads1100::PGA pga)
Start periodic measurement.
Definition unit_ADS1100.hpp:118
bool writeSamplingRate(const ads1100::Sampling rate)
Write the Sampling rate.
Definition unit_ADS1100.cpp:76
bool measureSingleshot(ads1100::Data &data)
Measurement single shot using current settings.
Definition unit_ADS1100.hpp:152
void config(const config_t &cfg)
Set the configuration.
Definition unit_ADS1100.hpp:87
UnitADS1100(const float vdd=3300.f, const float factor=0.25f, const uint8_t addr=DEFAULT_ADDRESS)
Constructor.
Definition unit_ADS1100.hpp:66
bool readSamplingRate(ads1100::Sampling &rate)
Read the Sampling rate.
Definition unit_ADS1100.cpp:66
bool measureSingleshot(ads1100::Data &data, const ads1100::Sampling rate, const ads1100::PGA pga)
Measurement single shot.
Definition unit_ADS1100.cpp:50
bool stopPeriodicMeasurement()
Stop periodic measurement.
Definition unit_ADS1100.hpp:131
virtual bool generalReset() override
General reset.
Definition unit_ADS1100.cpp:58
bool startPeriodicMeasurement()
Start periodic measurement using current settings.
Definition unit_ADS1100.hpp:123
config_t config()
Gets the configuration.
Definition unit_ADS1100.hpp:82
virtual bool begin() override
Begin the unit.
Definition unit_ADS1100.cpp:34
Base class of ADS1100,ADS1110.
Definition unit_ADS11xx.hpp:68
For ADS1100.
Top level namespace of M5Stack.
Unit-related namespace.
Settings for begin.
Definition unit_ADS1100.hpp:49
ads1100::PGA pga
PGA if start on begin.
Definition unit_ADS1100.hpp:55
float vdd
VDD (mV) Unit/HatADC is 3.3V.
Definition unit_ADS1100.hpp:57
bool start_periodic
Start periodic measurement on begin?
Definition unit_ADS1100.hpp:51
float factor
Correction factor (Normalization factor of input due to voltage divider resistors,...
Definition unit_ADS1100.hpp:59
ads1100::Sampling sampling_rate
Data sampling rate if start on begin.
Definition unit_ADS1100.hpp:53
Measurement data group.
Definition unit_ADS11xx.hpp:41
Sampling
Data sampling rate for periodic.
Definition unit_ADS1100.hpp:25
@ Rate8
8 SPS (as default)
Base class of ADS1100,ADS1110.
PGA
Programmable Gain Amplifier.
Definition unit_ADS11xx.hpp:30