M5Unit-ANADIG 0.1.0 git rev:3fbd370
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::Rate8};
54 ads1100::Sampling sampling_rate{ads1100::Sampling::Rate32};
56 ads1100::PGA pga{ads1100::PGA::Gain1};
58 float vdd{3300.f};
60 float factor{0.25f};
61 };
62
63 explicit UnitADS1100(const float vdd = 3.3f, const float factor = 0.25f, const uint8_t addr = DEFAULT_ADDRESS)
64 : UnitADS11XX(addr)
65 {
66 _vdd = vdd;
67 _cfg.factor = _factor = factor;
68 }
69 virtual ~UnitADS1100()
70 {
71 }
72
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 ads1100::Sampling rate);
105
108
114 inline bool startPeriodicMeasurement(const ads1100::Sampling rate, const ads1100::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(ads1100::Data& data, const ads1100::Sampling rate, const ads1100::PGA pga);
149 {
150 return UnitADS11XX::measure_singleshot(data);
151 }
153
160 virtual bool generalReset() override;
161
162protected:
163 bool start_periodic_measurement(const ads1100::Sampling rate, const ads1100::PGA pga);
164 virtual bool read_if_ready_in_periodic(uint8_t v[2]) override;
165 virtual uint32_t get_interval(const uint8_t rate) override;
166
167private:
168 config_t _cfg{};
169};
170
171} // namespace unit
172} // namespace m5
173#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:114
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:148
void config(const config_t &cfg)
Set the configration.
Definition unit_ADS1100.hpp:83
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:127
virtual bool generalReset() override
General reset.
Definition unit_ADS1100.cpp:58
bool startPeriodicMeasurement()
Start periodic measurement using current settings.
Definition unit_ADS1100.hpp:119
config_t config()
Gets the configration.
Definition unit_ADS1100.hpp:78
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:56
float vdd
VDD (mV) Unit/HatADC is 3.3V.
Definition unit_ADS1100.hpp:58
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:60
ads1100::Sampling sampling_rate
Data sampling rate if start on begin.
Definition unit_ADS1100.hpp:54
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