RTOS_MSPM0  1.1
ECE445M starter code
Macros | Functions
ADC.h File Reference

Initialize 12-bit ADC0 and/or ADC1. More...

#include <ti/devices/msp/msp.h>
#include <stdint.h>

Go to the source code of this file.

Macros

#define ADCVREF_INT   0x200
 using ADCVREF_INT means choose internal 2.5V reference for accuracy
 
#define ADCVREF_EXT   0x100
 using ADCVREF_EXT means choose external reference not tested
 
#define ADCVREF_VDDA   0x000
 using ADCVREF_VDDA means choose power line 3.3V reference for 0 to 3.3V range
 

Functions

void ADC0_Init (uint32_t channel, uint32_t reference)
 Initialize 12-bit ADC0. More...
 
uint32_t ADC0_In (void)
 Trigger ADC measurement and wait for result. More...
 
void ADC1_Init (uint32_t channel, uint32_t reference)
 Initialize 12-bit ADC0. More...
 
uint32_t ADC1_In (void)
 Trigger ADC measurement and wait for result. More...
 
void ADC_Init (ADC12_Regs *adc12, uint32_t channel, uint32_t reference)
 Initialize 12-bit ADC0. More...
 
uint32_t ADC_In (ADC12_Regs *adc12)
 Trigger ADC measurement and wait for result. More...
 
void ADC_InitDual (ADC12_Regs *adc12, uint32_t channel1, uint32_t channel2, uint32_t reference)
 Initialize 12-bit ADC for two channels. More...
 
void ADC_InDual (ADC12_Regs *adc12, uint32_t *d1, uint32_t *d2)
 Trigger two ADC measurements and wait for results. More...
 
void ADC_InitTriple (ADC12_Regs *adc12, uint32_t channel1, uint32_t channel2, uint32_t channel3, uint32_t reference)
 Initialize 12-bit ADC for three channels. More...
 
void ADC_InTriple (ADC12_Regs *adc12, uint32_t *d1, uint32_t *d2, uint32_t *d3)
 Trigger three ADC measurements and wait for results. More...
 
void ADC0_InitAve (uint32_t channel, uint32_t n)
 Initialize 12-bit ADC0 for hardware averaging. More...
 

Detailed Description

Initialize 12-bit ADC0 and/or ADC1.

ADC input, software trigger, 12-bit conversion
The ADC allows two possible references: 2.5V or 3.3V.
The internal 2.5V reference is lower noise, but limits the range to 0 to 2.5V.
The other possibility is to use the analog voltage supply at 3.3V, making the ADC range 0 to 3.3V. In this driver, the 3.3V range is selected. There are several configurations (each with initialization and a read ADC with software trigger, busy-wait function)

Version
ECE319K v1.0
Author
Daniel Valvano and Jonathan Valvano
Warning
AS-IS
Note
For more information see http://users.ece.utexas.edu/~valvano/
Date
August 13, 2023
ADC pins on the MSPM0G3507
Pin ADC channelSensor
PA27 ADC0 channel 0 J1.8 also MKII light interrupt
PA26 ADC0 channel 1 J1.6 MKII microphone in
PA25 ADC0 channel 2 J1.2 MKII Joystick X
PA24 ADC0 channel 3 J3.27 free
PB25 ADC0 channel 4 J19.7 (insert 0ohm R74, no U3 OPA2365)
PB24 ADC0 channel 5 J1.5 also MKII joystick select button
PB20 ADC0 channel 6 J4.36 free
PA22 ADC0 channel 7

J24 MKII Accelerometer Y

PA15 ADC1 channel 0 J3.30 (also DACout)
PA16 ADC1 channel 1 J3.29 free
PA17 ADC1 channel 2 J3.28 free
PA18 ADC1 channel 3 J3.26 MKII Joystick Y
PB17 ADC1 channel 4 J2.18 free
PB18 ADC1 channel 5 J3.25 MKII Accelerometer Z
PB19 ADC1 channel 6 J3.23 MKII Accelerometer X
PA21 ADC1 channel 7

J17.8 (insert R20, remove R3)

note to students****
the data sheet says the ADC does not work when clock is 80 MHz however, the ADC seems to work on my boards at 80 MHz I suggest you try 80MHz, but if it doesn't work, switch to 40MHz