Loading...
Searching...
No Matches
cc26x2_cc13x2_aux.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 Leon George
3 * Copyright (C) 2018 Anton Gerasimov
4 *
5 * This file is subject to the terms and conditions of the GNU Lesser General
6 * Public License v2.1. See the file LICENSE in the top level directory for more
7 * details.
8 */
17#ifndef CC26X2_CC13X2_AUX_H
18#define CC26X2_CC13X2_AUX_H
19
20#include <stdbool.h>
21
22#include "cc26xx_cc13xx.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
31typedef struct {
32 reg32_t IOMODE;
33 reg32_t GPIODIE;
35 reg32_t GPIODOUT;
36 reg32_t GPIODIN;
37 reg32_t GPIODOUTSET;
38 reg32_t GPIODOUTCLR;
39 reg32_t GPIODOUTTGL;
51
59#define AUX_AIODIO0_BASE (PERIPH_BASE + 0xCC000)
63#define AUX_AIODIO1_BASE (PERIPH_BASE + 0xCD000)
67#define AUX_AIODIO2_BASE (PERIPH_BASE + 0xCE000)
71#define AUX_AIODIO3_BASE (PERIPH_BASE + 0xCF000)
77#define AUX_AIODIO0 ((aux_aiodio_regs_t *) (AUX_AIODIO0_BASE))
81#define AUX_AIODIO1 ((aux_aiodio_regs_t *) (AUX_AIODIO1_BASE))
85#define AUX_AIODIO2 ((aux_aiodio_regs_t *) (AUX_AIODIO2_BASE))
89#define AUX_AIODIO3 ((aux_aiodio_regs_t *) (AUX_AIODIO3_BASE))
90
94typedef struct {
95 reg32_t CTL;
96 reg32_t STAT;
97 reg32_t RESULT;
98 reg32_t SATCFG;
99 reg32_t TRIGSRC;
100 reg32_t TRIGCNT;
101 reg32_t TRIGCNTLOAD;
102 reg32_t TRIGCNTCFG;
103 reg32_t PRECTL;
106
114#define AUX_TDC_BASE (PERIPH_BASE + 0xC4000)
120#define AUX_TDC ((aux_tdc_regs_t *) (AUX_TDC_BASE))
121
154
162#define AUX_EVCTL_BASE (PERIPH_BASE + 0xC5000)
168#define AUX_EVCTL ((aux_evctl_regs_t *) (AUX_EVCTL_BASE))
169
219
224#define AUX_SYSIF_OPMODEREQ_REQ_PDLP 0x00000003
225#define AUX_SYSIF_OPMODEREQ_REQ_PDA 0x00000002
226#define AUX_SYSIF_OPMODEREQ_REQ_LP 0x00000001
227#define AUX_SYSIF_OPMODEREQ_REQ_A 0x00000000
237#define AUX_SYSIF_BASE (PERIPH_BASE + 0xC6000)
243#define AUX_SYSIF ((aux_sysif_regs_t *) (AUX_SYSIF_BASE))
244
257void aux_sysif_opmode_change(uint32_t target_opmode);
273
281#define AUX_TIMER01_BASE (PERIPH_BASE + 0xC7000)
287#define AUX_TIMER01 ((aux_timer01_regs_t *) (AUX_TIMER01_BASE))
288
318
326#define AUX_TIMER2_BASE (PERIPH_BASE + 0xC3000)
332#define AUX_TIMER2 ((aux_timer2_regs_t *) (AUX_TIMER2_BASE))
333
337typedef struct {
338 reg32_t SMPH0;
339 reg32_t SMPH1;
340 reg32_t SMPH2;
341 reg32_t SMPH3;
342 reg32_t SMPH4;
343 reg32_t SMPH5;
344 reg32_t SMPH6;
345 reg32_t SMPH7;
346 reg32_t AUTOTAKE;
348
356#define AUX_SMPH_BASE (PERIPH_BASE + 0xC8000)
362#define AUX_SMPH ((aux_smph_regs_t *) (AUX_SMPH_BASE))
363
367typedef struct {
368 reg32_t __reserved1[0x4];
369 reg32_t ADCCTL;
370 reg32_t ADCFIFOSTAT;
371 reg32_t ADCFIFO;
372 reg32_t ADCTRIG;
373 reg32_t ISRCCTL;
374 reg32_t __reserved2[0x3];
383
391#define AUX_ANAIF_BASE (PERIPH_BASE + 0xC9000)
397#define AUX_ANAIF ((aux_anaif_regs_t *) (AUX_ANAIF_BASE))
398
402typedef struct {
403 reg8_t MUX0;
404 reg8_t MUX1;
405 reg8_t MUX2;
406 reg8_t MUX3;
407 reg8_t ISRC;
408 reg8_t COMP;
409 reg8_t MUX4;
410 reg8_t ADC0;
411 reg8_t ADC1;
412 reg8_t ADCREF0;
413 reg8_t ADCREF1;
414 reg8_t __reserved1[0x3];
417
436
441#define ADI_4_AUX_COMP_LPM_BIAS_WIDTH_TRIM_m 0x00000038
442#define ADI_4_AUX_COMP_LPM_BIAS_WIDTH_TRIM_s 3
443#define ADI_4_AUX_LPMBIAS_LPM_TRIM_IOUT_m 0x0000003F
444#define ADI_4_AUX_LPMBIAS_LPM_TRIM_IOUT_s 0
454#define ADI_4_AUX_BASE (PERIPH_BASE + 0xCB000)
458#define ADI_4_AUX_BASE_M8 (ADI_4_AUX_BASE + ADI_MASK8B)
464#define ADI_4_AUX ((adi_4_aux_regs_t *) (ADI_4_AUX_BASE))
468#define ADI_4_AUX_M8 ((adi_4_aux_regs_m8_t *) (ADI_4_AUX_BASE_M8))
469
473#define ADDI_SEM AUX_SMPH->SMPH0
474
475#ifdef __cplusplus
476} /* end extern "C" */
477#endif
478
479#endif /* CC26X2_CC13X2_AUX_H */
480
void aux_sysif_opmode_change(uint32_t target_opmode)
AUX_SYSIF functions.
CC26xx, CC13xx definitions.
volatile uint32_t reg32_t
Unsigned 32-bit register type.
reg16_t reg8_m8_t
Masked 8-bit register.
volatile uint8_t reg8_t
Unsigned 8-bit register type.
ADI_4_AUX registers using masked 8-bit access.
reg8_m8_t MUX0
Multiplexer 0.
reg8_m8_t ADCREF1
ADC Reference 1.
reg8_m8_t ISRC
Current Source.
reg8_m8_t ADC1
ADC Control 1.
reg8_m8_t MUX1
Multiplexer 1.
reg8_m8_t LPMBIAS
Internal.
reg8_m8_t ADC0
ADC Control 0.
reg8_m8_t COMP
Comparator.
reg8_m8_t MUX2
Multiplexer 2.
reg8_m8_t ADCREF0
ADC Reference 0.
reg8_m8_t MUX4
Multiplexer 4.
reg8_m8_t MUX3
Multiplexer 3.
ADI_4_AUX registers.
reg8_t LPMBIAS
Internal.
AUX_AIODIO registers.
reg32_t IO1PSEL
I/O 1 peripheral select.
reg32_t IO2PSEL
I/O 2 peripheral select.
reg32_t IO5PSEL
I/O 5 peripheral select.
reg32_t IOMODEL
Input output mode low.
reg32_t IO6PSEL
I/O 6 peripheral select.
reg32_t IO0PSEL
I/O 0 peripheral select.
reg32_t IO3PSEL
I/O 3 peripheral select.
reg32_t IO4PSEL
I/O 4 peripheral select.
reg32_t IOPOE
I/O peripheral output enable.
reg32_t IO7PSEL
I/O 7 peripheral select.
reg32_t IOMODEH
Input output mode high.
AUX_ANAIF registers.
reg32_t DACSMPLCTL
DAC Sample Control.
reg32_t DACSMPLCFG0
DAC Sample Configuration 0.
reg32_t DACSMPLCFG1
DAC Sample Configuration 1.
reg32_t DACSTAT
DAC Status.
reg32_t DACVALUE
DAC Value.
reg32_t DACCTL
DAC Control.
reg32_t LPMBIASCTL
Low-Power Mode Bias Control.
AUX_EVCTL registers.
reg32_t EVSTAT1L
Event Status 1 Low.
reg32_t EVSTAT0L
Event Status 0 Low.
reg32_t DMACTL
Direct Memory Access Control.
reg32_t EVSTAT0H
Event Status 0 High.
reg32_t EVTOMCUFLAGS
Events to MCU Flags.
reg32_t EVSTAT2H
Event Status 2 High.
reg32_t COMBEVTOMCUMASK
Combined Event To MCU Mask.
reg32_t EVOBSCFG
Event Observation Configuration.
reg32_t SCEWEVCFG0
Sensor Controller Engine Wait Event Configuration 0.
reg32_t EVSTAT3L
Event Status 3 Low.
reg32_t __reserved1
Reserved.
reg32_t EVSTAT0
Event Status 0.
reg32_t EVTOMCUFLAGSCLR
Events To MCU Flags Clear.
reg32_t EVTOMCUPOL
Event To MCU Polarity.
reg32_t PROGDLY
Programmable Delay.
reg32_t EVTOAONPOL
Events To AON Polarity.
reg32_t SCEWEVCFG1
Sensor Controller Engine Wait Event Configuration 1.
reg32_t EVSTAT2
Event Status 2.
reg32_t EVTOAONFLAGS
Events To AON Flags.
reg32_t EVSTAT2L
Event Status 2 Low.
reg32_t EVSTAT3
Event Status 3.
reg32_t MANUAL
Manual.
reg32_t EVSTAT1H
Event Status 1 High.
reg32_t SWEVSET
Software Event Set.
reg32_t EVTOAONFLAGSCLR
Events To AON Clear.
reg32_t EVSTAT3H
Event Status 3 High.
reg32_t EVSTAT1
Event Status 1.
AUX_SMPH registers.
AUX_SYSIF registers.
reg32_t RTCSUBSECINC1
Real Time Counter Sub Second Increment 1.
reg32_t PEROPRATE
Peripheral Operational Rate.
reg32_t VECCFG3
Vector Configuration 3.
reg32_t VECCFG0
Vector Configuration 0.
reg32_t VECCFG1
Vector Configuration 1.
reg32_t BATMONBAT
AON_BATMON Battery Voltage Value.
reg32_t TIMER2CLKSTAT
AUX_TIMER2 Clock Status.
reg32_t EVSYNCRATE
Event Synchronization Rate.
reg32_t TIMERHALT
Timer Halt.
reg32_t VECCFG7
Vector Configuration 7.
reg32_t TIMER2CLKSWITCH
AUX_TIMER2 Clock Switch.
reg32_t PROGWU3CFG
Programmable Wakeup 3 Configuration.
reg32_t BATMONTEMP
AON_BATMON Temperature Value.
reg32_t RECHARGETRIG
VDDR Recharge Trigger.
reg32_t TIMER2DBGCTL
AUX_TIMER2 Debug Control.
reg32_t RTCSUBSECINC0
Real Time Counter Sub Second Increment 0.
reg32_t PROGWU1CFG
Programmable Wakeup 1 Configuration.
reg32_t TIMER2CLKCTL
AUX_TIMER2 Clock Control.
reg32_t TDCREFCLKCTL
TDC Reference Clock Control.
reg32_t RTCSEC
Real Time Counter Second.
reg32_t TIMER2BRIDGE
AUX_TIMER2 Bridge.
reg32_t OPMODEREQ
Operational Mode Request.
reg32_t __reserved2
Reserved.
reg32_t TDCCLKCTL
TDC Counter Clock Control.
reg32_t RTCSUBSECINCCTL
Real Time Counter Sub Second Increment Control.
reg32_t RTCSUBSEC
Real Time Counter Sub-Second.
reg32_t SWPWRPROF
Software Power Profiler.
reg32_t RTCEVCLR
AON_RTC Event Clear.
reg32_t VECCFG4
Vector Configuration 4.
reg32_t WUGATE
Wakeup Gate.
reg32_t OPMODEACK
Operational Mode Acknowledgement.
reg32_t PROGWU0CFG
Programmable Wakeup 0 Configuration.
reg32_t RECHARGEDET
VDDR Recharge Detection.
reg32_t VECCFG6
Vector Configuration 6.
reg32_t SWWUTRIG
Software Wakeup Triggers.
reg32_t CLKSHIFTDET
Clock Shift Detection.
reg32_t ADCCLKCTL
ADC Clock Control.
reg32_t __reserved1
Reserved.
reg32_t PROGWU2CFG
Programmable Wakeup 2 Configuration.
reg32_t WUFLAGSCLR
Wakeup Flags Clear.
reg32_t WUFLAGS
Wakeup Flags.
reg32_t VECCFG2
Vector Configuration 2.
reg32_t VECCFG5
Vector Configuration 5.
AUX_TDC registers.
reg32_t PRECNTR
Prescaler counter.
AUX_TIMER01 registers.
reg32_t T1CTL
Timer 1 Control.
reg32_t T0CNTR
Timer 0 Counter.
reg32_t T1CFG
Timer 1 Configuration.
reg32_t T1CNTR
Timer 0 Counter.
reg32_t T0CTL
Timer 0 Control.
reg32_t T0CFG
Timer 0 Configuration.
reg32_t T1TARGET
Timer 1 Target.
reg32_t T0TARGET
Timer 0 Target.
AUX_TIMER2 registers.
reg32_t CH3EVCFG
Timer 2 Channel 3 Event Configuration.
reg32_t CH1CC
Timer 2 Channel 1 Capture Compare.
reg32_t CH0CCFG
Timer 2 Channel 0 Capture Configuration.
reg32_t CH0CC
Timer 2 Channel 0 Capture Compare.
reg32_t CH2CC
Timer 2 Channel 2 Capture Compare.
reg32_t PRECFG
Timer 2 Prescaler Config.
reg32_t CH1CCFG
Timer 2 Channel 1 Capture Configuration.
reg32_t CH1EVCFG
Timer 2 Channel 1 Event Configuration.
reg32_t CH3PCC
Timer 2 Channel 3 Pipeline Capture Compare.
reg32_t TARGET
Timer 2 Target.
reg32_t CH2CCFG
Timer 2 Channel 2 Capture Configuration.
reg32_t CH2EVCFG
Timer 2 Channel 2 Event Configuration.
reg32_t SHDWTARGET
Timer 2 Shadow Target.
reg32_t CH3CCFG
Timer 2 Channel 3 Capture Configuration.
reg32_t CTL
Timer 2 Control.
reg32_t CH0EVCFG
Timer 2 Channel 0 Event Configuration.
reg32_t CH2PCC
Timer 2 Channel 2 Pipeline Capture Compare.
reg32_t EVCTL
Timer 2 Event Control.
reg32_t CH3CC
Timer 2 Channel 3 Capture Compare.
reg32_t CH0PCC
Timer 2 Channel 0 Pipeline Capture Compare.
reg32_t CH1PCC
Timer 2 Channel 1 Pipeline Capture Compare.
reg32_t CNTR
Timer 2 Counter.
reg32_t PULSETRIG
Timer 2 Pulse Trigger.