no-OS
Loading...
Searching...
No Matches
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#if defined(PQM_CONN_ETH)
38#include "w5500_network.h"
39#endif
40
41#if defined(PQM_CONN_T1L)
42#include "lwip_socket.h"
43#include "lwip_adin1110.h"
44#include "adin1110.h"
45#endif
46
47#include "adi_pqlib.h"
48#include "iio.h"
49#include "iio_app.h"
50#include "iio_pqm.h"
51#include "iio_types.h"
52#include "no_os_i2c.h"
53#include "no_os_irq.h"
54#include "no_os_spi.h"
55#include "no_os_timer.h"
56#include "no_os_uart.h"
57#include "parameters.h"
58#include "pqlib_example.h"
59#include "afe_calibration.h"
60
61#define FW_VERSION 2.2
62
63#define IIO_BUFF_TYPE int16_t
64#define SAMPLES_PER_CHANNEL_PLATFORM 256
65#define MAX_SIZE_BASE_ADDR (SAMPLES_PER_CHANNEL_PLATFORM * TOTAL_PQM_CHANNELS)
66#define MAX_SIZE_BASE_ADDR_WITH_SIZE \
67 (MAX_SIZE_BASE_ADDR * sizeof(IIO_BUFF_TYPE))
68
69#define TOTAL_PQM_CHANNELS 11
70#define VOLTAGE_CH_NUMBER 3
71#define MAX_CH_ATTRS 23
72#define PQM_DEVICE_ATTR_NUMBER 63
73#define WAVEFORM_BUFFER_LENGTH (256 * 7)
74#define MAX_EVENT_NUMBER 6
75
77
78#if defined(PQM_CONN_ETH)
79extern const struct no_os_spi_init_param w5500_spi_init_params;
80
81extern struct w5500_init_param w5500_ip;
82extern struct w5500_network_init_param w5500_network_ip;
83#endif
84
85#if defined(PQM_CONN_USB)
86extern struct no_os_uart_init_param iio_demo_usb_ip;
87#elif defined(PQM_CONN_SERIAL)
88extern struct no_os_uart_init_param iio_demo_serial_ip;
89#elif defined(PQM_CONN_T1L)
90extern struct no_os_uart_init_param iio_demo_serial_ip;
91extern const struct no_os_gpio_init_param adin1110_int_ip;
93extern const struct no_os_gpio_init_param adin1110_swpd_ip;
96extern const struct no_os_gpio_init_param adin1110_cfg0_ip;
97extern const struct no_os_gpio_init_param adin1110_cfg1_ip;
98extern const struct no_os_spi_init_param adin1110_spi_ip;
99
100extern struct adin1110_init_param adin1110_ip;
101extern struct lwip_network_param lwip_ip;
102#endif
103
104extern struct pqm_init_para pqm_ip;
105extern struct no_os_spi_init_param spi_egy_ip;
106extern struct no_os_i2c_init_param i2c_ip;
108extern struct no_os_timer_init_param timer_ip;
113
114static const char *const pqm_v_consel_available[] = {
115 [VCONSEL_4W_WYE] = "4W_WYE",
116 [VCONSEL_3W_DELTA_VB_VA_NEGVC] = "3W_DELTA_VA_VB_NEGVC",
117 [VCONSEL_4W_WYE_VB_NEGVA_NEGVC] = "4W_WYE_VB_NEGVA_NEGVC",
118 [VCONSEL_4W_DELTA_VB_NEGVA] = "4W_DELTA_VB_NEGVA",
119 [VCONSEL_4W_DELTA_VA_VB_VC] = "4W_DELTA_VA_VB_VC",
120};
121
122static const char *const pqm_flicker_model_available[] = {
123 [ADI_PQLIB_FLICKER_MODEL_230V_50HZ] = "230V_50HZ",
124 [ADI_PQLIB_FLICKER_MODEL_120V_50HZ] = "120V_50HZ",
125 [ADI_PQLIB_FLICKER_MODEL_230V_60HZ] = "230V_60HZ",
126 [ADI_PQLIB_FLICKER_MODEL_120V_60HZ] = "120V_60HZ",
127};
128
129static const char *const pqm_calibration_type_available[] = {
130 [CALIBRATION_TYPE_GAIN] = "GAIN",
131 [CALIBRATION_TYPE_OFFSET] = "OFFSET",
132};
133
134static const char *const pqm_calibration_phase_available[] = {
135 [CALIBRATION_PHASE_A] = "A",
136 [CALIBRATION_PHASE_B] = "B",
137 [CALIBRATION_PHASE_C] = "C",
138};
139
140static const char *const pqm_nominal_frequency_available[] = {
141 [ADI_PQLIB_NOMINAL_FREQUENCY_50HZ] = "50",
142 [ADI_PQLIB_NOMINAL_FREQUENCY_60HZ] = "60",
143};
144
153
160
161#endif /* __COMMON_DATA_H__ */
#define MAX_SIZE_BASE_ADDR
Definition parameters.h:51
struct no_os_timer_init_param timer_ip
Definition common_data.c:72
struct no_os_spi_init_param adin1110_spi_ip
Definition common_data.c:46
@ CALIBRATION_PHASE_C
Definition afe_calibration.h:82
@ CALIBRATION_PHASE_A
Definition afe_calibration.h:80
@ CALIBRATION_PHASE_B
Definition afe_calibration.h:81
@ CALIBRATION_TYPE_OFFSET
Definition afe_calibration.h:73
@ CALIBRATION_TYPE_GAIN
Definition afe_calibration.h:72
struct no_os_gpio_init_param reset_gpio_ip
Definition common_data.c:282
const struct no_os_gpio_init_param adin1110_rst_gpio_ip
Definition common_data.c:61
struct adin1110_init_param adin1110_ip
Definition common_data.c:82
struct no_os_uart_init_param uart_ip_stdio
Definition common_data.c:261
struct no_os_gpio_init_param intr_gpio_ip
Definition common_data.c:290
struct no_os_callback_desc afe0_callback_desc
Definition common_data.c:306
struct no_os_irq_init_param afe_callback_ctrl_ip
Definition common_data.c:299
struct no_os_spi_init_param spi_egy_ip
Definition common_data.c:272
IIO_BUFF_TYPE iio_data_buffer_loc[MAX_SIZE_BASE_ADDR]
Definition common_data.c:185
struct pqm_init_para pqm_ip
Definition common_data.c:187
struct no_os_i2c_init_param i2c_ip
Definition common_data.c:253
#define TOTAL_PQM_CHANNELS
Definition common_data.h:69
#define MAX_CH_ATTRS
Definition common_data.h:71
#define PQM_DEVICE_ATTR_NUMBER
Definition common_data.h:72
#define IIO_BUFF_TYPE
Definition common_data.h:63
Header file of iio.
Header file of iio_app.
Header file for iio_types.
Header file of I2C Interface.
Header file of IRQ interface.
Header file of SPI Interface.
Timer control module header.
Header file of UART interface.
@ VCONSEL_4W_WYE
Definition pqlib_example.h:69
@ VCONSEL_4W_WYE_VB_NEGVA_NEGVC
Definition pqlib_example.h:71
@ VCONSEL_4W_DELTA_VA_VB_VC
Definition pqlib_example.h:73
@ VCONSEL_4W_DELTA_VB_NEGVA
Definition pqlib_example.h:72
@ VCONSEL_3W_DELTA_VB_VA_NEGVC
Definition pqlib_example.h:70
Initialization parameter for the device descriptor.
Definition adin1110.h:220
Structure describing a callback to be registered.
Definition no_os_irq.h:136
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52
Structure holding the initial parameters for Interrupt Request.
Definition no_os_irq.h:101
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Structure holding the parameters for timer initialization.
Definition no_os_timer.h:71
Structure holding the parameters for UART initialization.
Definition no_os_uart.h:98
Definition common_data.h:145
float pqm_global_attr[PQM_DEVICE_ATTR_NUMBER]
Definition common_data.h:147
uint32_t active_ch
Definition common_data.h:149
uint32_t ext_buff_len
Definition common_data.h:150
uint32_t pqm_ch_attr[TOTAL_PQM_CHANNELS][MAX_CH_ATTRS]
Definition common_data.h:148
int16_t * ext_buff
Definition common_data.h:151
uint8_t reg[TOTAL_PQM_CHANNELS]
Definition common_data.h:146
Definition common_data.h:154
uint32_t dev_ch_attr[TOTAL_PQM_CHANNELS][MAX_CH_ATTRS]
Definition common_data.h:156
float dev_global_attr[PQM_DEVICE_ATTR_NUMBER]
Definition common_data.h:155
int16_t * ext_buff
Definition common_data.h:158
uint32_t ext_buff_len
Definition common_data.h:157
Definition w5500.h:228
const struct no_os_gpio_init_param adin1110_tx2p4_ip
Definition common_data.c:173
const struct no_os_gpio_init_param adin1110_int_ip
Definition common_data.c:69
const struct no_os_gpio_init_param adin1110_mssel_ip
Definition common_data.c:181
const struct no_os_gpio_init_param adin1110_cfg0_ip
Definition common_data.c:189
const struct no_os_gpio_init_param adin1110_swpd_ip
Definition common_data.c:165
const struct no_os_gpio_init_param adin1110_cfg1_ip
Definition common_data.c:197