Data Structures | |
| struct | CHAN_SETTINGS_T |
| union | tr_sadc_ana_set0_s |
| union | tr_sadc_ana_set1_s |
| struct | ADC_REGISTERS_T |
| the struct we use so we can address registers using field names More... | |
| union | tr_aux_comp_ana_ctl_s |
| struct | AUX_COMPARATOR_REGISTERS_T |
| struct | tr_hal_adc_settings_t |
Typedefs | |
| typedef union tr_sadc_ana_set0_s | tr_sadc_ana_set0_t |
| typedef union tr_sadc_ana_set1_s | tr_sadc_ana_set1_t |
| typedef union tr_aux_comp_ana_ctl_s | tr_aux_comp_ana_ctl_t |
| typedef void(* | tr_hal_adc_event_callback_t) (uint32_t raw_result, uint32_t converted_result, uint32_t event_bitmask, uint32_t int_status) |
| #define ADC_BURST_REG_DISABLE_BURST 0x00000000 |
| #define ADC_BURST_REG_ENABLE_BURST 0x80000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_0p3_uS 0x00000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_12_uS 0x06000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_16_uS 0x07000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_1_uS 0x01000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_2_uS 0x02000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_3_uS 0x03000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_4_uS 0x04000000 |
| #define ADC_CONFIG_REG_AQUISITION_TIME_8_uS 0x05000000 |
| #define ADC_CONFIG_REG_CLEAR_VALUE 0x240000FF |
| #define ADC_CONFIG_REG_DEFAULT_GAIN 0x00001400 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_0p3_uS 0x00000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_12_uS 0x60000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_16_uS 0x70000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_1_uS 0x10000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_2_uS 0x20000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_3_uS 0x30000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_4_uS 0x40000000 |
| #define ADC_CONFIG_REG_END_DELAY_TIME_8_uS 0x50000000 |
| #define ADC_CONFIG_REG_MAX_GAIN_SETTING 63 |
| #define ADC_CONFIG_REG_N_CHAN_PULL_HIGH 0x00040000 |
| #define ADC_CONFIG_REG_N_CHAN_PULL_LOW 0x00080000 |
| #define ADC_CONFIG_REG_N_CHAN_PULL_NONE 0x00000000 |
| #define ADC_CONFIG_REG_N_CHAN_TO_GND 0x00800000 |
| #define ADC_CONFIG_REG_N_CHAN_TO_VDD 0x00400000 |
| #define ADC_CONFIG_REG_N_CHAN_VCM_VOLTAGE 0x000C0000 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_0 0x00000000 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_1 0x00000010 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_2 0x00000020 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_3 0x00000030 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_4 0x00000040 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_5 0x00000050 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_6 0x00000060 |
| #define ADC_CONFIG_REG_N_CHANNEL_AIN_7 0x00000070 |
| #define ADC_CONFIG_REG_N_CHANNEL_BATT_VOLT 0x000000A0 |
| #define ADC_CONFIG_REG_N_CHANNEL_NONE 0x000000F0 |
| #define ADC_CONFIG_REG_N_CHANNEL_TEMP_SENSOR 0x00000080 |
| #define ADC_CONFIG_REG_P_CHAN_PULL_HIGH 0x00010000 |
| #define ADC_CONFIG_REG_P_CHAN_PULL_LOW 0x00020000 |
| #define ADC_CONFIG_REG_P_CHAN_PULL_NONE 0x00000000 |
| #define ADC_CONFIG_REG_P_CHAN_TO_GND 0x00200000 |
| #define ADC_CONFIG_REG_P_CHAN_TO_VDD 0x00100000 |
| #define ADC_CONFIG_REG_P_CHAN_VCM_VOLTAGE 0x00030000 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_0 0x00000000 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_1 0x00000001 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_2 0x00000002 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_3 0x00000003 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_4 0x00000004 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_5 0x00000005 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_6 0x00000006 |
| #define ADC_CONFIG_REG_P_CHANNEL_AIN_7 0x00000007 |
| #define ADC_CONFIG_REG_P_CHANNEL_BATT_VOLT 0x0000000A |
| #define ADC_CONFIG_REG_P_CHANNEL_NONE 0x0000000F |
| #define ADC_CONFIG_REG_P_CHANNEL_TEMP_SENSOR 0x00000008 |
| #define ADC_CONFIG_REG_PULL_NONE 0x00000000 |
| #define ADC_CONFIG_REG_PULL_VCM_MODE 0x000F0000 |
| #define ADC_CONFIG_REG_SELECT_REF_IN 0x00004000 |
| #define ADC_DMASET_REG_1_BYTE_FORMAT 0x20 |
| #define ADC_DMASET_REG_2_BYTE_FORMAT 0x10 |
| #define ADC_DMASET_REG_4_BYTE_FORMAT 0x00 |
| #define ADC_DMASET_REG_LOAD_ADDR_ON_DMA_RESET 0x01 |
| #define ADC_DMASET_REG_LOAD_ADDR_ON_DMA_START 0x00 |
| #define ADC_ENDMA_REG_ENABLE_DMA 0x01 |
| #define ADC_ENDMA_REG_RESET_DMA 0x01 |
| #define ADC_REG_ENABLE_ADC_DISABLE 0x000 |
| #define ADC_REG_ENABLE_ADC_ENABLE 0x001 |
| #define ADC_REG_ENABLE_CLK_FREE 0x100 |
| #define ADC_REG_ENABLE_LDO_ENABLE 0x04 |
| #define ADC_REG_ENABLE_VGA_ENABLE 0x02 |
| #define ADC_REG_RESET_ADC 0x001 |
| #define ADC_REG_RESET_FIFO 0x100 |
| #define ADC_REG_SAMPLE_CALIBRATION_MASK 0x0FFF0000 |
| #define ADC_REG_SAMPLE_ENABLE_MANUAL_MODE1 0x4000 |
| #define ADC_REG_SAMPLE_ENABLE_MANUAL_MODE2 0x8000 |
| #define ADC_REG_SAMPLE_MSB_BIT_INVERSION 0x2000 |
| #define ADC_REG_SAMPLE_OUTPUT_RESOLUTION_10_BIT 0x01 |
| #define ADC_REG_SAMPLE_OUTPUT_RESOLUTION_12_BIT 0x02 |
| #define ADC_REG_SAMPLE_OUTPUT_RESOLUTION_14_BIT 0x03 |
| #define ADC_REG_SAMPLE_OUTPUT_RESOLUTION_8_BIT 0x00 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_0 0x00 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_1 0x10 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_2 0x20 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_3 0x30 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_4 0x40 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_5 0x50 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_6 0x60 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_7 0x70 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_8 0x80 |
| #define ADC_REG_SAMPLE_SELECT_CHANNEL_9 0x90 |
| #define ADC_REG_SAMPLE_VALUE_BYPASS 0x1000 |
| #define ADC_REG_START_ADC 0x01 |
| #define ADC_REG_TIMER_CLOCK_DIV_MASK 0xFFFF0000 |
| #define ADC_REG_TIMER_CLOCK_DIV_SHIFT 16 |
| #define ADC_REG_TIMER_DEBUG_MASK 0x78 |
| #define ADC_REG_TIMER_FALLING_EDGE 0x04 |
| #define ADC_REG_TIMER_RATE_DEPENDS_ON_SOFTWARE 0x00 |
| #define ADC_REG_TIMER_RATE_DEPENDS_ON_TIMER 0x01 |
| #define ADC_REG_TIMER_RISING_EDGE 0x00 |
| #define ADC_REG_TIMER_USE_SLOW_CLOCK 0x02 |
| #define ADC_REG_TIMER_USE_SYSTEM_CLOCK 0x00 |
| #define ADC_REGISTERS ((ADC_REGISTERS_T *) CHIP_MEMORY_MAP_ADC_BASE) |
| #define ADC_THRESHHOLD_HIGH_DEFAULT 0x3FFF0000 |
| #define ADC_THRESHHOLD_LOW_DEFAULT 0x00000000 |
| #define ADC_VALID_PIN_CHOICE1 TR_HAL_ADC_AIO0 |
| #define ADC_VALID_PIN_CHOICE2 TR_HAL_ADC_AIO1 |
| #define ADC_VALID_PIN_CHOICE3 TR_HAL_ADC_AIO2 |
| #define ADC_VALID_PIN_CHOICE4 TR_HAL_ADC_AIO4 |
| #define ADC_VALID_PIN_CHOICE5 TR_HAL_ADC_AIO5 |
| #define ADC_VALID_PIN_CHOICE6 TR_HAL_ADC_AIO6 |
| #define ADC_VALID_PIN_CHOICE7 TR_HAL_ADC_AIO7 |
| #define AUX_COMP_REGISTERS ((AUX_COMPARATOR_REGISTERS_T *) CHIP_MEMORY_MAP_AUX_COMPARATOR_BASE) |
| #define CHIP_MEMORY_MAP_ADC_BASE (0x4002F000UL) |
section 2.2 of the data sheet explains the Memory map this gives the base address for how to write the I2C registers the chip registers are how the software interacts with the I2C chip peripheral. We create a struct below that addresses the individual registers. This makes it so we can use this base address and a struct field to read or write a chip register
| #define CHIP_MEMORY_MAP_AUX_COMPARATOR_BASE (0x4001E000UL) |
| #define DEFAULT_ADC_PIN ADC_VALID_PIN_CHOICE1 |
| #define DEFAULT_ADC_SINGLE_ENDED_CONFIG |
default values for a single ended (one pin) ADC that fires once and then when start API is called. Will call the event_handler_fx when the result is ready
| #define MAX_ADC_CHANNEL_ID ADC_CHANNEL_6_ID |
| #define TR_ADC_ENABLE_AIO0 0x01UL |
| #define TR_ADC_ENABLE_AIO1 0x02UL |
| #define TR_ADC_ENABLE_AIO2 0x04UL |
| #define TR_ADC_ENABLE_AIO4 0x10UL |
| #define TR_ADC_ENABLE_AIO5 0x20UL |
| #define TR_ADC_ENABLE_AIO6 0x40UL |
| #define TR_ADC_ENABLE_AIO7 0x80UL |
| #define TR_HAL_ADC_AIO0 21 |
valid pins for ADC we use pin 21 as the default this is the first of 7 pins that are available (21, 22, 23, 28, 29, 30, 31)
| #define TR_HAL_ADC_AIO1 22 |
| #define TR_HAL_ADC_AIO2 23 |
| #define TR_HAL_ADC_AIO4 28 |
| #define TR_HAL_ADC_AIO5 29 |
| #define TR_HAL_ADC_AIO6 30 |
| #define TR_HAL_ADC_AIO7 31 |
| #define TR_HAL_ADC_CHANNEL_NONE 0xFF |
| #define TR_HAL_ADC_DEFAULT_GAIN 6 |
ADC gain
| #define TR_HAL_ADC_EVENT_ALL_CH_DONE 0x100 |
| #define TR_HAL_ADC_EVENT_CH_0_RESULT 0x001 |
| #define TR_HAL_ADC_EVENT_CH_1_RESULT 0x002 |
| #define TR_HAL_ADC_EVENT_CH_2_RESULT 0x004 |
| #define TR_HAL_ADC_EVENT_CH_3_RESULT 0x008 |
| #define TR_HAL_ADC_EVENT_CH_4_RESULT 0x010 |
| #define TR_HAL_ADC_EVENT_CH_5_RESULT 0x020 |
| #define TR_HAL_ADC_EVENT_CH_6_RESULT 0x040 |
| #define TR_HAL_ADC_EVENT_CH_7_RESULT 0x080 |
| #define TR_HAL_ADC_EVENT_DMA 0x200 |
| #define TR_HAL_ADC_INTERRUPT_ALL 0x0FFFFF1D |
| #define TR_HAL_ADC_INTERRUPT_BASE 0x0000001D |
| #define TR_HAL_ADC_INTERRUPT_CHAN_0 0x0040000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_1 0x0080000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_2 0x0100000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_3 0x0200000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_4 0x0400000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_5 0x0800000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_6 0x1000000 |
| #define TR_HAL_ADC_INTERRUPT_CHAN_7 0x2000000 |
| #define TR_HAL_ADC_INTERRUPT_DMA 0x0000001 |
| #define TR_HAL_ADC_INTERRUPT_DONE 0x0000004 |
| #define TR_HAL_ADC_INTERRUPT_HIGH_THRESH 0x0FFC0000 |
| #define TR_HAL_ADC_INTERRUPT_LOW_THRESH 0x0003FF00 |
| #define TR_HAL_ADC_INTERRUPT_MODE_DONE 0x0000010 |
| #define TR_HAL_ADC_INTERRUPT_VALID 0x0000008 |
| #define TR_HAL_ADC_MAX_CLOCK_DIVISOR 65536 |
| #define TR_HAL_ADC_MIN_CLOCK_DIVISOR 3 |
| #define TR_HAL_ADC_R0_RESULT_MASK 0x00003FFF |
| #define TR_HAL_ADC_R1_RESULT_MASK 0x00000FFF |
| #define TR_HAL_ADC_R2_RESULT_MASK 0x00000FFF |
| #define TR_HAL_ADC_THRESH_HIGH_DEFAULT 0x0003 |
| #define TR_HAL_ADC_THRESH_LOW_DEFAULT 0x0000 |
ADC threshholds
| #define TR_HAL_NUM_ADC 7 |
| typedef union tr_aux_comp_ana_ctl_s tr_aux_comp_ana_ctl_t |
for AUX COMP register at addr 0x00
| typedef void(* tr_hal_adc_event_callback_t) (uint32_t raw_result, uint32_t converted_result, uint32_t event_bitmask, uint32_t int_status) |
prototype for callback from the Trident HAL to the app when an event happens
| typedef union tr_sadc_ana_set0_s tr_sadc_ana_set0_t |
this is taken from the chip sample code and is needed to setup the analog registers of the ADC
| typedef union tr_sadc_ana_set1_s tr_sadc_ana_set1_t |
| enum tr_hal_adc_clock_t |
| enum tr_hal_adc_mode_t |
| enum tr_hal_time_t |