ADCBufCC26XX.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2018, 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  */
268 #ifndef ti_drivers_adc_adcbufcc26xx__include
269 #define ti_drivers_adc_adcbufcc26xx__include
270 
271 #ifdef __cplusplus
272 extern "C" {
273 #endif
274 
275 #include <stdint.h>
276 #include <stdbool.h>
277 
278 #include <ti/drivers/ADCBuf.h>
279 #include <ti/drivers/PIN.h>
283 #include <ti/drivers/Power.h>
285 
286 #include <ti/devices/DeviceFamily.h>
287 #include DeviceFamily_constructPath(driverlib/aux_adc.h)
288 
289 #include <ti/drivers/dpl/HwiP.h>
290 #include <ti/drivers/dpl/ClockP.h>
291 #include <ti/drivers/dpl/SemaphoreP.h>
292 #include <ti/drivers/dpl/SwiP.h>
293 
306 /* Add ADCBufCC26XX_CMD_* macros here */
307 
321 #define ADCBufCC26XX_CMD_ACQUIRE_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 1
322 
336 #define ADCBufCC26XX_CMD_KEEP_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 2
337 
345 #define ADCBufCC26XX_CMD_KEEP_ADC_SEMAPHORE_DISABLE ADCBuf_CMD_RESERVED + 3
346 
352 #define ADCBufCC26XX_CMD_RELEASE_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 4
353 
359 #define ADCBufCC26XX_RESOLUTION 12
360 
361 #define ADCBufCC26XX_BYTES_PER_SAMPLE 2
362 
363 /*
364  * =============================================================================
365  * Constants
366  * =============================================================================
367  */
368 
369 /* ADCBuf function table pointer */
371 
372 
373 /*
374  * =============================================================================
375  * Enumerations
376  * =============================================================================
377  */
378 
393 
403  ADCBufCC26XX_SAMPLING_DURATION_2P7_US = AUXADC_SAMPLE_TIME_2P7_US,
404  ADCBufCC26XX_SAMPLING_DURATION_5P3_US = AUXADC_SAMPLE_TIME_5P3_US,
405  ADCBufCC26XX_SAMPLING_DURATION_10P6_US = AUXADC_SAMPLE_TIME_10P6_US,
406  ADCBufCC26XX_SAMPLING_DURATION_21P3_US = AUXADC_SAMPLE_TIME_21P3_US,
407  ADCBufCC26XX_SAMPLING_DURATION_42P6_US = AUXADC_SAMPLE_TIME_42P6_US,
408  ADCBufCC26XX_SAMPLING_DURATION_85P3_US = AUXADC_SAMPLE_TIME_85P3_US,
409  ADCBufCC26XX_SAMPLING_DURATION_170_US = AUXADC_SAMPLE_TIME_170_US,
410  ADCBufCC26XX_SAMPLING_DURATION_341_US = AUXADC_SAMPLE_TIME_341_US,
411  ADCBufCC26XX_SAMPLING_DURATION_682_US = AUXADC_SAMPLE_TIME_682_US,
412  ADCBufCC26XX_SAMPLING_DURATION_1P37_MS = AUXADC_SAMPLE_TIME_1P37_MS,
413  ADCBufCC26XX_SAMPLING_DURATION_2P73_MS = AUXADC_SAMPLE_TIME_2P73_MS,
414  ADCBufCC26XX_SAMPLING_DURATION_5P46_MS = AUXADC_SAMPLE_TIME_5P46_MS,
415  ADCBufCC26XX_SAMPLING_DURATION_10P9_MS = AUXADC_SAMPLE_TIME_10P9_MS
417 
418 
440  ADCBufCC26XX_FIXED_REFERENCE = AUXADC_REF_FIXED,
441  ADCBufCC26XX_VDDS_REFERENCE = AUXADC_REF_VDDS_REL
443 
444 
445 
446 /*
447  * =============================================================================
448  * Structs
449  * =============================================================================
450  */
451 
459  uint8_t dio;
460  uint8_t compBInput;
462 
472  ADCBufCC26XX_Sampling_Duration samplingDuration;
474  ADCBufCC26XX_Sampling_Mode samplingMode;
476  ADCBufCC26XX_Reference_Source refSource;
494 
515 typedef struct ADCBufCC26XX_HWAttrs{
521  uint32_t swiPriority;
537  uint8_t intPriority;
541  uint8_t gpTimerUnit;
543 
544 
545 
551 typedef struct ADCBufCC26XX_Object{
552  /* ADC control variables */
553  bool isOpen;
558  uint8_t currentChannel;
559  ADCBufCC26XX_Reference_Source refSource;
560  ADCBufCC26XX_Sampling_Mode samplingMode;
561  ADCBufCC26XX_Sampling_Duration samplingDuration;
565  uint16_t *activeSampleBuffer;
567  /* ADC SYS/BIOS objects */
568  HwiP_Struct hwi;
569  SwiP_Struct swi;
570  SemaphoreP_Struct conversionComplete;
574  /* PIN driver state object and handle */
578  /* UDMA driver handle */
581  /* GPTimer driver handle */
584  uint32_t semaphoreTimeout;
585  uint32_t samplingFrequency;
587 
588 /*
589  * =============================================================================
590  * Functions
591  * =============================================================================
592  */
593 
594 
595 #ifdef __cplusplus
596 }
597 #endif
598 
599 #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:389
Definition: ADCBufCC26XX.h:390
Definition: ADCBufCC26XX.h:441
Definition: ADCBufCC26XX.h:403
GPTimerCC26XX_Handle timerHandle
Definition: ADCBufCC26XX.h:582
GPTimer driver implementation for CC26XX/CC13XX.
enum ADCBuf_Recurrence_Mode_ ADCBuf_Recurrence_Mode
ADC trigger mode settings.
ADCBufCC26XX_Reference_Source refSource
Definition: ADCBufCC26XX.h:476
struct ADCBufCC26XX_Object * ADCBufCC26XX_Handle
bool inputScalingEnabled
Definition: ADCBufCC26XX.h:492
bool adcSemaphoreInPossession
Definition: ADCBufCC26XX.h:557
Definition: ADCBufCC26XX.h:407
bool isOpen
Definition: ADCBufCC26XX.h:553
ADCBufCC26XX Hardware Attributes.
Definition: ADCBufCC26XX.h:515
uint32_t gptDMAChannelMask
Definition: ADCBufCC26XX.h:523
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:564
Definition: ADCBufCC26XX.h:414
Power Manager interface.
ADCBuf driver interface.
Definition: ADCBufCC26XX.h:411
enum ADCBuf_Return_Mode_ ADCBuf_Return_Mode
ADC return mode settings.
ADCBufCC26XX_Sampling_Mode samplingMode
Definition: ADCBufCC26XX.h:474
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:521
UDMACC26XX Global configuration.
Definition: UDMACC26XX.h:231
Power manager interface for CC26XX/CC13XX.
uint32_t semaphoreTimeout
Definition: ADCBufCC26XX.h:584
CC26XX specfic extension to ADCBuf_Params.
Definition: ADCBufCC26XX.h:470
PIN_Handle pinHandle
Definition: ADCBufCC26XX.h:576
Definition: ADCBufCC26XX.h:408
uint8_t intPriority
ADC peripheral&#39;s interrupt priority.
Definition: ADCBufCC26XX.h:537
ADCBufCC26XX_Reference_Source refSource
Definition: ADCBufCC26XX.h:559
Definition: ADCBufCC26XX.h:410
bool inputScalingEnabled
Definition: ADCBufCC26XX.h:555
Device-specific pin & GPIO driver for CC26xx family [def].
ADCBufCC26XX_Sampling_Duration samplingDuration
Definition: ADCBufCC26XX.h:472
Definition: ADCBufCC26XX.h:409
struct ADCBufCC26XX_Object ADCBufCC26XX_Object
ADCBufCC26XX Object.
bool keepADCSemaphore
Definition: ADCBufCC26XX.h:556
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:561
ADCBuf_Callback callbackFxn
Definition: ADCBufCC26XX.h:562
ADCBuf_Recurrence_Mode recurrenceMode
Definition: ADCBufCC26XX.h:563
Definition: ADCBufCC26XX.h:412
Definition: ADCBufCC26XX.h:415
Definition: ADCBufCC26XX.h:391
UDMACC26XX driver implementation.
Definition: ADCBufCC26XX.h:406
Definition: ADCBufCC26XX.h:440
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:439
UDMACC26XX_Handle udmaHandle
Definition: ADCBufCC26XX.h:579
Definition: ADCBufCC26XX.h:404
bool conversionInProgress
Definition: ADCBufCC26XX.h:554
SemaphoreP_Struct conversionComplete
Definition: ADCBufCC26XX.h:570
uint8_t currentChannel
Definition: ADCBufCC26XX.h:558
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:539
GPTimer Global configuration.
Definition: GPTimerCC26XX.h:378
underlying data structure for type PIN_State
Definition: PIN.h:707
ADCBufCC26XX_Sampling_Mode samplingMode
Definition: ADCBufCC26XX.h:560
uint8_t gpTimerUnit
Definition: ADCBufCC26XX.h:541
uint8_t dio
Definition: ADCBufCC26XX.h:459
PIN_State pinState
Definition: ADCBufCC26XX.h:575
ADCBuf_Conversion * currentConversion
Definition: ADCBufCC26XX.h:572
struct ADCBufCC26XX_HWAttrs ADCBufCC26XX_HWAttrs
ADCBufCC26XX Hardware Attributes.
SwiP_Struct swi
Definition: ADCBufCC26XX.h:569
uint32_t samplingFrequency
Definition: ADCBufCC26XX.h:585
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:460
Definition: ADCBufCC26XX.h:405
Definition: ADCBufCC26XX.h:413
ADCBufCC26XX Object.
Definition: ADCBufCC26XX.h:551
const ADCBuf_FxnTable ADCBufCC26XX_fxnTable
HwiP_Struct hwi
Definition: ADCBufCC26XX.h:568
Table entry that maps a virtual adc channel to a dio and its corresponding internal analogue signal...
Definition: ADCBufCC26XX.h:458
Generic PIN & GPIO driver.
uint16_t * activeSampleBuffer
Definition: ADCBufCC26XX.h:565
ADCBufCC26XX_Sampling_Duration
Amount of time the ADC spends sampling the analogue input.
Definition: ADCBufCC26XX.h:402
Copyright 2018, Texas Instruments Incorporated