Skip to content Skip to navigation

Connexions

You are here: Home » Content » Laboratory Signal Acquisition: Lab3 - SD16_A ADC conversion

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

Affiliated with (What does "Affiliated with" mean?)

This content is either by members of the organizations listed or about topics related to the organizations listed. Click each link to see a list of all content affiliated with the organization.
  • TI MSP430 display tagshide tags

    This module is included inLens: Texas Instruments MSP430
    By: Texas InstrumentsAs a part of collection: "Teaching and classroom laboratories based on the “eZ430” and "Experimenter's board" MSP430 microcontroller platforms and Code Composer Essentials"

    Comments:

    "This is an excerpt from the MSP430 Teaching CD produced under TI sponsorship and review at the University Beira Interior in Portugal. The material covers everything from "hello world" on an eZ430 […]"

    Click the "TI MSP430" link to see all content affiliated with them.

    Click the tag icon tag icon to display tags associated with this content.

Recently Viewed

This feature requires Javascript to be enabled.

Tags

(What is a tag?)

These tags come from the endorsement, affiliation, and other lenses that include this content.
 

Laboratory Signal Acquisition: Lab3 - SD16_A ADC conversion

Module by: Pedro Dinis, António Espírito Santo, Bruno Ribeiro. E-mail the authors

Summary: Using the eZ430-F2013 Development Tool use SD16_A ADC to perform a single temperature sample on channel A6 (on-chip temperature sensor) each minute during 1 hour.

Laboratory Signal Acquisition: Lab3 - SD16_A ADC conversion

Introduction

This laboratory gives examples of the uses of the ADC types available in the hardware development kits. A different laboratory is developed for each kit, taking into account that both the ADC10 and the SD16_A laboratories implement a temperature data logger. The ADC12 laboratory also uses operational amplifiers to perform the analogue signal conditioning.

Overview

This laboratory ( Lab3_ADC.c ) implements a temperature data logger using the hardware kit’s integrated temperature sensor. The device is configured to perform a data acquisition once every minute for one hour. Each temperature’s (ºC) value is transferred to flash info memory segment B and C. When the microcontroller is not performing any task, it enters into low power mode.

Resources

The SD16_A module uses VREF+ = 1.2 V as reference voltage.

It is necessary to select the channel 6 of the SD16_A to use the integrated temperature sensor as an input. Timer_A generates an interrupt once every second, which starts conversion on the SD16_A. At the end of conversion, an interrupt is requested by the converter and the temperature value is written to flash memory.

The voltage value is converted into temperature using the mathematical expression provided in the eZ430-F2013 data sheet. After transferring the value to the flash memory, the system returns to low power mode LPM3.

The resources used by the application are:

- SD16_A;

- Timer_A;

- Ports I/O;

- Interrupts;

- Low power mode.

Software application organization

The application starts by stopping the Watchdog Timer.

System tests for the presence of calibration constants in info memory segment A. The CPU execution will be trapped if it does not find this information.

The digital controller oscillator (DCO) is set to 1 MHz to provide clock sources for MCLK and SMCLK, while the Basic Clock System+ is configured to set ACLK to 1.5 kHz.

The controller’s flash timing is obtained from MCLK, divided by three to comply with the device specifications.

Port P1.0 is configured as output and will blink the LED once every second.

The SD16_A is configured to use the input channel corresponding to the on-chip temperature sensor (channel A6). The configuration includes the activation of the internal reference voltage: VREF+ = 1.2 V and the selection of SMCLK as clock signal. The converter is configured to perform a single conversion in bipolar mode and offset binary format. At the end of conversion an interrupt is requested.

The Timer_A is configured to generate an interrupt once every second. ACLK/8 is selected as the clock signal using VLOCLK as clock source and will count until it reaches the TACCR0 value (up mode). The system enters into low power mode and waits for an interrupt.

Flash memory pointers and interrupt counters are initialized. The Timer_A ISR increments variable counter and when this variable reaches the value 60 (1 minute), the software start of conversion is requested. At the end of this ISR, the system returns to low power mode.

When the SD16_A ends the conversion, an interrupt is requested. While variable min is lower than 60, the temperature is written in flash memory. The memory pointer is increased by two (word). When min = 60, the system stops operation.

System configuration

DCO configuration

Adjust the DCO frequency to 1 MHz by software using the calibrated DCOCTL and BCSCTL1 register settings stored in information memory segment A.

if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF)
    {
      while(1); // If calibration constants erased
                // do not load, trap CPU!!
    }

DCOCTL = CALDCO_1MHZ; // Set DCO to 1 MHz
    

Basic Clock module+ configuration

Set MCLK and SMCLK to 1 MHz. Use the internal very low power VLOCLK source clock to ACLK/8 clock signal as low frequency oscillator (12 kHz):

BCSCTL1 = DIVA_3; // ACLK = 1.5 kHz
BCSCTL3 = LFXT1S_2; // Set VLOCLK (12 kHz)

SD16_A configuration

The SD16_A’s input channel is the integrated temperature sensor (A6) and it uses the signal VREF+ (1.2 V) as reference voltage. The SD16_A clock source is SMCLK. Configure the SD16_A to perform a single conversion and enable its interrupts. What are the values to write to the configuration registers?

SD16CTL = SD16REFON + SD16SSEL_1; // 1.2V ref, SMCLK
SD16INCTL0 = SD16INCH_6; // Temp. sensor: A6+/-
SD16CCTL0 = SD16SNGL + SD16IE; // Single conv, int. enable
    

//*********************************************************
// SD16_A Interrupt Service Routine
//*********************************************************
#pragma vector=SD16_VECTOR
__interrupt void SD16ISR(void)
 {
  unsigned int temperature;
  if (min <= 60)
   {
    temperature = (SD16MEM0-0x8000)/84 - 232;
    write_int_flash(memo_ptr,temperature);
    memo_ptr += 2;
   } 
  else
   {
    _NOP();
   } 
}    

Timer_A configuration

Configure Timer_A register to enable an interrupt once every second. Use the ACLK clock signal as the clock source. This timer is configured in up mode in order to count until the TAR value reaches the TACCR0 value.

TACCTL0 = CCIE; // CCR0 interrupt enabled~
TACCR0 = 1500; // this count corresponds to 1 sec
TACTL = TASSEL_1 | MC_1 | ID_0; // ACLK, up mode to CCR0
    

//*********************************************************
// Timer_A Interrupt Service Routine
//*********************************************************
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0_ISR (void)
 {
  counter++;
  P1OUT ^= 0x01; // LED toogle
if (counter == 60)
    {
     min++;
     counter = 0;
     SD16CCTL0 |= SD16SC; // Start SD16 conversion
    } 
}
    

Analysis of operation

Measure the temperature variation over 1 hour

After compiling the project and starting the debug session, before running the application, put a breakpoint at line of code with the _NOP() instruction. Go to breakpoint properties and set action to Write data to file. Name the file as Temp.dat and define the data format as integer. The data starts at address 0x01040 with a length of 3C. Run the application and let the temperature data logger acquire the values over 1 hour. Use a heater or a fan to force temperature variations during the measurement period. When execution reaches the breakpoint, the file will be available in your file system. Construct a graph using Excel or a similar tool, to plot the temperature variation obtained by the data logger.

This example and many others are available on the MSP430 Teaching ROM.

Request this ROM, and our other Teaching Materials here https://www-a.ti.com/apps/dspuniv/teaching_rom_request.asp

Content actions

Download module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks