REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
redac.h
Go to the documentation of this file.
1// Copyright (c) 2024 anabrid GmbH
2// Contact: https://www.anabrid.com/licensing/
3//
4// SPDX-License-Identifier: MIT OR GPL-2.0-or-later
5
6#pragma once
7
8#include "back_panel.h"
9#include "block/blocks.h"
11#include "carrier/carrier.h"
12#include "tblock.h"
13#include "utils/singleton.h"
14
15namespace platform {
16
18
20public:
22
23 bool write_adc_bus_mux(const std::array<int8_t, 8> &channels) override;
24
25 void reset_adc_bus_mux() override;
26
27private:
28 void set_standby(bool enabled) override;
29
30public:
31 // Module addresses
32 static constexpr uint8_t CARRIER_MADDR = 5;
33 // Function addresses
34 static constexpr uint8_t METADATA_FADDR = bus::METADATA_FUNC_IDX;
35 static constexpr uint8_t TEMPERATURE_FADDR = 1;
36 static constexpr uint8_t ADC_PRG_FADDR = 0;
37 static constexpr uint8_t ADC_RESET_FADDR = 1;
38 static constexpr uint8_t ADC_STROBE_FADDR = 2;
39 static constexpr uint8_t STANDBY_SET_FADDR = 3;
40 static constexpr uint8_t STANDBY_UNSET_FADDR = 2;
41
42protected:
43 // Functions to configure ADC signal switching matrices
44 static const SPISettings F_ADC_SWITCHER_PRG_SPI_SETTINGS;
47
51
55
59
60};
61
62} // namespace platform
DataFunction to transfer 32bit of data to the I-Block matrix command registry.
Definition icmd.h:19
A trigger function exploits the fact that setting an address on the bus triggers an action (TODO: Is ...
Definition functions.h:33
static constexpr uint8_t ADC_STROBE_FADDR
Definition redac.h:38
const functions::TriggerFunction f_adc2_switcher_reset
Definition redac.h:57
static constexpr uint8_t TEMPERATURE_FADDR
Definition redac.h:35
const functions::TriggerFunction f_adc2_switcher_sync
Definition redac.h:58
const functions::ICommandRegisterFunction f_adc2_switcher_prg
Definition redac.h:56
const functions::TriggerFunction f_adc1_switcher_reset
Definition redac.h:53
const functions::TriggerFunction f_adc0_switcher_reset
Definition redac.h:49
static constexpr uint8_t METADATA_FADDR
Definition redac.h:34
const functions::TriggerFunction f_unset_standby
Definition redac.h:46
const functions::TriggerFunction f_adc0_switcher_sync
Definition redac.h:50
static const SPISettings F_ADC_SWITCHER_PRG_SPI_SETTINGS
Definition redac.h:10
static constexpr uint8_t CARRIER_MADDR
Definition redac.h:32
const functions::ICommandRegisterFunction f_adc0_switcher_prg
Definition redac.h:48
static constexpr uint8_t ADC_RESET_FADDR
Definition redac.h:37
static constexpr uint8_t STANDBY_UNSET_FADDR
Definition redac.h:40
static constexpr uint8_t STANDBY_SET_FADDR
Definition redac.h:39
bool write_adc_bus_mux(const std::array< int8_t, 8 > &channels) override
Definition redac.cpp:32
const functions::TriggerFunction f_adc1_switcher_sync
Definition redac.h:54
const functions::TriggerFunction f_set_standby
Definition redac.h:45
const functions::ICommandRegisterFunction f_adc1_switcher_prg
Definition redac.h:52
static constexpr uint8_t ADC_PRG_FADDR
Definition redac.h:36
void reset_adc_bus_mux() override
Definition redac.cpp:77
Definition leds.h:7