Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_spi_master.h"
39 #include "drv_analog_in.h"
61 #define AMRANGLE2_REG_ADC_MODE_CONTROL 0x0000
62 #define AMRANGLE2_REG_ADC_CONFIGURATION 0x8000
63 #define AMRANGLE2_REG_UNIPOLAR 0x8800
64 #define AMRANGLE2_REG_BIPOLAR 0x9000
65 #define AMRANGLE2_REG_RANGE 0x9800
66 #define AMRANGLE2_REG_CUSTOM_SCAN0 0xA000
67 #define AMRANGLE2_REG_CUSTOM_SCAN1 0xA800
68 #define AMRANGLE2_REG_SAMPLE_SET 0xB000
86 #define AMRANGLE2_SCAN_UNCHANGED 0x0000
87 #define AMRANGLE2_SCAN_MANUAL 0x0800
88 #define AMRANGLE2_SCAN_REPEAT 0x1000
89 #define AMRANGLE2_SCAN_STANDARD_INT 0x1800
90 #define AMRANGLE2_SCAN_STANDARD_EXT 0x2000
91 #define AMRANGLE2_SCAN_UPPER_INT 0x2800
92 #define AMRANGLE2_SCAN_UPPER_EXT 0x3000
93 #define AMRANGLE2_SCAN_CUSTOM_INT 0x3800
94 #define AMRANGLE2_SCAN_CUSTOM_EXT 0x4000
95 #define AMRANGLE2_SCAN_SAMPLE_SET 0x4800
96 #define AMRANGLE2_CHSEL_AIN0 0x0000
97 #define AMRANGLE2_CHSEL_AIN1 0x0080
98 #define AMRANGLE2_CHSEL_AIN2 0x0100
99 #define AMRANGLE2_CHSEL_AIN3 0x0180
100 #define AMRANGLE2_RESET_FIFO 0x0020
101 #define AMRANGLE2_RESET_ALL 0x0040
102 #define AMRANGLE2_PM_NORMAL 0x0000
103 #define AMRANGLE2_PM_AUTO_SHUTDOWN 0x0008
104 #define AMRANGLE2_PM_AUTO_STANDBY 0x0010
105 #define AMRANGLE2_CHAN_ID_ENABLE 0x0004
106 #define AMRANGLE2_SWCNV_START 0x0002
112 #define AMRANGLE2_REFSEL_EXT_DIFFERENTIAL 0x0400
113 #define AMRANGLE2_AVGON 0x0200
114 #define AMRANGLE2_NAVG_4 0x0000
115 #define AMRANGLE2_NAVG_8 0x0080
116 #define AMRANGLE2_NAVG_16 0x0100
117 #define AMRANGLE2_NAVG_32 0x0180
118 #define AMRANGLE2_NSCAN_4 0x0000
119 #define AMRANGLE2_NSCAN_8 0x0020
120 #define AMRANGLE2_NSCAN_12 0x0040
121 #define AMRANGLE2_NSCAN_16 0x0060
122 #define AMRANGLE2_SPM_NORMAL 0x0000
123 #define AMRANGLE2_SPM_FULL_SHUTDOWN 0x0008
124 #define AMRANGLE2_SPM_PARTIAL_SHUTDOWN 0x0010
125 #define AMRANGLE2_ECHO_ON 0x0004
131 #define AMRANGLE2_RANGE01_HALF_VREF 0x0000
132 #define AMRANGLE2_RANGE01_FULL_VREF 0x0400
133 #define AMRANGLE2_RANGE23_HALF_VREF 0x0000
134 #define AMRANGLE2_RANGE23_FULL_VREF 0x0200
140 #define AMRANGLE2_BCH01_UNIPOLAR 0x0000
141 #define AMRANGLE2_BCH01_BIPOLAR_FULLY_DIFF 0x0400
142 #define AMRANGLE2_BCH23_UNIPOLAR 0x0000
143 #define AMRANGLE2_BCH23_BIPOLAR_FULLY_DIFF 0x0200
149 #define AMRANGLE2_ADC_VREF 3.3
150 #define AMRANGLE2_ADC_RESOLUTION 0x0FFF
156 #define AMRANGLE2_RADIANS_TO_DEGREES 57.295779513
157 #define AMRANGLE2_ANGLE_ZERO_OFFSET 90.0
163 #define AMRANGLE2_TEMP_VDD 3.3
164 #define AMRANGLE2_TEMP_TCAL 25.0
165 #define AMRANGLE2_TEMP_TCO 0.003173
166 #define AMRANGLE2_TEMP_NUM_CONVERSIONS 100
176 #define AMRANGLE2_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
177 #define AMRANGLE2_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
195 #define AMRANGLE2_MAP_MIKROBUS( cfg, mikrobus ) \
196 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
197 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
198 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
199 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
200 cfg.an = MIKROBUS( mikrobus, MIKROBUS_AN ); \
201 cfg.cst = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
202 cfg.eoc = MIKROBUS( mikrobus, MIKROBUS_INT )
441 #endif // AMRANGLE2_H
@ AMRANGLE2_OK
Definition: amrangle2.h:261
void amrangle2_start_conversion(amrangle2_t *ctx)
AMR Angle 2 start conversion function.
This file contains SPI specific macros, functions, etc.
pin_name_t sck
Definition: amrangle2.h:237
AMR Angle 2 Click configuration object.
Definition: amrangle2.h:233
@ AMRANGLE2_ERROR
Definition: amrangle2.h:262
analog_in_resolution_t resolution
Definition: amrangle2.h:250
pin_name_t chip_select
Definition: amrangle2.h:223
pin_name_t eoc
Definition: amrangle2.h:243
spi_master_t spi
Definition: amrangle2.h:220
err_t amrangle2_read_an_pin_voltage(amrangle2_t *ctx, float *data_out)
AMR Angle 2 read AN pin voltage level function.
void amrangle2_set_cst_pin(amrangle2_t *ctx, uint8_t state)
AMR Angle 2 set cst pin function.
pin_name_t miso
Definition: amrangle2.h:235
pin_name_t mosi
Definition: amrangle2.h:236
err_t amrangle2_init(amrangle2_t *ctx, amrangle2_cfg_t *cfg)
AMR Angle 2 initialization function.
analog_in_t adc
Definition: amrangle2.h:221
digital_out_t cst
Definition: amrangle2.h:214
err_t amrangle2_calibrate_temperature(amrangle2_t *ctx)
AMR Angle 2 calibrate temperature function.
AMR Angle 2 Click context object.
Definition: amrangle2.h:212
err_t amrangle2_default_cfg(amrangle2_t *ctx)
AMR Angle 2 default configuration function.
spi_master_chip_select_polarity_t cs_polarity
Definition: amrangle2.h:248
pin_name_t an
Definition: amrangle2.h:239
uint8_t amrangle2_get_eoc_pin(amrangle2_t *ctx)
AMR Angle 2 get eoc pin function.
digital_in_t eoc
Definition: amrangle2.h:217
err_t amrangle2_read_angle(amrangle2_t *ctx, float *angle)
AMR Angle 2 read angle function.
amrangle2_return_value_t
AMR Angle 2 Click return value data.
Definition: amrangle2.h:260
err_t amrangle2_read_vsin_vcos(amrangle2_t *ctx, float *vsin, float *vcos)
AMR Angle 2 read vsin vcos function.
err_t amrangle2_read_an_pin_value(amrangle2_t *ctx, uint16_t *data_out)
AMR Angle 2 read AN pin value function.
err_t amrangle2_spi_transfer(amrangle2_t *ctx, uint16_t data_in)
AMR Angle 2 spi transfer function.
uint32_t spi_speed
Definition: amrangle2.h:246
pin_name_t cs
Definition: amrangle2.h:238
spi_master_mode_t spi_mode
Definition: amrangle2.h:247
float vcal
Definition: amrangle2.h:224
float vref
Definition: amrangle2.h:251
pin_name_t cst
Definition: amrangle2.h:242
err_t amrangle2_read_temperature(amrangle2_t *ctx, float *temperature)
AMR Angle 2 read temperature function.
void amrangle2_cfg_setup(amrangle2_cfg_t *cfg)
AMR Angle 2 configuration object setup function.