no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ade7758.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __ADE7758_H__
34#define __ADE7758_H__
35
36#include <stdbool.h>
37#include <stdint.h>
38#include <string.h>
39#include "no_os_util.h"
40#include "no_os_spi.h"
41#include "no_os_gpio.h"
42#include "no_os_irq.h"
43#include "no_os_delay.h"
44#include "no_os_units.h"
45#include "no_os_alloc.h"
46#include "no_os_crc16.h"
47#include "no_os_print_log.h"
48#include <stdlib.h>
49#include <errno.h>
50#include <math.h>
51
52/* SPI commands */
53#define ADE7758_SPI_READ NO_OS_BIT(7)
54
55/* Version product */
56#define ADE7758_VERSION 0x3F
57/* Use a register that has a non-zero value at reset */
58#define ADE7758_REG_VERSION_PRODUCT 0x48
59
60/* Miscellaneous Definitions */
61#define IS_7BITS_REG(x) ((x) >= ADE7758_REG_APHCAL && (x) <= ADE7758_REG_CPHCAL)
62#define IS_8BITS_REG(x) (((x) == ADE7758_REG_TEMP) || ((x) >= ADE7758_REG_OPMODE && (x) <= ADE7758_REG_LCYCMODE) \
63 || ((x) >= ADE7758_REG_SAGCYC && (x) <= ADE7758_REG_GAIN) || ((x) >= ADE7758_REG_WDIV && (x) <= ADE7758_REG_VADIV) \
64 ||((x) >= ADE7758_REG_CHKSUM && (x) <= ADE7758_REG_VERSION))
65#define IS_12BITS_REG(x) (((x) == ADE7758_REG_FREQ) || ((x) >= ADE7758_REG_AVRMSGAIN && (x) <= ADE7758_REG_CVAROS) \
66 || ((x) == ADE7758_REG_APCFDEN) || ((x) == ADE7758_REG_VARCFDEN))
67#define IS_16BITS_REG(x) (((x) >= ADE7758_REG_AWATTHR && (x) <= ADE7758_REG_CVAHR) \
68 || ((x) >= ADE7758_REG_ZXTOUT && (x) <= ADE7758_REG_LINECYC) || ((x) == ADE7758_REG_APCFNUM) \
69 || ((x) == ADE7758_REG_VARCFNUM))
70#define IS_24BITS_REG(x) (((x) >= ADE7758_REG_AIRMS && (x) <= ADE7758_REG_CVRMS) \
71 || ((x) == ADE7758_REG_WFORM) || ((x) >= ADE7758_REG_MASK && (x) <= ADE7758_REG_RSTATUS))
72
73/* Reset Delay */
74#define ADE7758_RESET_DEL 1
75
76/* ADE7758 Register Map */
77#define ADE7758_REG_AWATTHR 0x01
78#define ADE7758_REG_BWATTHR 0x02
79#define ADE7758_REG_CWATTHR 0x03
80#define ADE7758_REG_AVARHR 0x04
81#define ADE7758_REG_BVARHR 0x05
82#define ADE7758_REG_CVARHR 0x06
83#define ADE7758_REG_AVAHR 0x07
84#define ADE7758_REG_BVAHR 0x08
85#define ADE7758_REG_CVAHR 0x09
86#define ADE7758_REG_AIRMS 0x0A
87#define ADE7758_REG_BIRMS 0x0B
88#define ADE7758_REG_CIRMS 0x0C
89#define ADE7758_REG_AVRMS 0x0D
90#define ADE7758_REG_BVRMS 0X0E
91#define ADE7758_REG_CVRMS 0x0F
92#define ADE7758_REG_FREQ 0x10
93#define ADE7758_REG_TEMP 0x11
94#define ADE7758_REG_WFORM 0x12
95#define ADE7758_REG_OPMODE 0x13
96#define ADE7758_REG_MMODE 0x14
97#define ADE7758_REG_WAVMODE 0x15
98#define ADE7758_REG_COMPMODE 0x16
99#define ADE7758_REG_LCYCMODE 0x17
100#define ADE7758_REG_MASK 0x18
101#define ADE7758_REG_STATUS 0x19
102#define ADE7758_REG_RSTATUS 0x1A
103#define ADE7758_REG_ZXTOUT 0X1B
104#define ADE7758_REG_LINECYC 0x1C
105#define ADE7758_REG_SAGCYC 0x1D
106#define ADE7758_REG_SAGLVL 0x1E
107#define ADE7758_REG_VPINTLVL 0x1F
108#define ADE7758_REG_IPINTLVL 0x20
109#define ADE7758_REG_VPEAK 0x21
110#define ADE7758_REG_IPEAK 0x22
111#define ADE7758_REG_GAIN 0x23
112#define ADE7758_REG_AVRMSGAIN 0x24
113#define ADE7758_REG_BVRMSGAIN 0x25
114#define ADE7758_REG_CVRMSGAIN 0x26
115#define ADE7758_REG_AIGAIN 0x27
116#define ADE7758_REG_BIGAIN 0x28
117#define ADE7758_REG_CIGAIN 0x29
118#define ADE7758_REG_AWG 0x2A
119#define ADE7758_REG_BWG 0x2B
120#define ADE7758_REG_CWG 0x2C
121#define ADE7758_REG_AVARG 0x2D
122#define ADE7758_REG_BVARG 0x2E
123#define ADE7758_REG_CVARG 0x2F
124#define ADE7758_REG_AVAG 0x30
125#define ADE7758_REG_BVAG 0x31
126#define ADE7758_REG_CVAG 0x32
127#define ADE7758_REG_AVRMSOS 0x33
128#define ADE7758_REG_BVRMSOS 0x34
129#define ADE7758_REG_CVRMSOS 0x35
130#define ADE7758_REG_AIRMSOS 0x36
131#define ADE7758_REG_BIRMSOS 0x37
132#define ADE7758_REG_CIRMSOS 0x38
133#define ADE7758_REG_AWATTOS 0x39
134#define ADE7758_REG_BWATTOS 0x3A
135#define ADE7758_REG_CWATTOS 0x3B
136#define ADE7758_REG_AVAROS 0x3C
137#define ADE7758_REG_BVAROS 0x3D
138#define ADE7758_REG_CVAROS 0x3E
139#define ADE7758_REG_APHCAL 0x3F
140#define ADE7758_REG_BPHCAL 0x40
141#define ADE7758_REG_CPHCAL 0x41
142#define ADE7758_REG_WDIV 0x42
143#define ADE7758_REG_VARDIV 0x43
144#define ADE7758_REG_VADIV 0x44
145#define ADE7758_REG_APCFNUM 0x45
146#define ADE7758_REG_APCFDEN 0x46
147#define ADE7758_REG_VARCFNUM 0x47
148#define ADE7758_REG_VARCFDEN 0x48
149#define ADE7758_REG_CHKSUM 0x7E
150#define ADE7758_REG_VERSION 0x7F
151
152/* ADE7758_REG_OPMODE Bit Definition */
153#define ADE7758_SWRST_MSK NO_OS_BIT(6)
154#define ADE7758_DISMOD_MSK NO_OS_GENMASK(5, 3)
155#define ADE7758_DISCF_MSK NO_OS_BIT(2)
156#define ADE7758_DISLPF_MSK NO_OS_BIT(1)
157#define ADE7758_DISHPF_MSK NO_OS_BIT(0)
158
159/* ADE7758_REG_MMODE Bit Definition */
160#define ADE7758_PKIRQSEL_MSK NO_OS_GENMASK(7, 5)
161#define ADE7758_PEAKSEL_MSK NO_OS_GENMASK(4, 2)
162#define ADE7758_FREQSEL_MSK NO_OS_GENMASK(1, 0)
163
164/* ADE7758_REG_WAVMODE Bit Definition */
165#define ADE7758_VACF_MSK NO_OS_BIT(7)
166#define ADE7758_DTRT_MSK NO_OS_GENMASK(6, 5)
167#define ADE7758_WAVSEL_MSK NO_OS_GENMASK(4, 2)
168#define ADE7758_PHSEL_MSK NO_OS_GENMASK(1, 0)
169
170/* ADE7758_REG_COMPMODE Bit Definition */
171#define ADE7758_NOLOAD_MSK NO_OS_BIT(7)
172#define ADE7758_SAVAR_MSK NO_OS_BIT(6)
173#define ADE7758_ABS_MSK NO_OS_BIT(5)
174#define ADE7758_TERMSEL_MSK NO_OS_GENMASK(4, 2)
175#define ADE7758_CONSEL_MSK NO_OS_GENMASK(1, 0)
176
177/* ADE7758_REG_LCYCMODE Bit Definition */
178#define ADE7758_FREQSEL_MSK NO_OS_BIT(7)
179#define ADE7758_RSTREAD_MSK NO_OS_BIT(6)
180#define ADE7758_ZXSEL_MSK NO_OS_GENMASK(5, 3)
181#define ADE7758_LVA_MSK NO_OS_BIT(2)
182#define ADE7758_LVAR_MSK NO_OS_BIT(1)
183#define ADE7758_LWATT_MSK NO_OS_BIT(0)
184
185/* ADE7758_REG_STATUS/ADE7758_REG_RSTATUS/ADE7758_REG_MASK Bit Definition */
186#define ADE7758_SEQERR_MSK NO_OS_BIT(19)
187#define ADE7758_REVPRP_MSK NO_OS_BIT(18)
188#define ADE7758_REVPAP_MSK NO_OS_BIT(17)
189#define ADE7758_WFSM_MSK NO_OS_BIT(16)
190#define ADE7758_PKI_MSK NO_OS_BIT(15)
191#define ADE7758_PKV_MSK NO_OS_BIT(14)
192/* bit 13 reserved in the mask register*/
193#define ADE7758_RESET_MSK NO_OS_BIT(13)
194#define ADE7758_LENERGY_MSK NO_OS_BIT(12)
195#define ADE7758_ZXC_MSK NO_OS_BIT(11)
196#define ADE7758_ZXB_MSK NO_OS_BIT(10)
197#define ADE7758_ZXA_MSK NO_OS_BIT(9)
198#define ADE7758_ZXTOC_MSK NO_OS_BIT(8)
199#define ADE7758_ZXTOB_MSK NO_OS_BIT(7)
200#define ADE7758_ZXTOA_MSK NO_OS_BIT(6)
201#define ADE7758_SAGC_MSK NO_OS_BIT(5)
202#define ADE7758_SAGB_MSK NO_OS_BIT(4)
203#define ADE7758_SAGA_MSK NO_OS_BIT(3)
204#define ADE7758_VAEHF_MSK NO_OS_BIT(2)
205#define ADE7758_REHF_MSK NO_OS_BIT(1)
206#define ADE7758_AEHF_MSK NO_OS_BIT(0)
207
208/* ADE7758_REG_GAIN Bit Definition */
209#define ADE7758_INTEGRATOR_EN_MSK NO_OS_BIT(7)
210#define ADE7758_PGA2_GAIN_MSK NO_OS_GENMASK(6, 5)
211#define ADE7758_FULL_SCALE_MSK NO_OS_GENMASK(4, 3)
212#define ADE7758_PGA1_GAIN_MSK NO_OS_GENMASK(1, 0)
213
219 /* normal operation */
221 /* switch off the current channel ADCs*/
223 /* switch off the voltage channel ADCs */
225 /* put the ADE7758 in sleep mode */
227 /* swap voltage and currents channels */
229 /* switch off current channel ADCsand redirect the current
230 input signal to the voltage channel signal paths*/
232 /* switch off voltage channel ADCs and redirect the voltage
233 input signal to the current channel signal paths */
235 /* put the ADE7758 in power-down mode*/
237};
238
245 /* phase A */
247 /* phase B */
249 /* phase C */
251};
252
258 /* Current */
260 /* Voltage */
262 /* Active power */
264 /* Reactive power */
266 /* Apparent power */
268};
269
275 /* 26.04 kSPS (CLKIN/3/128) */
277 /* 13.02 kSPS (CLKIN/3/256) */
279 /* 6.51 kSPS (CLKIN/3/512) */
281 /* 3.25 kSPS (CLKIN/3/1024) */
283};
284
290 /* Consel 0 */
292 /* Consel 1 */
294 /* Consel 2 */
296};
297
303 /* Gain */
304 /* gain 1 */
306 /* gain 2 */
308};
309
315 /* Full scale select */
316 /* 0.5V */
318 /* 0.25V */
320 /* 0.125V */
322};
323
334
347
372
391
400
407 uint32_t temp_reg_val;
408};
409
410/* Initialize the device. */
411int ade7758_init(struct ade7758_dev **device,
413
414/* Setup device */
415int ade7758_setup(struct ade7758_dev *dev);
416
417/* Read device register. */
418int ade7758_read(struct ade7758_dev *dev, uint16_t reg_addr,
419 int32_t *reg_data);
420
421/* Write device register. */
422int ade7758_write(struct ade7758_dev *dev, uint16_t reg_addr,
423 uint32_t reg_data);
424
425/* Update specific register bits. */
426int ade7758_update_bits(struct ade7758_dev *dev, uint16_t reg_addr,
427 uint32_t mask, uint32_t reg_data);
428
429/* Remove the device and release resources. */
430int ade7758_remove(struct ade7758_dev *dev);
431
432/* Reset the device using SW reset. */
433int ade7758_sw_reset(struct ade7758_dev *dev);
434
435/* Version product */
436int ade7758_version_product(struct ade7758_dev *dev, uint32_t *data_read);
437
438/* Read Ipeak val */
439int ade7758_read_ipk_val(struct ade7758_dev *dev, uint32_t *val);
440
441/* Read Vpeak val */
442int ade7758_vpk_val(struct ade7758_dev *dev, uint32_t *val);
443
444/* Get interrupt indicator from STATUS register */
445int ade7758_get_int_status(struct ade7758_dev *dev, uint32_t msk,
446 uint8_t *status);
447
448/* Clear irq STATUS flags */
449int ade7758_clear_irq_status(struct ade7758_dev *dev, int32_t *reg_data);
450
451/* Enable/Disable interrupt */
452int ade7758_enable_irq(struct ade7758_dev *dev, uint32_t msk, uint8_t en);
453
454/* Select waveform register update rate */
456 enum ade7758_data_rate sel);
457
458/* Select source of sampled data for wave register */
460 enum ade7758_wavesel sel);
461
462/* Select the phase of sampled data for wave register */
463int ade7758_wave_phase_sel(struct ade7758_dev *dev,
464 enum ade7758_phsel sel);
465
466/* Select the input to the energy accumulation registers */
467int ade7758_consel(struct ade7758_dev *dev,
468 enum ade7758_consel sel);
469
470/* Select the source of the measurement of the voltage line frequency */
471int ade7758_freq_source(struct ade7758_dev *dev,
472 enum ade7758_phsel sel);
473
474/* Operation mode of the ADCs */
475int ade7758_adcs_mode(struct ade7758_dev *dev,
476 enum ade7758_dismod sel);
477
478/* Read energy values phase A */
480 struct ade7758_energy_values *data);
481
482/* Read energy values phase B */
484 struct ade7758_energy_values *data);
485
486/* Read energy values phase C */
488 struct ade7758_energy_values *data);
489
490/* Read rms values phase A */
492 struct ade7758_rms_values *data);
493
494/* Read rms values phase B */
496 struct ade7758_rms_values *data);
497
498/* Read rms values phase C */
500 struct ade7758_rms_values *data);
501
502/* Read period value */
504 struct ade7758_period_value *data);
505
506/* Read temperature value */
508 struct ade7758_temp_value *data);
509
510#endif /* __ADE7758_H__ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int ade7758_remove(struct ade7758_dev *dev)
Remove the device and release resources.
Definition ade7758.c:320
int ade7758_read_ipk_val(struct ade7758_dev *dev, uint32_t *val)
read Ipeak val
Definition ade7758.c:390
int ade7758_version_product(struct ade7758_dev *dev, uint32_t *data_read)
Version product.
Definition ade7758.c:366
int ade7758_clear_irq_status(struct ade7758_dev *dev, int32_t *reg_data)
Clear irq status flags.
Definition ade7758.c:463
int ade7758_freq_source(struct ade7758_dev *dev, enum ade7758_phsel sel)
Select the source of the measurement of the voltage line frequency.
Definition ade7758.c:627
int ade7758_rms_vals_phase_a(struct ade7758_dev *dev, struct ade7758_rms_values *data)
Read rms values phase A.
Definition ade7758.c:818
ade7758_ch_full_scale_sel
ADE7758 Current input full-scale select.
Definition ade7758.h:314
@ ADE7758_FS_0_5
Definition ade7758.h:317
@ ADE7758_FS_0_125
Definition ade7758.h:321
@ ADE7758_FS_0_25
Definition ade7758.h:319
int ade7758_get_int_status(struct ade7758_dev *dev, uint32_t msk, uint8_t *status)
Get interrupt indicator from STATUS register.
Definition ade7758.c:437
ade7758_dismod
ADE7758 ADCs can be turned off by using these bits.
Definition ade7758.h:218
@ ADE7758_POWER_DOWN_MODE
Definition ade7758.h:236
@ ADE7758_SWITCH_OFF_VOLTAGE_ADC
Definition ade7758.h:224
@ ADE7758_NORMAL_OPERATION
Definition ade7758.h:220
@ ADE7758_SWITCH_OFF_CURRENT_ADC
Definition ade7758.h:222
@ ADE7758_OFF_VOLTAGE_ADCS_REDIRECTED_TO_CURRENT
Definition ade7758.h:234
@ ADE7758_SWAP_VOLTAGE_CURRENT
Definition ade7758.h:228
@ ADE7758_SLEEP_MODE
Definition ade7758.h:226
@ ADE7758_OFF_CURRENT_ADCS_REDIRECTED_TO_VOLTAGE
Definition ade7758.h:231
int ade7758_init(struct ade7758_dev **device, struct ade7758_init_param init_param)
Initialize the device.
Definition ade7758.c:59
int ade7758_period_val(struct ade7758_dev *dev, struct ade7758_period_value *data)
int ade7758_read(struct ade7758_dev *dev, uint16_t reg_addr, int32_t *reg_data)
Read device register.
Definition ade7758.c:182
int ade7758_wave_phase_sel(struct ade7758_dev *dev, enum ade7758_phsel sel)
Select the phase of sampled data for wave register.
Definition ade7758.c:569
ade7758_wavesel
ADE7758 select the type of waveform.
Definition ade7758.h:257
@ ADE7758_REACTIVE_POWER
Definition ade7758.h:265
@ ADE7758_VOLTAGE
Definition ade7758.h:261
@ ADE7758_ACTIVE_POWER
Definition ade7758.h:263
@ ADE7758_APPARENT_POWER
Definition ade7758.h:267
@ ADE7758_CURRENT
Definition ade7758.h:259
int ade7758_rms_vals_phase_c(struct ade7758_dev *dev, struct ade7758_rms_values *data)
Read rms values phase C.
Definition ade7758.c:880
int ade7758_sw_reset(struct ade7758_dev *dev)
Reset the device using SW reset.
Definition ade7758.c:345
ade7758_phsel
ADE7758 select the phase of the waveform sample or the source for the voltage line frequency measurem...
Definition ade7758.h:244
@ ADE7758_PHASE_A
Definition ade7758.h:246
@ ADE7758_PHASE_B
Definition ade7758.h:248
@ ADE7758_PHASE_C
Definition ade7758.h:250
int ade7758_adcs_mode(struct ade7758_dev *dev, enum ade7758_dismod sel)
Operation mode of the ADCs.
Definition ade7758.c:656
int ade7758_write(struct ade7758_dev *dev, uint16_t reg_addr, uint32_t reg_data)
Write device register.
Definition ade7758.c:245
int ade7758_vpk_val(struct ade7758_dev *dev, uint32_t *val)
read Vpeak val
Definition ade7758.c:413
int ade7758_energy_vals_phase_b(struct ade7758_dev *dev, struct ade7758_energy_values *data)
Read energy values phase B.
Definition ade7758.c:744
int ade7758_wave_update_rate(struct ade7758_dev *dev, enum ade7758_data_rate sel)
Select waveform register update rate.
Definition ade7758.c:499
int ade7758_update_bits(struct ade7758_dev *dev, uint16_t reg_addr, uint32_t mask, uint32_t reg_data)
Update specific register bits.
Definition ade7758.c:298
int ade7758_energy_vals_phase_a(struct ade7758_dev *dev, struct ade7758_energy_values *data)
Read energy values phase A.
Definition ade7758.c:707
int ade7758_wave_sample_data_source(struct ade7758_dev *dev, enum ade7758_wavesel sel)
Select source of sampled data for wave register.
Definition ade7758.c:532
ade7758_pga_gain
ADE7758 select the PGA gain.
Definition ade7758.h:302
@ ADE7758_PGA_GAIN_1
Definition ade7758.h:305
@ ADE7758_PGA_GAIN_2
Definition ade7758.h:307
int ade7758_setup(struct ade7758_dev *dev)
Setup the ADE7758 device.
Definition ade7758.c:127
int ade7758_rms_vals_phase_b(struct ade7758_dev *dev, struct ade7758_rms_values *data)
Read rms values phase B.
Definition ade7758.c:849
int ade7758_energy_vals_phase_c(struct ade7758_dev *dev, struct ade7758_energy_values *data)
Read energy values phase C.
Definition ade7758.c:781
ade7758_consel
ADE7758 select the input to the energy accumulation registers.
Definition ade7758.h:289
@ ADE7758_CONSEL_2
Definition ade7758.h:295
@ ADE7758_CONSEL_1
Definition ade7758.h:293
@ ADE7758_CONSEL_0
Definition ade7758.h:291
ade7758_data_rate
ADE7758 select the data rate.
Definition ade7758.h:274
@ ADE7758_DATA_RATE_26_04KSPS
Definition ade7758.h:276
@ ADE7758_DATA_RATE_13_02KSPS
Definition ade7758.h:278
@ ADE7758_DATA_RATE_3_25KSPS
Definition ade7758.h:282
@ ADE7758_DATA_RATE_6_51KSPS
Definition ade7758.h:280
int ade7758_temp_val(struct ade7758_dev *dev, struct ade7758_temp_value *data)
int ade7758_enable_irq(struct ade7758_dev *dev, uint32_t msk, uint8_t en)
Enable/Disable interrupt.
Definition ade7758.c:487
Error macro definition for ARM Compiler.
Header file of CRC-16 computation.
Header file of Delay functions.
Header file of GPIO Interface.
Header file of IRQ interface.
Print messages helpers.
Header file of SPI Interface.
Header file of Units.
Header file of utility functions.
ADE7758 Device structure.
Definition ade7758.h:339
struct no_os_spi_desc * spi_desc
Definition ade7758.h:341
struct no_os_irq_ctrl_desc * irq_ctrl
Definition ade7758.h:345
uint32_t irq_status
Definition ade7758.h:343
ADE7758 energy registers values.
Definition ade7758.h:352
int32_t apparent_energy_reg_val_phase_c
Definition ade7758.h:370
int32_t active_energy_reg_val_phase_a
Definition ade7758.h:354
int32_t apparent_energy_reg_val_phase_b
Definition ade7758.h:368
int32_t active_energy_reg_val_phase_c
Definition ade7758.h:358
int32_t active_energy_reg_val_phase_b
Definition ade7758.h:356
int32_t acc_reactive_energy_reg_val_phase_b
Definition ade7758.h:362
int32_t acc_reactive_energy_reg_val_phase_a
Definition ade7758.h:360
int32_t acc_reactive_energy_reg_val_phase_c
Definition ade7758.h:364
int32_t apparent_energy_reg_val_phase_a
Definition ade7758.h:366
ADE7758 pq values.
Definition ade7758.h:396
uint32_t freq_per_reg_val
Definition ade7758.h:398
ADE7758 Device initialization parameters.
Definition ade7758.h:328
struct no_os_irq_ctrl_desc * irq_ctrl
Definition ade7758.h:332
struct no_os_spi_init_param * spi_init
Definition ade7758.h:330
ADE7758 rms registers values.
Definition ade7758.h:377
uint32_t current_rms_reg_val_phase_a
Definition ade7758.h:379
uint32_t voltage_rms_reg_val_phase_b
Definition ade7758.h:385
uint32_t current_rms_reg_val_phase_c
Definition ade7758.h:387
uint32_t voltage_rms_reg_val_phase_a
Definition ade7758.h:381
uint32_t current_rms_reg_val_phase_b
Definition ade7758.h:383
uint32_t voltage_rms_reg_val_phase_c
Definition ade7758.h:389
ADE7758 pq values.
Definition ade7758.h:405
uint32_t temp_reg_val
Definition ade7758.h:407
Definition ad9361_util.h:63
Definition no_os_irq.h:117
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128