8static const char *
const TAG =
"dac7678";
10static const uint8_t DAC7678_REG_INPUT_N = 0x00;
11static const uint8_t DAC7678_REG_SELECT_UPDATE_N = 0x10;
12static const uint8_t DAC7678_REG_WRITE_N_UPDATE_ALL = 0x20;
13static const uint8_t DAC7678_REG_WRITE_N_UPDATE_N = 0x30;
14static const uint8_t DAC7678_REG_POWER = 0x40;
15static const uint8_t DAC7678_REG_CLEAR_CODE = 0x50;
16static const uint8_t DAC7678_REG_LDAC = 0x60;
17static const uint8_t DAC7678_REG_SOFTWARE_RESET = 0x70;
18static const uint8_t DAC7678_REG_INTERNAL_REF_0 = 0x80;
19static const uint8_t DAC7678_REG_INTERNAL_REF_1 = 0x90;
22 ESP_LOGV(TAG,
"Resetting device");
25 if (!this->
write_byte_16(DAC7678_REG_SOFTWARE_RESET, 0x0000)) {
26 ESP_LOGE(TAG,
"Reset failed");
30 ESP_LOGV(TAG,
"Reset succeeded");
37 if (!this->
write_byte_16(DAC7678_REG_INTERNAL_REF_0, 1 << 4)) {
38 ESP_LOGE(TAG,
"Set internal reference failed");
42 ESP_LOGV(TAG,
"Internal reference enabled");
49 ESP_LOGE(TAG,
"Setting up DAC7678 failed!");
51 ESP_LOGCONFIG(TAG,
"DAC7678 initialised");
60 ESP_LOGV(TAG,
"Registered channel: %01u", channel->
channel_);
67 ESP_LOGV(TAG,
"Channel %01u: input_reg=%04u ", channel, value);
69 if (!this->
write_byte_16(DAC7678_REG_WRITE_N_UPDATE_N | channel, value << 4)) {
80 auto input =
static_cast<uint16_t
>(input_rounded);