![]() |
no-OS
|
Implementation of ADE7758 Driver. More...
#include "ade7758.h"#include <stdbool.h>#include <stdint.h>#include <string.h>#include "no_os_util.h"#include "no_os_spi.h"#include "no_os_gpio.h"#include "no_os_irq.h"#include "no_os_delay.h"#include "no_os_units.h"#include "no_os_alloc.h"#include "no_os_crc16.h"#include "no_os_print_log.h"#include <stdlib.h>#include <errno.h>#include <math.h>Functions | |
| int | ade7758_init (struct ade7758_dev **device, struct ade7758_init_param init_param) |
| Initialize the device. | |
| int | ade7758_setup (struct ade7758_dev *dev) |
| Setup the ADE7758 device. | |
| int | ade7758_read (struct ade7758_dev *dev, uint16_t reg_addr, int32_t *reg_data) |
| Read device register. | |
| int | ade7758_write (struct ade7758_dev *dev, uint16_t reg_addr, uint32_t reg_data) |
| Write device register. | |
| int | ade7758_update_bits (struct ade7758_dev *dev, uint16_t reg_addr, uint32_t mask, uint32_t reg_data) |
| Update specific register bits. | |
| int | ade7758_remove (struct ade7758_dev *dev) |
| Remove the device and release resources. | |
| int | ade7758_sw_reset (struct ade7758_dev *dev) |
| Reset the device using SW reset. | |
| int | ade7758_version_product (struct ade7758_dev *dev, uint32_t *data_read) |
| Version product. | |
| int | ade7758_read_ipk_val (struct ade7758_dev *dev, uint32_t *val) |
| read Ipeak val | |
| int | ade7758_vpk_val (struct ade7758_dev *dev, uint32_t *val) |
| read Vpeak val | |
| int | ade7758_get_int_status (struct ade7758_dev *dev, uint32_t msk, uint8_t *status) |
| Get interrupt indicator from STATUS register. | |
| int | ade7758_clear_irq_status (struct ade7758_dev *dev, int32_t *reg_data) |
| Clear irq status flags. | |
| int | ade7758_enable_irq (struct ade7758_dev *dev, uint32_t msk, uint8_t en) |
| Enable/Disable interrupt. | |
| int | ade7758_wave_update_rate (struct ade7758_dev *dev, enum ade7758_data_rate sel) |
| Select waveform register update rate. | |
| int | ade7758_wave_sample_data_source (struct ade7758_dev *dev, enum ade7758_wavesel sel) |
| Select source of sampled data for wave register. | |
| int | ade7758_wave_phase_sel (struct ade7758_dev *dev, enum ade7758_phsel sel) |
| Select the phase of sampled data for wave register. | |
| int | ade7758_consel (struct ade7758_dev *dev, enum ade7758_consel sel) |
| Select the input to the energy accumulation registers. | |
| int | ade7758_freq_source (struct ade7758_dev *dev, enum ade7758_phsel sel) |
| Select the source of the measurement of the voltage line frequency. | |
| int | ade7758_adcs_mode (struct ade7758_dev *dev, enum ade7758_dismod sel) |
| Operation mode of the ADCs. | |
| int | ade7758_energy_vals_phase_a (struct ade7758_dev *dev, struct ade7758_energy_values *data) |
| Read energy values phase A. | |
| int | ade7758_energy_vals_phase_b (struct ade7758_dev *dev, struct ade7758_energy_values *data) |
| Read energy values phase B. | |
| int | ade7758_energy_vals_phase_c (struct ade7758_dev *dev, struct ade7758_energy_values *data) |
| Read energy values phase C. | |
| int | ade7758_rms_vals_phase_a (struct ade7758_dev *dev, struct ade7758_rms_values *data) |
| Read rms values phase A. | |
| int | ade7758_rms_vals_phase_b (struct ade7758_dev *dev, struct ade7758_rms_values *data) |
| Read rms values phase B. | |
| int | ade7758_rms_vals_phase_c (struct ade7758_dev *dev, struct ade7758_rms_values *data) |
| Read rms values phase C. | |
| int | ade7758_frequency_period_val (struct ade7758_dev *dev, struct ade7758_freq_per_value *data) |
| Read frequency/period value. | |
| int | ade7758_temperature_val (struct ade7758_dev *dev, struct ade7758_temp_value *data) |
| Read temperature value. | |
Implementation of ADE7758 Driver.
Copyright 2025(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| int ade7758_adcs_mode | ( | struct ade7758_dev * | dev, |
| enum ade7758_dismod | sel ) |
Operation mode of the ADCs.
| dev | - The device structure. |
| sel | - mode of the ADCs |
| int ade7758_clear_irq_status | ( | struct ade7758_dev * | dev, |
| int32_t * | reg_data ) |
Clear irq status flags.
| dev | - The device structure. |
| reg_data | - value of the status register |
| int ade7758_consel | ( | struct ade7758_dev * | dev, |
| enum ade7758_consel | sel ) |
Select the input to the energy accumulation registers.
| dev | - The device structure. |
| sel | - consel value (see datasheet) |
| int ade7758_enable_irq | ( | struct ade7758_dev * | dev, |
| uint32_t | msk, | ||
| uint8_t | en ) |
Enable/Disable interrupt.
| dev | - The device structure. |
| msk | - Interrupt mask. |
| en | -Enable/Disable |
| int ade7758_energy_vals_phase_a | ( | struct ade7758_dev * | dev, |
| struct ade7758_energy_values * | data ) |
Read energy values phase A.
| dev | - The device structure. |
| data | - Structure to store energy values |
| int ade7758_energy_vals_phase_b | ( | struct ade7758_dev * | dev, |
| struct ade7758_energy_values * | data ) |
Read energy values phase B.
| dev | - The device structure. |
| data | - Structure to store energy values |
| int ade7758_energy_vals_phase_c | ( | struct ade7758_dev * | dev, |
| struct ade7758_energy_values * | data ) |
Read energy values phase C.
| dev | - The device structure. |
| data | - Structure to store energy values |
| int ade7758_freq_source | ( | struct ade7758_dev * | dev, |
| enum ade7758_phsel | sel ) |
Select the source of the measurement of the voltage line frequency.
| dev | - The device structure. |
| sel | - frequency measurement source |
| int ade7758_frequency_period_val | ( | struct ade7758_dev * | dev, |
| struct ade7758_freq_per_value * | data ) |
Read frequency/period value.
| dev | - The device structure. |
| data | - Structure to store the period val |
| int ade7758_get_int_status | ( | struct ade7758_dev * | dev, |
| uint32_t | msk, | ||
| uint8_t * | status ) |
Get interrupt indicator from STATUS register.
| dev | - The device structure. |
| msk | - Interrupt mask. |
| status | - Status indicator. |
| int ade7758_init | ( | struct ade7758_dev ** | device, |
| struct ade7758_init_param | init_param ) |
Initialize the device.
| device | - The device structure. |
| init_param | - The structure that contains the device initial parameters. |
| int ade7758_read | ( | struct ade7758_dev * | dev, |
| uint16_t | reg_addr, | ||
| int32_t * | reg_data ) |
Read device register.
| dev | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - The data read from 32bit register. |
| int ade7758_read_ipk_val | ( | struct ade7758_dev * | dev, |
| uint32_t * | val ) |
read Ipeak val
| dev | - The device structure. |
| val | - Ipeak val |
| int ade7758_remove | ( | struct ade7758_dev * | dev | ) |
Remove the device and release resources.
| dev | - The device structure. |
| int ade7758_rms_vals_phase_a | ( | struct ade7758_dev * | dev, |
| struct ade7758_rms_values * | data ) |
Read rms values phase A.
| dev | - The device structure. |
| data | - Structure to store rms values |
| int ade7758_rms_vals_phase_b | ( | struct ade7758_dev * | dev, |
| struct ade7758_rms_values * | data ) |
Read rms values phase B.
| dev | - The device structure. |
| data | - Structure to store rms values |
| int ade7758_rms_vals_phase_c | ( | struct ade7758_dev * | dev, |
| struct ade7758_rms_values * | data ) |
Read rms values phase C.
| dev | - The device structure. |
| data | - Structure to store rms values |
| int ade7758_setup | ( | struct ade7758_dev * | dev | ) |
Setup the ADE7758 device.
| dev | - The device structure. |
| int ade7758_sw_reset | ( | struct ade7758_dev * | dev | ) |
Reset the device using SW reset.
| dev | - The device structure. |
| int ade7758_temperature_val | ( | struct ade7758_dev * | dev, |
| struct ade7758_temp_value * | data ) |
Read temperature value.
| dev | - The device structure. |
| data | - Structure to store the temperature val |
| int ade7758_update_bits | ( | struct ade7758_dev * | dev, |
| uint16_t | reg_addr, | ||
| uint32_t | mask, | ||
| uint32_t | reg_data ) |
Update specific register bits.
| dev | - The device structure. |
| reg_addr | - The register address. |
| mask | - Specific bits mask. |
| reg_data | - The data to be written. |
| int ade7758_version_product | ( | struct ade7758_dev * | dev, |
| uint32_t * | data_read ) |
Version product.
| dev | - The device structure. |
| data_read | - The version product read value |
| int ade7758_vpk_val | ( | struct ade7758_dev * | dev, |
| uint32_t * | val ) |
read Vpeak val
| dev | - The device structure. |
| val | - Vpeak val |
| int ade7758_wave_phase_sel | ( | struct ade7758_dev * | dev, |
| enum ade7758_phsel | sel ) |
Select the phase of sampled data for wave register.
| dev | - The device structure. |
| sel | - phase |
| int ade7758_wave_sample_data_source | ( | struct ade7758_dev * | dev, |
| enum ade7758_wavesel | sel ) |
Select source of sampled data for wave register.
| dev | - The device structure. |
| sel | - Update rate |
| int ade7758_wave_update_rate | ( | struct ade7758_dev * | dev, |
| enum ade7758_data_rate | sel ) |
Select waveform register update rate.
| dev | - The device structure. |
| sel | - Update rate |
| int ade7758_write | ( | struct ade7758_dev * | dev, |
| uint16_t | reg_addr, | ||
| uint32_t | reg_data ) |
Write device register.
| dev- | The device structure. |
| reg_addr | - The register address. |
| reg_data | - The data to be written. |