ADCBufCC26XX.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
228 #ifndef ti_drivers_adc_adcbufcc26xx__include
229 #define ti_drivers_adc_adcbufcc26xx__include
230 
231 #ifdef __cplusplus
232 extern "C" {
233 #endif
234 
235 #include <stdint.h>
236 #include <stdbool.h>
237 
238 #include <ti/drivers/ADCBuf.h>
239 #include <ti/drivers/PIN.h>
243 #include <ti/drivers/Power.h>
245 
246 #include <ti/devices/DeviceFamily.h>
247 #include DeviceFamily_constructPath(driverlib/aux_adc.h)
248 
249 #include <ti/drivers/dpl/HwiP.h>
250 #include <ti/drivers/dpl/ClockP.h>
251 #include <ti/drivers/dpl/SemaphoreP.h>
252 #include <ti/drivers/dpl/SwiP.h>
253 
266 /* Add ADCBufCC26XX_CMD_* macros here */
267 
281 #define ADCBufCC26XX_CMD_ACQUIRE_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 1
282 
296 #define ADCBufCC26XX_CMD_KEEP_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 2
297 
305 #define ADCBufCC26XX_CMD_KEEP_ADC_SEMAPHORE_DISABLE ADCBuf_CMD_RESERVED + 3
306 
312 #define ADCBufCC26XX_CMD_RELEASE_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 4
313 
319 #define ADCBufCC26XX_RESOLUTION 12
320 
321 #define ADCBufCC26XX_BYTES_PER_SAMPLE 2
322 
323 /*
324  * =============================================================================
325  * Constants
326  * =============================================================================
327  */
328 
329 /* ADCBuf function table pointer */
331 
332 
333 /*
334  * =============================================================================
335  * Enumerations
336  * =============================================================================
337  */
338 
353 
363  ADCBufCC26XX_SAMPLING_DURATION_2P7_US = AUXADC_SAMPLE_TIME_2P7_US,
364  ADCBufCC26XX_SAMPLING_DURATION_5P3_US = AUXADC_SAMPLE_TIME_5P3_US,
365  ADCBufCC26XX_SAMPLING_DURATION_10P6_US = AUXADC_SAMPLE_TIME_10P6_US,
366  ADCBufCC26XX_SAMPLING_DURATION_21P3_US = AUXADC_SAMPLE_TIME_21P3_US,
367  ADCBufCC26XX_SAMPLING_DURATION_42P6_US = AUXADC_SAMPLE_TIME_42P6_US,
368  ADCBufCC26XX_SAMPLING_DURATION_85P3_US = AUXADC_SAMPLE_TIME_85P3_US,
369  ADCBufCC26XX_SAMPLING_DURATION_170_US = AUXADC_SAMPLE_TIME_170_US,
370  ADCBufCC26XX_SAMPLING_DURATION_341_US = AUXADC_SAMPLE_TIME_341_US,
371  ADCBufCC26XX_SAMPLING_DURATION_682_US = AUXADC_SAMPLE_TIME_682_US,
372  ADCBufCC26XX_SAMPLING_DURATION_1P37_MS = AUXADC_SAMPLE_TIME_1P37_MS,
373  ADCBufCC26XX_SAMPLING_DURATION_2P73_MS = AUXADC_SAMPLE_TIME_2P73_MS,
374  ADCBufCC26XX_SAMPLING_DURATION_5P46_MS = AUXADC_SAMPLE_TIME_5P46_MS,
375  ADCBufCC26XX_SAMPLING_DURATION_10P9_MS = AUXADC_SAMPLE_TIME_10P9_MS
377 
378 
400  ADCBufCC26XX_FIXED_REFERENCE = AUXADC_REF_FIXED,
401  ADCBufCC26XX_VDDS_REFERENCE = AUXADC_REF_VDDS_REL
403 
404 
405 
406 /*
407  * =============================================================================
408  * Structs
409  * =============================================================================
410  */
411 
419  uint8_t dio;
420  uint8_t compBInput;
422 
432  ADCBufCC26XX_Sampling_Duration samplingDuration;
434  ADCBufCC26XX_Sampling_Mode samplingMode;
436  ADCBufCC26XX_Reference_Source refSource;
454 
475 typedef struct ADCBufCC26XX_HWAttrs{
481  uint32_t swiPriority;
497  uint8_t intPriority;
501  uint8_t gpTimerUnit;
503 
504 
505 
511 typedef struct ADCBufCC26XX_Object{
512  /* ADC control variables */
513  bool isOpen;
518  uint8_t currentChannel;
519  ADCBufCC26XX_Reference_Source refSource;
520  ADCBufCC26XX_Sampling_Mode samplingMode;
521  ADCBufCC26XX_Sampling_Duration samplingDuration;
526  /* ADC SYS/BIOS objects */
527  HwiP_Struct hwi;
528  SwiP_Struct swi;
529  SemaphoreP_Struct conversionComplete;
533  /* PIN driver state object and handle */
537  /* UDMA driver handle */
540  /* GPTimer driver handle */
543  uint32_t semaphoreTimeout;
544  uint32_t samplingFrequency;
546 
547 /*
548  * =============================================================================
549  * Functions
550  * =============================================================================
551  */
552 
553 
554 #ifdef __cplusplus
555 }
556 #endif
557 
558 #endif /* ti_drivers_adc_ADCBufCC26XX__include */
ADCBufCC26XX_Sampling_Mode
Specifies whether the internal reference of the ADC is sourced from the battery voltage or a fixed in...
Definition: ADCBufCC26XX.h:349
Definition: ADCBufCC26XX.h:350
Definition: ADCBufCC26XX.h:401
Definition: ADCBufCC26XX.h:363
GPTimerCC26XX_Handle timerHandle
Definition: ADCBufCC26XX.h:541
GPTimer driver implementation for CC26XX/CC13XX.
enum ADCBuf_Recurrence_Mode_ ADCBuf_Recurrence_Mode
ADC trigger mode settings.
ADCBufCC26XX_Reference_Source refSource
Definition: ADCBufCC26XX.h:436
struct ADCBufCC26XX_Object * ADCBufCC26XX_Handle
bool inputScalingEnabled
Definition: ADCBufCC26XX.h:452
bool adcSemaphoreInPossession
Definition: ADCBufCC26XX.h:517
Definition: ADCBufCC26XX.h:367
bool isOpen
Definition: ADCBufCC26XX.h:513
ADCBufCC26XX Hardware Attributes.
Definition: ADCBufCC26XX.h:475
uint32_t gptDMAChannelMask
Definition: ADCBufCC26XX.h:483
An ADCBuf_Conversion data structure is used with ADCBuf_convert(). It indicates which channel to perf...
Definition: ADCBuf.h:237
ADCBuf_Return_Mode returnMode
Definition: ADCBufCC26XX.h:524
Definition: ADCBufCC26XX.h:374
Power manager interface.
ADCBuf driver interface.
Definition: ADCBufCC26XX.h:371
enum ADCBuf_Return_Mode_ ADCBuf_Return_Mode
ADC return mode settings.
ADCBufCC26XX_Sampling_Mode samplingMode
Definition: ADCBufCC26XX.h:434
uint32_t swiPriority
ADC SWI priority. The higher the number, the higher the priority. The minimum is 0 and the maximum is...
Definition: ADCBufCC26XX.h:481
UDMACC26XX Global configuration.
Definition: UDMACC26XX.h:229
Power manager interface for CC26XX/CC13XX.
uint32_t semaphoreTimeout
Definition: ADCBufCC26XX.h:543
CC26XX specfic extension to ADCBuf_Params.
Definition: ADCBufCC26XX.h:430
PIN_Handle pinHandle
Definition: ADCBufCC26XX.h:535
Definition: ADCBufCC26XX.h:368
uint8_t intPriority
ADC peripheral&#39;s interrupt priority.
Definition: ADCBufCC26XX.h:497
ADCBufCC26XX_Reference_Source refSource
Definition: ADCBufCC26XX.h:519
Definition: ADCBufCC26XX.h:370
bool inputScalingEnabled
Definition: ADCBufCC26XX.h:515
Device-specific pin & GPIO driver for CC26xx family [def].
ADCBufCC26XX_Sampling_Duration samplingDuration
Definition: ADCBufCC26XX.h:432
Definition: ADCBufCC26XX.h:369
struct ADCBufCC26XX_Object ADCBufCC26XX_Object
ADCBufCC26XX Object.
bool keepADCSemaphore
Definition: ADCBufCC26XX.h:516
The definition of an ADCBuf function table that contains the required set of functions to control a s...
Definition: ADCBuf.h:385
ADCBufCC26XX_Sampling_Duration samplingDuration
Definition: ADCBufCC26XX.h:521
ADCBuf_Callback callbackFxn
Definition: ADCBufCC26XX.h:522
ADCBuf_Recurrence_Mode recurrenceMode
Definition: ADCBufCC26XX.h:523
Definition: ADCBufCC26XX.h:372
Definition: ADCBufCC26XX.h:375
Definition: ADCBufCC26XX.h:351
UDMACC26XX driver implementation.
Definition: ADCBufCC26XX.h:366
Definition: ADCBufCC26XX.h:400
struct ADCBufCC26XX_ParamsExtension ADCBufCC26XX_ParamsExtension
CC26XX specfic extension to ADCBuf_Params.
ADCBufCC26XX_Reference_Source
Specifies whether the internal reference of the ADC is sourced from the battery voltage or a fixed in...
Definition: ADCBufCC26XX.h:399
UDMACC26XX_Handle udmaHandle
Definition: ADCBufCC26XX.h:538
Definition: ADCBufCC26XX.h:364
bool conversionInProgress
Definition: ADCBufCC26XX.h:514
SemaphoreP_Struct conversionComplete
Definition: ADCBufCC26XX.h:529
uint8_t currentChannel
Definition: ADCBufCC26XX.h:518
struct ADCBufCC26XX_AdcChannelLutEntry ADCBufCC26XX_AdcChannelLutEntry
Table entry that maps a virtual adc channel to a dio and its corresponding internal analogue signal...
ADCBufCC26XX_AdcChannelLutEntry const * adcChannelLut
Definition: ADCBufCC26XX.h:499
GPTimer Global configuration.
Definition: GPTimerCC26XX.h:377
underlying data structure for type PIN_State
Definition: PIN.h:680
ADCBufCC26XX_Sampling_Mode samplingMode
Definition: ADCBufCC26XX.h:520
uint8_t gpTimerUnit
Definition: ADCBufCC26XX.h:501
uint8_t dio
Definition: ADCBufCC26XX.h:419
PIN_State pinState
Definition: ADCBufCC26XX.h:534
ADCBuf_Conversion * currentConversion
Definition: ADCBufCC26XX.h:531
struct ADCBufCC26XX_HWAttrs ADCBufCC26XX_HWAttrs
ADCBufCC26XX Hardware Attributes.
SwiP_Struct swi
Definition: ADCBufCC26XX.h:528
uint32_t samplingFrequency
Definition: ADCBufCC26XX.h:544
void(* ADCBuf_Callback)(ADCBuf_Handle handle, ADCBuf_Conversion *conversion, void *completedADCBuffer, uint32_t completedChannel)
The definition of a callback function used by the ADC driver when used in ADCBuf_RETURN_MODE_CALLBACK...
Definition: ADCBuf.h:251
uint8_t compBInput
Definition: ADCBufCC26XX.h:420
Definition: ADCBufCC26XX.h:365
Definition: ADCBufCC26XX.h:373
ADCBufCC26XX Object.
Definition: ADCBufCC26XX.h:511
const ADCBuf_FxnTable ADCBufCC26XX_fxnTable
HwiP_Struct hwi
Definition: ADCBufCC26XX.h:527
Table entry that maps a virtual adc channel to a dio and its corresponding internal analogue signal...
Definition: ADCBufCC26XX.h:418
Generic PIN & GPIO driver.
ADCBufCC26XX_Sampling_Duration
Amount of time the ADC spends sampling the analogue input.
Definition: ADCBufCC26XX.h:362
Copyright 2017, Texas Instruments Incorporated