REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
AD5452.h
Go to the documentation of this file.
1// Copyright (c) 2024 anabrid GmbH
2// Contact: https://www.anabrid.com/licensing/
3// SPDX-License-Identifier: MIT OR GPL-2.0-or-later
4
5#pragma once
6
8
9namespace functions {
10
16class AD5452 : public DataFunction {
17public:
18 static const SPISettings DEFAULT_SPI_SETTINGS;
19
20 static constexpr float MIN_FACTOR = -1.1f;
21 static constexpr float MAX_FACTOR = +1.1f;
22
23 static constexpr uint16_t RAW_MIN = 0;
24 static constexpr uint16_t RAW_MAX = 4095;
25
27 explicit AD5452(bus::addr_t address);
28 AD5452(bus::addr_t base_addr, uint8_t func_addr_shift);
29
31 void set_scale(float scale);
32 void set_scale(uint16_t scale_raw);
33
34 static uint16_t float_to_raw(float scale);
35 static float raw_to_float(uint16_t raw);
36};
37
38} // namespace functions
The AD5452 is the 12-Bit Multiplying DAC, used in the C-Block (one AD5452 per lane).
Definition AD5452.h:16
static constexpr uint16_t RAW_MAX
Definition AD5452.h:24
void set_scale(float scale)
Value gets clamped to min and max values.
Definition AD5452.cpp:35
static uint16_t float_to_raw(float scale)
Definition AD5452.cpp:14
static const SPISettings DEFAULT_SPI_SETTINGS
Definition AD5452.h:7
static constexpr float MAX_FACTOR
Definition AD5452.h:21
static float raw_to_float(uint16_t raw)
Definition AD5452.cpp:23
static constexpr uint16_t RAW_MIN
Definition AD5452.h:23
static constexpr float MIN_FACTOR
Definition AD5452.h:20
AD5452(bus::addr_t address)
Definition AD5452.cpp:9
A DataFunction class wraps SPI communication over the digital bus.
Definition functions.h:47
DataFunction(bus::addr_t address, const SPISettings &spiSettings)
Definition functions.cpp:16
const bus::addr_t address
Definition functions.h:23
namespace for internal helpers
Definition icmd.h:6