Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_spi_master.h"
74 #define ADC20_CMD_NOP 0x00
75 #define ADC20_CMD_REG_READ 0x10
76 #define ADC20_CMD_REG_WRITE 0x08
77 #define ADC20_CMD_SET_BIT 0x18
78 #define ADC20_CMD_CLEAR_BIT 0x20
84 #define ADC20_REG_SYSTEM_STATUS 0x00
85 #define ADC20_REG_GENERAL_CFG 0x01
86 #define ADC20_REG_DATA_CFG 0x02
87 #define ADC20_REG_OSR_CFG 0x03
88 #define ADC20_REG_OPMODE_CFG 0x04
89 #define ADC20_REG_PIN_CFG 0x05
90 #define ADC20_REG_GPIO_CFG 0x07
91 #define ADC20_REG_GPO_DRIVE_CFG 0x09
92 #define ADC20_REG_GPO_VALUE 0x0B
93 #define ADC20_REG_GPI_VALUE 0x0D
94 #define ADC20_REG_SEQUENCE_CFG 0x10
95 #define ADC20_REG_CHANNEL_SEL 0x11
96 #define ADC20_REG_AUTO_SEQ_CH_SEL 0x12
114 #define ADC20_DATA_CFG_FIX_PAT 0x80
115 #define ADC20_DATA_CFG_APPEND_CHANNEL_ID 0x10
116 #define ADC20_DATA_CFG_SPI_MODE_0 0x00
117 #define ADC20_DATA_CFG_SPI_MODE_1 0x01
118 #define ADC20_DATA_CFG_SPI_MODE_2 0x02
119 #define ADC20_DATA_CFG_SPI_MODE_3 0x03
120 #define ADC20_DATA_CFG_SPI_MODE_MASK 0x03
126 #define ADC20_FIXED_CODE 0xA5A0
132 #define ADC20_CHANNEL_0 0x01
133 #define ADC20_CHANNEL_1 0x02
134 #define ADC20_CHANNEL_2 0x04
135 #define ADC20_CHANNEL_3 0x08
136 #define ADC20_CHANNEL_4 0x10
137 #define ADC20_CHANNEL_5 0x20
138 #define ADC20_CHANNEL_6 0x40
139 #define ADC20_CHANNEL_7 0x80
140 #define ADC20_CHANNEL_NONE 0x00
141 #define ADC20_CHANNEL_MASK 0xFF
147 #define ADC20_CHANNEL_ID_0 0
148 #define ADC20_CHANNEL_ID_1 1
149 #define ADC20_CHANNEL_ID_2 2
150 #define ADC20_CHANNEL_ID_3 3
151 #define ADC20_CHANNEL_ID_4 4
152 #define ADC20_CHANNEL_ID_5 5
153 #define ADC20_CHANNEL_ID_6 6
154 #define ADC20_CHANNEL_ID_7 7
155 #define ADC20_CHANNEL_ID_MASK 0x0F
161 #define ADC20_PIN_CFG_ANALOG 0
162 #define ADC20_PIN_CFG_GPIO 1
168 #define ADC20_GPIO_CFG_DIG_INPUT 0
169 #define ADC20_GPIO_CFG_DIG_OUTPUT 1
175 #define ADC20_GPO_DRIVE_CFG_OPEN_DRAIN 0
176 #define ADC20_GPO_DRIVE_CFG_PUSH_PULL 1
182 #define ADC20_GPIO_VALUE_LOW 0
183 #define ADC20_GPIO_VALUE_HIGH 1
189 #define ADC20_OSR_NO_AVERAGING 0x00
190 #define ADC20_OSR_2_SAMPLES 0x01
191 #define ADC20_OSR_4_SAMPLES 0x02
192 #define ADC20_OSR_8_SAMPLES 0x03
193 #define ADC20_OSR_16_SAMPLES 0x04
194 #define ADC20_OSR_32_SAMPLES 0x05
195 #define ADC20_OSR_64_SAMPLES 0x06
196 #define ADC20_OSR_128_SAMPLES 0x07
197 #define ADC20_OSR_MASK 0x07
203 #define ADC20_SEQ_STOP 0x00
204 #define ADC20_SEQ_START 0x10
205 #define ADC20_SEQ_MODE_MANUAL 0x00
206 #define ADC20_SEQ_MODE_AUTO 0x01
207 #define ADC20_SEQ_MODE_OTF 0x02
208 #define ADC20_SEQ_MODE_MASK 0x03
214 #define ADC20_ADC_OFFSET 4
215 #define ADC20_RES_12BIT 0x0FFF
216 #define ADC20_VREF_3V3 3.3f
226 #define ADC20_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
227 #define ADC20_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
245 #define ADC20_MAP_MIKROBUS( cfg, mikrobus ) \
246 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
247 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
248 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
249 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS );
ADC 20 Click context object.
Definition: adc20.h:259
pin_name_t mosi
Definition: adc20.h:275
err_t adc20_set_pin_config(adc20_t *ctx, uint8_t ch_mask, uint8_t pin_cfg)
ADC 20 set pin config function.
err_t adc20_default_cfg(adc20_t *ctx)
ADC 20 default configuration function.
err_t adc20_write_register(adc20_t *ctx, uint8_t reg, uint8_t data_in)
ADC 20 write register function.
err_t adc20_read_data(adc20_t *ctx, uint16_t *data_out)
ADC 20 read data function.
spi_master_mode_t spi_mode
Definition: adc20.h:281
err_t adc20_set_gpio_config(adc20_t *ctx, uint8_t ch_mask, uint8_t gpio_cfg)
ADC 20 set gpio config function.
This file contains SPI specific macros, functions, etc.
err_t adc20_stop_auto_sequence(adc20_t *ctx)
ADC 20 stop auto sequence function.
spi_master_t spi
Definition: adc20.h:261
ADC 20 Click configuration object.
Definition: adc20.h:272
@ ADC20_ERROR
Definition: adc20.h:293
adc20_return_value_t
ADC 20 Click return value data.
Definition: adc20.h:291
uint32_t spi_speed
Definition: adc20.h:280
pin_name_t sck
Definition: adc20.h:276
spi_master_chip_select_polarity_t cs_polarity
Definition: adc20.h:282
err_t adc20_check_communication(adc20_t *ctx)
ADC 20 check communication function.
err_t adc20_read_register(adc20_t *ctx, uint8_t reg, uint8_t *data_out)
ADC 20 read register function.
pin_name_t cs
Definition: adc20.h:277
void adc20_cfg_setup(adc20_cfg_t *cfg)
ADC 20 configuration object setup function.
err_t adc20_read_gpio_value(adc20_t *ctx, uint8_t *gpio_value)
ADC 20 read gpio value function.
err_t adc20_set_gpo_drive_config(adc20_t *ctx, uint8_t ch_mask, uint8_t gpo_drive_cfg)
ADC 20 set gpo drive config function.
@ ADC20_OK
Definition: adc20.h:292
pin_name_t miso
Definition: adc20.h:274
pin_name_t chip_select
Definition: adc20.h:263
err_t adc20_start_auto_sequence(adc20_t *ctx)
ADC 20 start auto sequence function.
err_t adc20_set_gpo_value(adc20_t *ctx, uint8_t ch_mask, uint8_t value)
ADC 20 set gpo value function.
err_t adc20_init(adc20_t *ctx, adc20_cfg_t *cfg)
ADC 20 initialization function.