LSAD Function Documentation
Sys_LSAD_Gain_Offset
void Sys_LSAD_Gain_Offset(const volatile struct LSAD_TRIM * i_gain_offset, struct F_LSAD_TRIM * f_gain_offset)
Location: lsad.h:220
Parameters
Direction | Name | Description |
---|---|---|
in |
i_gain_offset |
Gain and offset error from NVR, raw integer form |
out |
f_gain_offset |
Gain and offset error converted to floating point. |
Example Code for Sys_LSAD_Gain_Offset |
// Convert gain and offset values in integer format to floating point values // used in compensation for LSAD measurements. Low frequency and high frequency // values are converted. F_LSAD_TRIM f_gain_offset[1]; Sys_LSAD_Gain_Offset(&(trim_region->temp_sensor), &(f_gain_offset[0])); |
Sys_LSAD_TempSensor_Gain_Offset
void Sys_LSAD_TempSensor_Gain_Offset(const volatile struct TEMP_SENSOR_TRIM * i_gain_offset, struct F_LSAD_TRIM * f_gain_offset)
Location: lsad.h:242
Parameters
Direction | Name | Description |
---|---|---|
in |
i_gain_offset |
Gain and offset error from NVR, raw integer form |
out |
f_gain_offset |
Gain and offset error converted to floating point. |
Example Code for Sys_LSAD_TempSensor_Gain_Offset |
// Convert gain and offset values in integer format to floating point values // used in compensation of measurements for the temperature sensor. Only low // frequency values are converted. F_LSAD_TRIM f_gain_offset[1]; Sys_LSAD_TempSensor_Gain_Offset(&(trim_region->temp_sensor), &(f_gain_offset[0]); |
Sys_LSAD_TrimsInit
void Sys_LSAD_TrimsInit()
Location: lsad.h:257
Example Code for Sys_LSAD_TrimsInit |
// Initialize the LSAD with calibrated trim values. |
Sys_LSAD_ModeConfig
void Sys_LSAD_ModeConfig(lsad_mode_t mode)
Location: lsad.h:264
Parameters
Direction | Name | Description |
---|---|---|
in |
mode |
Either normal (sample all channels) or continuous (sample one channel) |
Example Code for Sys_LSAD_ModeConfig |
// Configure the LSAD to normal mode, where the LSAD converts channels. Sys_LSAD_ModeConfig(LSAD_MODE_NORMAL); |
Sys_LSAD_AlarmConfig
void Sys_LSAD_AlarmConfig(lsad_channel_t channel, uint8_t threshold, uint8_t count)
Location: lsad.h:274
Parameters
Direction | Name | Description |
---|---|---|
in |
channel |
The LSAD channel on which to enable the alarm |
in |
threshold |
The value below which the alarm should be triggered. The values 0-255 are linearly mapped to 0-2 V with a step size of 7.8 mV. |
in |
count |
The number of readings below the threshold needed to trigger the alarm |
Example Code for Sys_LSAD_AlarmConfig |
// Configure the LSAD to trigger the monitor alarm when the voltage on channel 0 // drops below the value encoded in ALARM_THRESHOLD for ALARM_COUNT number of samples. Sys_LSAD_AlarmConfig(LSAD_INPUT_CH0, ALARM_THRESHOLD, ALARM_COUNT); |
Sys_LSAD_InterruptEnable
void Sys_LSAD_InterruptEnable(lsad_channel_t IRQ_channel)
Location: lsad.h:282
Parameters
Direction | Name | Description |
---|---|---|
in |
IRQ_channel |
The channel after which to interrupt. In continuous mode, this is the only channel sampled. |
Example Code for Sys_LSAD_InterruptEnable |
// Enable LSAD interrupt, set to trigger after sampling channel LSAD_IRQ_CHANNEL by default. // It can be configured to a different channel in app.h of the LSAD sample. Sys_LSAD_InterruptEnable(LSAD_IRQ_CHANNEL); |
Sys_LSAD_Start
void Sys_LSAD_Start(lsad_prescale_t prescale)
Location: lsad.h:289
Parameters
Direction | Name | Description |
---|---|---|
in |
prescale |
The prescale setting used to derive the LSAD sampling frequency |
Example Code for Sys_LSAD_Start |
// Start LSAD measurements with the frequency determined by prescale value. Sys_LSAD_Start(LSAD_PRESCALE); |
Sys_LSAD_Stop
void Sys_LSAD_Stop()
Location: lsad.h:295
Example Code for Sys_LSAD_Stop |
// Stop LSAD measurements |
Sys_LSAD_InputConfig
uint32_t Sys_LSAD_InputConfig(lsad_channel_t channel, lsad_io_t pos_io, lsad_io_t neg_io)
Location: lsad.h:306
Parameters
Direction | Name | Description |
---|---|---|
in |
channel |
The LSAD channel to configure |
in |
pos_io |
The signal to connect to the positive input of the channel |
in |
neg_io |
The signal to connect to the negative input of the channel |
Return
Example Code for Sys_LSAD_InputConfig |
// Use LSAD channel 0. // Set LSAD positive source to GPIO13. // Set LSAD negative source to Ground. Sys_LSAD_InputConfig(LSAD_INPUT_CH0, LSAD_GPIO13_CFG, LSAD_GROUND_CFG); |
Sys_LSAD_Special_InputConfig
uint8_t Sys_LSAD_Special_InputConfig(lsad_io_t gpio)
Location: lsad.h:314
Parameters
Direction | Name | Description |
---|---|---|
in |
gpio |
The signal to compare with special LSAD input values |
Return
Example Code for Sys_LSAD_Special_InputConfig |
// Get the positive input configurations of the LSAD. lsad_io_t pos_io = LSAD_GPIO13_CFG; uint8_t pos_lsad_cfg; pos_lsad_cfg = Sys_LSAD_Special_InputConfig(pos_io); |
Sys_LSAD_PreSelectWrite
uint32_t Sys_LSAD_PreSelectWrite(uint8_t cfg, lsad_io_t gpio, lsad_in_t input_type)
Location: lsad.h:326
Parameters
Direction | Name | Description |
---|---|---|
in |
cfg |
The LSAD configuration returned from Sys_LSAD_InputConfig() |
in |
gpio |
The signal to be configured as an LSAD input |
in |
input_type |
Specifies if the signal should be connected to the positive or negative input |
Return
Example Code for Sys_LSAD_PreSelectWrite |
// Set the LSAD pre-selection register to positive input and return the // configuration that should be written to LSAD->INPUT_SEL[channel]. uint32_t pos_sel; pos_sel = Sys_LSAD_PreSelectWrite(pos_lsad_cfg, pos_io, POS_IN); |
Sys_LSAD_GPIO_InputConfig
uint8_t Sys_LSAD_GPIO_InputConfig(lsad_io_t gpio)
Location: lsad.h:335
Parameters
Direction | Name | Description |
---|---|---|
in |
gpio |
The signal to compare with gpio numbers |
Return
Example Code for Sys_LSAD_GPIO_InputConfig |
// Get the GPIO configuration of the specified GPIO (13). lsad_io_t gpio = LSAD_GPIO13_CFG; cfg = Sys_LSAD_GPIO_InputConfig(gpio); |
Sys_LSAD_GetRawData
uint32_t Sys_LSAD_GetRawData(lsad_channel_t channel)
Location: lsad.h:344
Parameters
Direction | Name | Description |
---|---|---|
in |
channel |
The LSAD channel from which to obtain data |
Return
Example Code for Sys_LSAD_GetRawData |
// Sum the incoming LSAD data to be averaged later. static int32_t raw_LSAD_sum[NUM_LSAD_CHANNELS_USED] = {0}; for(uint8_t chn = 0; chn < NUM_LSAD_CHANNELS_USED; chn++) { raw_LSAD_sum[chn] += Sys_LSAD_GetRawData((lsad_channel_t)chn); } |
Sys_LSAD_ConvertToMVUntrimmed
uint32_t Sys_LSAD_ConvertToMVUntrimmed(uint32_t raw_data)
Location: lsad.h:353
Parameters
Direction | Name | Description |
---|---|---|
in |
raw_data |
The value obtained from DATA_TRIM_CH |
Return
Example Code for Sys_LSAD_ConvertToMVUntrimmed |
// Process the averaged data without calibrated trim values. int32_t lsad_mv_raw = Sys_LSAD_ConvertToMVUntrimmed(raw_LSAD_avg); |
Sys_LSAD_ConvertToMVTrimmed
int32_t Sys_LSAD_ConvertToMVTrimmed(uint32_t raw_data)
Location: lsad.h:362
Parameters
Direction | Name | Description |
---|---|---|
in |
raw_data |
The value obtained from DATA_TRIM_CH |
Return
Example Code for Sys_LSAD_ConvertToMVTrimmed |
// Process the averaged data with calbirated trim values. int32_t lsad_mv_calib = Sys_LSAD_ConvertToMVTrimmed(raw_LSAD_avg); |
Sys_LSAD_NewSampleClear
void Sys_LSAD_NewSampleClear()
Location: lsad.h:370
Example Code for Sys_LSAD_NewSampleClear |
// Clear LSAD ready bit, indicating LSAD data has been processed so // the next conversion completion will not cause an overrun. |