no-OS
common_data.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * @file common_data.h
3  * @brief Common data header file
4  * @author Robert Budai (robert.budai@analog.com)
5  ********************************************************************************
6  * Copyright (c) 2024 Analog Devices, Inc.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17  *
18  * 3. Neither the name of Analog Devices, Inc. nor the names of its
19  * contributors may be used to endorse or promote products derived from this
20  * software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR
23  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
25  * EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
28  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  *******************************************************************************/
33 
34 #ifndef __COMMON_DATA_H__
35 #define __COMMON_DATA_H__
36 
37 /******************************************************************************/
38 /***************************** Include Files **********************************/
39 /******************************************************************************/
40 
41 #include "adi_pqlib.h"
42 #include "iio.h"
43 #include "iio_app.h"
44 #include "iio_pqm.h"
45 #include "iio_types.h"
46 #include "no_os_i2c.h"
47 #include "no_os_irq.h"
48 #include "no_os_spi.h"
49 #include "no_os_timer.h"
50 #include "no_os_uart.h"
51 #include "parameters.h"
52 #include "pqlib_example.h"
53 
54 /******************************************************************************/
55 /********************** Macros and Constants Definitions **********************/
56 /******************************************************************************/
57 
58 #define FW_VERSION 2.1
59 
60 #define IIO_BUFF_TYPE int16_t
61 #define SAMPLES_PER_CHANNEL_PLATFORM 256
62 #define MAX_SIZE_BASE_ADDR (SAMPLES_PER_CHANNEL_PLATFORM * TOTAL_PQM_CHANNELS)
63 #define MAX_SIZE_BASE_ADDR_WITH_SIZE \
64  (MAX_SIZE_BASE_ADDR * sizeof(IIO_BUFF_TYPE))
65 
66 #define TOTAL_PQM_CHANNELS 7
67 #define VOLTAGE_CH_NUMBER 3
68 #define MAX_CH_ATTRS 12
69 #define PQM_DEVICE_ATTR_NUMBER 35
70 #define WAVEFORM_BUFFER_LENGTH (256 * 7)
71 
74 extern struct pqm_init_para pqm_ip;
75 extern struct no_os_spi_init_param spi_egy_ip;
76 extern struct no_os_i2c_init_param i2c_ip;
78 extern struct no_os_timer_init_param timer_ip;
83 
84 static const char *const pqm_v_consel_available[] = {
85  [VCONSEL_4W_WYE] = "4W_WYE",
86  [VCONSEL_3W_DELTA_VB_VA_NEGVC] = "3W_DELTA_VA_VB_NEGVC",
87  [VCONSEL_4W_WYE_VB_NEGVA_NEGVC] = "4W_WYE_VB_NEGVA_NEGVC",
88  [VCONSEL_4W_DELTA_VB_NEGVA] = "4W_DELTA_VB_NEGVA",
89  [VCONSEL_4W_DELTA_VA_VB_VC] = "4W_DELTA_VA_VB_VC",
90 };
91 
92 static const char *const pqm_flicker_model_available[] = {
93  [ADI_PQLIB_FLICKER_MODEL_230V_50HZ] = "230V_50HZ",
94  [ADI_PQLIB_FLICKER_MODEL_120V_50HZ] = "120V_50HZ",
95  [ADI_PQLIB_FLICKER_MODEL_230V_60HZ] = "230V_60HZ",
96  [ADI_PQLIB_FLICKER_MODEL_120V_60HZ] = "120V_60HZ",
97 };
98 
99 static const char *const pqm_nominal_frequency_available[] = {
100  [ADI_PQLIB_NOMINAL_FREQUENCY_50HZ] = "50",
101  [ADI_PQLIB_NOMINAL_FREQUENCY_60HZ] = "60",
102 };
103 
104 struct pqm_desc {
108  uint32_t active_ch;
109  uint32_t ext_buff_len;
110  int16_t *ext_buff;
111 };
112 
116  uint32_t ext_buff_len;
117  int16_t *ext_buff;
118 };
119 
120 #endif /* __COMMON_DATA_H__ */
no_os_gpio_init_param
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:79
IIO_BUFF_TYPE
#define IIO_BUFF_TYPE
Definition: common_data.h:60
pqm_init_para::dev_global_attr
float dev_global_attr[PQM_DEVICE_ATTR_NUMBER]
Definition: common_data.h:114
PQM_DEVICE_ATTR_NUMBER
#define PQM_DEVICE_ATTR_NUMBER
Definition: common_data.h:69
no_os_callback_desc
Structure describing a callback to be registered.
Definition: no_os_irq.h:142
pqm_desc::pqm_global_attr
float pqm_global_attr[PQM_DEVICE_ATTR_NUMBER]
Definition: common_data.h:106
no_os_spi.h
Header file of SPI Interface.
iio_demo_uart_ip
struct no_os_uart_init_param iio_demo_uart_ip
Definition: common_data.c:44
no_os_irq.h
Header file of IRQ interface.
iio_data_buffer_loc
IIO_BUFF_TYPE iio_data_buffer_loc[MAX_SIZE_BASE_ADDR]
Definition: common_data.c:56
iio_app.h
Header file of iio_app.
pqm_desc::reg
uint8_t reg[TOTAL_PQM_CHANNELS]
Definition: common_data.h:105
VCONSEL_4W_DELTA_VA_VB_VC
@ VCONSEL_4W_DELTA_VA_VB_VC
Definition: pqlib_example.h:79
pqm_desc
Definition: common_data.h:104
TOTAL_PQM_CHANNELS
#define TOTAL_PQM_CHANNELS
Definition: common_data.h:66
no_os_timer.h
Timer control module header.
pqm_init_para::dev_ch_attr
uint32_t dev_ch_attr[TOTAL_PQM_CHANNELS][MAX_CH_ATTRS]
Definition: common_data.h:115
pqm_desc::active_ch
uint32_t active_ch
Definition: common_data.h:108
MAX_SIZE_BASE_ADDR
#define MAX_SIZE_BASE_ADDR
Definition: common_data.h:62
pqm_desc::pqm_ch_attr
uint32_t pqm_ch_attr[TOTAL_PQM_CHANNELS][MAX_CH_ATTRS]
Definition: common_data.h:107
iio.h
Header file of iio.
pqm_desc::ext_buff_len
uint32_t ext_buff_len
Definition: common_data.h:109
reset_gpio_ip
struct no_os_gpio_init_param reset_gpio_ip
Definition: common_data.c:133
spi_egy_ip
struct no_os_spi_init_param spi_egy_ip
Definition: common_data.c:123
VCONSEL_4W_DELTA_VB_NEGVA
@ VCONSEL_4W_DELTA_VB_NEGVA
Definition: pqlib_example.h:78
pqlib_example.h
pqm_desc::ext_buff
int16_t * ext_buff
Definition: common_data.h:110
pqm_init_para::ext_buff
int16_t * ext_buff
Definition: common_data.h:117
afe_callback_ctrl_ip
struct no_os_irq_init_param afe_callback_ctrl_ip
Definition: common_data.c:150
iio_pqm.h
i2c_ip
struct no_os_i2c_init_param i2c_ip
Definition: common_data.c:104
no_os_timer_init_param
Structure holding the parameters for timer initialization.
Definition: no_os_timer.h:83
no_os_i2c.h
Header file of I2C Interface.
afe0_callback_desc
struct no_os_callback_desc afe0_callback_desc
Definition: common_data.c:157
iio_types.h
Header file for iio_types.
no_os_i2c_init_param
Structure holding the parameters for I2C initialization.
Definition: no_os_i2c.h:64
no_os_uart_init_param
Structure holding the parameters for UART initialization.
Definition: no_os_uart.h:110
VCONSEL_4W_WYE
@ VCONSEL_4W_WYE
Definition: pqlib_example.h:75
no_os_irq_init_param
Structure holding the initial parameters for Interrupt Request.
Definition: no_os_irq.h:107
pqm_ip
struct pqm_init_para pqm_ip
Definition: common_data.c:58
intr_gpio_ip
struct no_os_gpio_init_param intr_gpio_ip
Definition: common_data.c:141
no_os_uart.h
Header file of UART interface.
pqm_init_para::ext_buff_len
uint32_t ext_buff_len
Definition: common_data.h:116
timer_ip
struct no_os_timer_init_param timer_ip
Definition: common_data.c:60
VCONSEL_4W_WYE_VB_NEGVA_NEGVC
@ VCONSEL_4W_WYE_VB_NEGVA_NEGVC
Definition: pqlib_example.h:77
MAX_CH_ATTRS
#define MAX_CH_ATTRS
Definition: common_data.h:68
pqm_init_para
Definition: common_data.h:113
VCONSEL_3W_DELTA_VB_VA_NEGVC
@ VCONSEL_3W_DELTA_VB_VA_NEGVC
Definition: pqlib_example.h:76
uart_ip_stdio
struct no_os_uart_init_param uart_ip_stdio
Definition: common_data.c:112
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140