Implementation of ADE7753 Driver.
More...
#include "ade7753.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>
|
| int | ade7753_init (struct ade7753_dev **device, struct ade7753_init_param init_param) |
| | Initialize the device.
|
| |
| int | ade7753_read (struct ade7753_dev *dev, uint16_t reg_addr, int32_t *reg_data) |
| | Read device register.
|
| |
| int | ade7753_write (struct ade7753_dev *dev, uint16_t reg_addr, uint32_t reg_data) |
| | Write device register.
|
| |
| int | ade7753_update_bits (struct ade7753_dev *dev, uint16_t reg_addr, uint32_t mask, uint32_t reg_data) |
| | Update specific register bits.
|
| |
| int | ade7753_remove (struct ade7753_dev *dev) |
| | Remove the device and release resources.
|
| |
| int | ade7753_sw_reset (struct ade7753_dev *dev) |
| | Reset the device using SW reset.
|
| |
| int | ade7753_hw_reset (struct ade7753_dev *dev) |
| | Reset the device using HW reset.
|
| |
| int | ade7753_version_product (struct ade7753_dev *dev, uint32_t *data_read) |
| | Version product.
|
| |
| int | ade7753_read_reset_iapk_val (struct ade7753_dev *dev, uint32_t *val) |
| | read with reset Ipeak val
|
| |
| int | ade7753_reset_vpk_val (struct ade7753_dev *dev, uint32_t *val) |
| | read with reset Vpeak val
|
| |
| int | ade7753_get_int_status (struct ade7753_dev *dev, uint32_t msk, uint8_t *status) |
| | Get interrupt indicator from STATUS register.
|
| |
| int | ade7753_clear_irq_status (struct ade7753_dev *dev, int32_t *reg_data) |
| | Clear irq status flags.
|
| |
| int | ade7753_enable_irq (struct ade7753_dev *dev, uint32_t msk, uint8_t en) |
| | Enable/Disable interrupt.
|
| |
| int | ade7753_wave_update_rate (struct ade7753_dev *dev, enum ade7753_dtrt_e sel) |
| | Select waveform register update rate.
|
| |
| int | ade7753_wave_sample_data_source (struct ade7753_dev *dev, enum ade7753_wavsel_e sel) |
| | Select source of sampled data for wave register.
|
| |
| int | ade7753_energy_vals (struct ade7753_dev *dev, struct ade7753_energy_values *data) |
| | Read energy values.
|
| |
| int | ade7753_rms_vals (struct ade7753_dev *dev, struct ade7753_rms_values *data) |
| | Read rms values.
|
| |
| int | ade7753_period_val (struct ade7753_dev *dev, struct ade7753_period_value *data) |
| | Read period value.
|
| |
Implementation of ADE7753 Driver.
- Author
- REtz (radu..nosp@m.etz@.nosp@m.analo.nosp@m.g.co.nosp@m.m)
Copyright 2025(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
◆ ade7753_clear_irq_status()
| int ade7753_clear_irq_status |
( |
struct ade7753_dev * | dev, |
|
|
int32_t * | reg_data ) |
Clear irq status flags.
- Parameters
-
| dev | - The device structure. |
| reg_data | - value of the status register |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_enable_irq()
| int ade7753_enable_irq |
( |
struct ade7753_dev * | dev, |
|
|
uint32_t | msk, |
|
|
uint8_t | en ) |
Enable/Disable interrupt.
- Parameters
-
| dev | - The device structure. |
| msk | - Interrupt mask. |
| en | -Enable/Disable |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_energy_vals()
Read energy values.
- Parameters
-
| dev | - The device structure. |
| data | - Structure to store energy values |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_get_int_status()
| int ade7753_get_int_status |
( |
struct ade7753_dev * | dev, |
|
|
uint32_t | msk, |
|
|
uint8_t * | status ) |
Get interrupt indicator from STATUS register.
- Parameters
-
| dev | - The device structure. |
| msk | - Interrupt mask. |
| status | - Status indicator. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_hw_reset()
Reset the device using HW reset.
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_init()
Initialize the device.
- Parameters
-
| device | - The device structure. |
| init_param | - The structure that contains the device initial parameters. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_period_val()
Read period value.
- Parameters
-
| dev | - The device structure. |
| data | - Structure to store the period val |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_read()
| int ade7753_read |
( |
struct ade7753_dev * | dev, |
|
|
uint16_t | reg_addr, |
|
|
int32_t * | reg_data ) |
Read device register.
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| reg_data | - The data read from 32bit register. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_read_reset_iapk_val()
| int ade7753_read_reset_iapk_val |
( |
struct ade7753_dev * | dev, |
|
|
uint32_t * | val ) |
read with reset Ipeak val
- Parameters
-
| dev | - The device structure. |
| val | - Iapeak val |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_remove()
Remove the device and release resources.
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_reset_vpk_val()
| int ade7753_reset_vpk_val |
( |
struct ade7753_dev * | dev, |
|
|
uint32_t * | val ) |
read with reset Vpeak val
- Parameters
-
| dev | - The device structure. |
| val | - Vpeak val |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_rms_vals()
Read rms values.
- Parameters
-
| dev | - The device structure. |
| data | - Structure to store rms values |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_sw_reset()
Reset the device using SW reset.
- Parameters
-
| dev | - The device structure. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_update_bits()
| int ade7753_update_bits |
( |
struct ade7753_dev * | dev, |
|
|
uint16_t | reg_addr, |
|
|
uint32_t | mask, |
|
|
uint32_t | reg_data ) |
Update specific register bits.
- Parameters
-
| dev | - The device structure. |
| reg_addr | - The register address. |
| mask | - Specific bits mask. |
| reg_data | - The data to be written. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_version_product()
| int ade7753_version_product |
( |
struct ade7753_dev * | dev, |
|
|
uint32_t * | data_read ) |
Version product.
- Parameters
-
| dev | - The device structure. |
| data_read | - The version product read value |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_wave_sample_data_source()
Select source of sampled data for wave register.
- Parameters
-
| dev | - The device structure. |
| sel | - Update rate |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_wave_update_rate()
Select waveform register update rate.
- Parameters
-
| dev | - The device structure. |
| sel | - Update rate |
- Returns
- 0 in case of success, negative error code otherwise.
◆ ade7753_write()
| int ade7753_write |
( |
struct ade7753_dev * | dev, |
|
|
uint16_t | reg_addr, |
|
|
uint32_t | reg_data ) |
Write device register.
- Parameters
-
| dev- | The device structure. |
| reg_addr | - The register address. |
| reg_data | - The data to be written. |
- Returns
- 0 in case of success, negative error code otherwise.