no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
common_data.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __COMMON_DATA_H__
34#define __COMMON_DATA_H__
35
36#include "ade7913.h"
37#include "no_os_uart.h"
38#include "no_os_pwm.h"
39#include "no_os_delay.h"
40#include "no_os_gpio.h"
41#include "no_os_spi.h"
42#include "no_os_print_log.h"
43#include "no_os_units.h"
44#include "no_os_util.h"
45#include "no_os_error.h"
46#include "maxim_uart.h"
47#include "maxim_gpio.h"
48#include "maxim_uart_stdio.h"
49#include "maxim_pwm.h"
50#include "maxim_spi.h"
51#include "maxim_irq.h"
52
53// UART init params
54extern struct no_os_uart_init_param uart_ip;
55// GPIO LED init params
57// SPI init params
61//GPIO RDY init params
63
64/* Initial values for the rms filters */
65#define INITIAL 1024
66#define SAMPLES 1024
67
68/* Scale for voltage divider */
69#define V_MULT (1000ul)
70#define V_DIVIDER (1001ul)
71
72struct rms_adc_values {
73
74 /* I rms value */
75 int32_t *i_rms;
76 /* V1 rms value */
77 int32_t *v1_rms;
78 /* V2 rms value */
79 int32_t *v2_rms;
80 /* I ADC value */
81 int32_t *i_rms_adc;
82 /* V1 ADC value */
83 int32_t *v1_rms_adc;
84 /* V2 ADC value */
85 int32_t *v2_rms_adc;
86};
87
88/* Toggle user LED */
89int interface_toggle_led(struct no_os_gpio_desc *gpio_led_desc);
90
91/* Saves the current and voltage values of device 1 in rms_adc structure */
92int rms_adc_values_read(struct ade7913_dev *dev, struct rms_adc_values *rms);
93
94/* Saves the current and voltage values of device 2 in rms_adc structure */
95int rms_adc_values_read_2(struct ade7913_dev *dev, struct rms_adc_values *rms);
96
97/* Saves the current and voltage values of device 3 in rms_adc structure */
98int rms_adc_values_read_3(struct ade7913_dev *dev, struct rms_adc_values *rms);
99
100/* Compute v1 rms value for device 1 */
101int64_t rms_filter_v1(int32_t sample);
102
103/* Compute v2 rms value for device 1 */
104int64_t rms_filter_v2(int32_t sample);
105
106/* Compute i rms value for device 1 */
107int64_t rms_filter_i(int32_t sample);
108
109/* Compute v1_2 rms value for device 2 */
110int64_t rms_filter_v1_2(int32_t sample);
111
112/* Compute v2_2 rms value for device 2 */
113int64_t rms_filter_v2_2(int32_t sample);
114
115/* Compute i_2 rms value for device 2 */
116int64_t rms_filter_i_2(int32_t sample);
117
118/* Compute v1_3 rms value for device 3 */
119int64_t rms_filter_v1_3(int32_t sample);
120
121/* Compute v2_3 rms value for device 3 */
122int64_t rms_filter_v2_3(int32_t sample);
123
124/* Compute i_3 rms value for device 3 */
125int64_t rms_filter_i_3(int32_t sample);
126
127/* Scale V value */
128int64_t supply_scale_v(int32_t val);
129
130#endif /* __COMMON_DATA_H__ */
Header file of ADE7913 Driver.
struct no_os_uart_init_param uart_ip
Definition common_data.c:52
struct no_os_gpio_init_param gpio_led1_ip
Definition platform.c:65
int interface_toggle_led(struct no_os_gpio_desc *gpio_led_desc)
Toggle LED.
Definition interface.c:95
struct no_os_spi_init_param ade7913_spi_ip2
Definition platform.c:105
int64_t rms_filter_v2_3(int32_t sample)
Compute v2_3 rms value for device 3.
Definition common_data.c:282
int rms_adc_values_read_3(struct ade7913_dev *dev, struct rms_adc_values *rms)
Saves the current and voltage values of device 3 in rms_adc structure.
Definition common_data.c:132
int64_t rms_filter_i_3(int32_t sample)
Compute i_3 rms value for device 3.
Definition common_data.c:299
int64_t rms_filter_v1_3(int32_t sample)
Compute v1_3 rms value for device 3.
Definition common_data.c:265
int64_t rms_filter_i_2(int32_t sample)
Compute i_2 rms value for device 2.
Definition common_data.c:248
struct no_os_spi_init_param ade7913_spi_ip0
Definition platform.c:83
struct no_os_spi_init_param ade7913_spi_ip1
Definition platform.c:94
struct no_os_gpio_init_param ade7913_gpio_rdy_ip
Definition platform.c:74
int rms_adc_values_read_2(struct ade7913_dev *dev, struct rms_adc_values *rms)
Saves the current and voltage values of device 2 in rms_adc structure.
Definition common_data.c:100
int64_t supply_scale_v(int32_t val)
Scale V value.
Definition common_data.c:316
int64_t rms_filter_v1_2(int32_t sample)
Compute v1_2 rms value for device 2.
Definition common_data.c:214
int64_t rms_filter_i(int32_t sample)
Compute i rms value.
Definition supply.c:318
int64_t rms_filter_v2(int32_t sample)
Compute v2 rms value.
Definition supply.c:301
int64_t rms_filter_v2_2(int32_t sample)
Compute v2_2 rms value for device 2.
Definition common_data.c:231
int rms_adc_values_read(struct ade7913_dev *dev, struct rms_adc_values *rms)
Saves the current and voltage values of device 1 in rms_adc structure.
Definition common_data.c:68
int64_t rms_filter_v1(int32_t sample)
Compute v1 rms value.
Definition supply.c:284
Header file of Delay functions.
Error codes definition.
Header file of GPIO Interface.
Print messages helpers.
Header file of PWM Interface.
Header file of SPI Interface.
Header file of UART interface.
Header file of Units.
Header file of utility functions.
ADE7913 Device structure.
Definition ade7913.h:153
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Structure holding the parameters for UART initialization.
Definition no_os_uart.h:98
Definition state_machine.h:211
int32_t v2_rms_adc
Definition state_machine.h:224
int32_t v1_rms
Definition state_machine.h:216
int32_t v1_rms_adc
Definition state_machine.h:222
int32_t i_rms_adc
Definition state_machine.h:220
int32_t v2_rms
Definition state_machine.h:218
int32_t i_rms
Definition state_machine.h:214