CONTENTS: Program 1 in C:

Similar documents
Using peripherals on the MSP430 (if time)

PHYS 319. Things to do before next week's lab Whirlwind tour of the MSP430 CPU and its assembly language Activity 1.

Before next weeks lab:

CPE 323 Introduction to Embedded Computer Systems: ADC12 and DAC12. Instructor: Dr Aleksandar Milenkovic Lecture Notes

TAxCTL Register

ECE2049: Embedded Computing in Engineering Design C Term Spring 2018 Lecture #15: More ADC Examples

Physics 319 Spring 2015: Introduction to the Programming and Use of Microprocessors

Chapter 26 Topic Page 26.1 ADC12 Introduction

// Conditions for 9600/4=2400 Baud SW UART, SMCLK = 1MHz #define Bitime_5 0x05*4 // ~ 0.5 bit length + small adjustment #define Bitime 13*4//0x0D

Lecture test next week

CPE/EE 323 Introduction to Embedded Computer Systems Homework V

ECE2049: Embedded Computing in Engineering Design A Term Fall 2017 Lecture #16: Interrupts and Event Driven Code

2.996/6.971 Biomedical Devices Design Laboratory Lecture 6: Microprocessors II

Block diagram of processor (Harvard)

Lab 4: Interrupt. CS4101 Introduction to Embedded Systems. Prof. Chung-Ta King. Department of Computer Science National Tsing Hua University, Taiwan

Getting Started with the Texas Instruments ez430

Befehle des MSP430. ADC Add carry to destination. ADD Add source to destination. ADDC[ Add source and carry to destination

Designing for Ultra-Low Power with MSP430

Analog Peripherals. Introduction. Objectives

The digital I/O is configured with user software. The setup and operation of the digital I/O is discussed in the following sections.

ECE 492 WINTER 2015 GROUP 2. Texas Instruments MSP430-FR Bit ADC Setup Guide

Interrupts, Low Power Modes

Review Activity 1 CALL and RET commands in assembler

Lab 4 Interrupts ReadMeFirst

Why embedded systems?

Texas Instruments Mixed Signal Processor Tutorial Abstract

CPE 323 MSP430 INSTRUCTION SET ARCHITECTURE (ISA)

Chapter 8 Architecture and Instruction Set

C Language Programming through the ADC and the MSP430 (ESCAPE)

Interrupts CS4101 嵌入式系統概論. Prof. Chung-Ta King. Department of Computer Science National Tsing Hua University, Taiwan

MIDTERM#1. 2-(3pts) What is the difference between Von Neumann & Harvard processor architectures?

ECE2049 Homework #2 The MSP430 Architecture & Basic Digital IO (DUE Friday 9/8/17 at 4 pm in class)

CPE 323: MSP430 Timers

CPE 325: Embedded Systems Laboratory Laboratory #7 Tutorial MSP430 Timers, Watchdog Timer, Timers A and B

IV B.Tech. I Sem (R13) ECE : Embedded Systems : UNIT -2 1 UNIT 2

University of Texas at El Paso Electrical and Computer Engineering Department. EE 3176 Laboratory for Microprocessors I.

Lecture 5: MSP430 Interrupt


ECE PRACTICE EXAM #2 Clocks, Timers, and Digital I/O

University of Texas at El Paso Electrical and Computer Engineering Department. EE 3176 Laboratory for Microprocessors I.

CPE 325: Embedded Systems Laboratory Laboratory #11 Tutorial Analog-to-Digital Converter and Digital-to-Analog Converter

CPU: SOFTWARE ARCHITECTURE INSTRUCTION SET (PART

Hacettepe University

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives:

ECE2049: Embedded Computing in Engineering Design C Term Spring 2019 Lecture #22: MSP430F5529 Operating Mode & the WDT

MSP430. More on MSP430

Wireless Sensor Networks (WSN)

Today's plan: Announcements General Strategy Microcontroller programming concepts/last bits of assembly Activity 2

Organization in Memory

ECE 492 WINTER 2015 GROUP 2. Texas Instruments MSP430-FR Bit ADC Setup Guide

UC Berkeley EE40/100 Lab Lab 6: Microcontroller Input/Output B. Boser, etc.

Computer System Architecture

Alex Milenkovich 1. CPE/EE 421 Microcomputers: The MSP430 Introduction. Outline

CPE 323 Introduction to Embedded Computer Systems: MSP430 System Architecture An Overview

6. General purpose Input/Output

Timers and Clocks CS4101 嵌入式系統概論. Prof. Chung-Ta King. Department of Computer Science National Tsing Hua University, Taiwan

ECE2049: Embedded Computing in Engineering Design A Term Fall Lecture #8: Making it work: LEDs, Buttons & Keypad

Arithmetic and Logic Instructions And Programs

ECE2049: Embedded Computing in Engineering Design C Term Spring Lecture #7: More Digital IO

ECE2049: Embedded Computing in Engineering Design A Term Fall Lecture #9: Exam Review w/ Solutions

Lab 1: I/O, timers, interrupts on the ez430-rf2500

Getting Started with the MSP430 IAR Assembly

What is an Interrupt?

University of Texas at El Paso Electrical and Computer Engineering Department. EE 3176 Laboratory for Microprocessors I.

ECE2049 Homework #4 Analog-to-Digital Conversion and the ADC12 (Due Thursday 2/15/2018 to box outside AK-011 by 9 am)

8051 Microcontroller Assembly Programming

Microcontroller. Instruction set of 8051

Name: Clint Furrer Project Number: TI003 Project Description: Safety Walking Lights. Description:

SOEN228, Winter Revision 1.2 Date: October 25,


Question Bank Microprocessor and Microcontroller

@databasescaling Wednesday, 18 th April 2013

Week 4: Embedded Programming Using C

It is possible to define a number using a character or multiple numbers (see instruction DB) by using a string.

ECE2049: Embedded Computing in Engineering Design C Term Spring Lecture #11: More Clocks and Timers

ECE2049-E18 Lecture 6 Notes 1. ECE2049: Embedded Computing in Engineering Design E Term Lecture #6: Exam Review

Copyright 2015 by Stephen A. Zajac & Gregory M. Wierzba. All rights reserved..spring 2015.

~TEXAS INSTRUMENTS. MSP430 Family ==-=---===========

Principle and Interface Techniques of Microcontroller

MSP430 Interrupts. Change value of internal variable (count) Read a data value (sensor, receive) Write a data value (actuator, send)

UNIT 2 THE 8051 INSTRUCTION SET AND PROGRAMMING

ECE2049-E17 Lecture 6 1. ECE2049: Embedded Computing in Engineering Design E Term Lecture #6: Exam Review

EE 308 Spring A software delay. To enter a software delay, put in a nested loop, just like in assembly.

Interfacing CMR3000-D01 to an MSP430 ultra low-power microcontroller

Intel Instruction Set (gas)

Introduction to the MC9S12 Hardware Subsystems

Practical Malware Analysis

CPU. Fall 2003 CSE 207 Digital Design Project #4 R0 R1 R2 R3 R4 R5 R6 R7 PC STATUS IR. Control Logic RAM MAR MDR. Internal Processor Bus

ADC 14. Last updated 9/1/18

Embedded programming, AVR intro

Chapter 1 MSP430 Microcontroller Family

Designing for Ultra-Low Power with MSP430

SN8F5000 Family Instruction Set

Embedded Controller Programming

MSP430 instruction set *

Logic Instructions. Basic Logic Instructions (AND, OR, XOR, TEST, NOT, NEG) Shift and Rotate instructions (SHL, SAL, SHR, SAR) Segment 4A

Chapter 7 Central Processor Unit (S08CPUV2)

8051 Overview and Instruction Set

INSTRUCTION SET OF 8085

Basic System Memory Architecture View (Functional)

Transcription:

CONTENTS: 1) Program 1 in C (Blink) 2) Program 2 in C (Interrupt ) 3) ADC example 4) Addressing Modes 5) Selected Assembly instructions 6) ADC10 register descriptions Program 1 in C: /* * PHYS319 Lab3 Timing example in C * * Written by Ryan Wicks * 16 January 2012 * * This program is a C version of the assembly program that formed part of lab 2. * This is not the best way to implement timing, or to organize your code. * It is simply one way. * * This will almost certainly not give exactly the same timing as the assembly * program from lab 2, and the output assembly will also be very different, even * though the task is similar. */ #include <msp430.h> void main(void) { volatile unsigned int count; //You must declare your variables in C // notice the label volatile. What happens if you remove this label? } WDTCTL = WDTPW + WDTHOLD; P1DIR = 0x41; P1OUT = 0x01; while (1){ count = 60000; while(count!= 0) { count--; } P1OUT = P1OUT ^ 0x41; } //Stop WDT //Set P1 output direction //Set the output //Loop forever //decrement //bitwise xor the output with 0x41

Program 2 in C: /* * PHYS319 Lab 3 Interrupt in C * * Written by Ryan Wicks * 16 Jan 2012 * * This program is a C version of the assembly program that formed part of * lab 2. * * */ #include <msp430.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR = 0xF7; P1OUT = 0x49; P1REN = 0x08; P1IE = 0x08; // Stop watchdog timer //C does not have a convenient way of //representing numbers in binary; use hex instead //enable resistor //Enable input at P1.3 as an interrupt } _BIS_SR (LPM4_bits + GIE); //Turn on interrupts and go into the lowest //power mode (the program stops here) //Notice the strange format of the function, it is an "intrinsic" //ie. not part of C; it is specific to this chipset // Port 1 interrupt service routine #pragma vector=port1_vector interrupt void PORT1_ISR(void) { //code goes here P1OUT ^= 0x41; // toggle the LEDS P1IFG &= ~0x08; // Clear P1.3 IFG. If you don't, it just happens again. }

ADC demo: //****************************************************************************** // MSP430G2x31 Demo - ADC10, Sample A1, AVcc Ref, Set P1.0 if > 0.75*AVcc // // Description: A single sample is made on A1 with reference to AVcc. // Software sets ADC10SC to start sample and conversion - ADC10SC // automatically cleared at EOC. ADC10 internal oscillator times sample (16x) // and conversion. // // MSP430G2x31 // ----------------- // / \ XIN - // // -- RST XOUT // // // // // // input >--- P1.1/A1 P1.0 --> red Led onboard BIT0 // // P1.2 --> yellow Led // P1.6 --> green Led onboard BIT6 // // // D. Dang // Texas Instruments Inc. //****************************************************************************** #include "msp430.h" void main(void) { WDTCTL = WDTPW + WDTHOLD; ADC10CTL0 = ADC10SHT_2 + ADC10ON; ADC10CTL1 = INCH_1; ADC10AE0 = 0x02; P1DIR = 0x01 ; for (;;) { ADC10CTL0 = ENC + ADC10SC; while (ADC10CTL1 &ADC10BUSY); if (ADC10MEM < 0x2FF) P1OUT &= ~0x01; else P1OUT = 0x01; // Stop WDT // ADC10ON // input A1 // PA.1 ADC option select // Set P1.0 to output direction // Sampling and conversion start // ADC10BUSY? // Clear P1.0 LED off // Set P1.0 LED on unsigned i; for (i = 0xFFFF; i > 0; i--); // Delay } } //******************************************************************************

Addressing Modes Table 3-3. Source/Destination Operand Addressing Modes As/Ad Addressing Mode Syntax Description 00/0 Register mode Rn Register contents are operand www.ti.com 01/1 Indexed mode X(Rn) (Rn + X) points to the operand. X is stored in the next word. 01/1 Symbolic mode ADDR (PC + X) points to the operand. X is stored in the next word. Indexed mode X(PC) is used. 01/1 Absolute mode &ADDR The word following the instruction contains the absolute address. X is stored in the next word. Indexed mode X(SR) is used. 10/- Indirect register mode @Rn Rn is used as a pointer to the operand. 11/- Indirect autoincrement @Rn+ Rn is used as a pointer to the operand. Rn is incremented afterwards by 1 for.b instructions and by 2 for.w instructions. 11/- Immediate mode #N The word following the instruction contains the immediate constant N. Indirect autoincrement mode @PC+ is used. The seven addressing modes are explained in detail in the following sections. Most of the examples show the same addressing mode for the source and destination, but any valid combination of source and destination addressing modes is possible in an instruction. NOTE: Use of Labels EDE, TONI, TOM, and LEO Throughout MSP430 documentation EDE, TONI, TOM, and LEO are used as generic labels. They are only labels. They have no special meaning. 48 CPU SLAU144J December 2004 Revised July 2013

www.ti.com Instruction Set 3.4.6.4 AND AND[.W] AND.B Source AND destination Source AND destination Syntax AND src,dst or AND.W src,dst AND.B src,dst Operation Description Status Bits Mode Bits src.and. dst dst The source operand and the destination operand are logically ANDed. The result is placed into the destination. N: Set if result MSB is set, reset if not set Z: Set if result is zero, reset otherwise C: Set if result is not zero, reset otherwise ( =.NOT. Zero) V: Reset OSCOFF, CPUOFF, and GIE are not affected. The bits set in R5 are used as a mask (#0AA55h) for the word addressed by TOM. If the result is zero, a branch is taken to label TONI. MOV #0AA55h,R5 ; Load mask into register R5 AND R5,TOM ; mask word addressed by TOM with R5 JZ TONI ;... ; Result is not zero ; ; ; or ; ; AND #0AA55h,TOM JZ TONI The bits of mask #0A5h are logically ANDed with the low byte TOM. If the result is zero, a branch is taken to label TONI. AND.B #0A5h,TOM ; mask Lowbyte TOM with 0A5h JZ TONI ;... ; Result is not zero SLAU144J December 2004 Revised July 2013 CPU 67

Instruction Set www.ti.com 3.4.6.25 JEQ, JZ JEQ, JZ Syntax Operation Description Status Bits Jump if equal, jump if zero JEQ label JZ label If Z = 1: PC + 2 offset PC If Z = 0: execute following instruction The status register zero bit (Z) is tested. If it is set, the 10-bit signed offset contained in the instruction LSBs is added to the program counter. If Z is not set, the instruction following the jump is executed. Status bits are not affected. Jump to address TONI if R7 contains zero. TST R7 ; Test R7 JZ TONI ; if zero: JUMP Jump to address LEO if R6 is equal to the table contents. CMP R6,Table(R5) ; Compare content of R6 with content of ; MEM (table address + content of R5) JEQ LEO ; Jump if both data are equal... ; No, data are not equal, continue here Branch to LABEL if R5 is 0. TST R5 JZ LABEL... 88 CPU SLAU144J December 2004 Revised July 2013

www.ti.com Instruction Set 3.4.6.28 JMP JMP Syntax Operation Description Status Bits Jump unconditionally JMP label PC + 2 offset PC The 10-bit signed offset contained in the instruction LSBs is added to the program counter. Status bits are not affected. Hint This one-word instruction replaces the BRANCH instruction in the range of 511 to +512 words relative to the current program counter. SLAU144J December 2004 Revised July 2013 CPU 91

Instruction Set www.ti.com 3.4.6.31 JNE, JNZ JNE JNZ Syntax Operation Description Status Bits Jump if not equal Jump if not zero JNE label JNZ label If Z = 0: PC + 2 a offset PC If Z = 1: execute following instruction The status register zero bit (Z) is tested. If it is reset, the 10-bit signed offset contained in the instruction LSBs is added to the program counter. If Z is set, the next instruction following the jump is executed. Status bits are not affected. Jump to address TONI if R7 and R8 have different contents. CMP R7,R8 ; COMPARE R7 WITH R8 JNE TONI ; if different: jump... ; if equal, continue 94 CPU SLAU144J December 2004 Revised July 2013

www.ti.com Instruction Set 3.4.6.32 MOV MOV[.W] MOV.B Move source to destination Move source to destination Syntax MOV src,dst or MOV.W src,dst MOV.B src,dst Operation Description Status Bits Mode Bits src dst The source operand is moved to the destination. The source operand is not affected. The previous contents of the destination are lost. Status bits are not affected. OSCOFF, CPUOFF,and GIE are not affected. The contents of table EDE (word data) are copied to table TOM. The length of the tables must be 020h locations. MOV #EDE,R10 ; Prepare pointer MOV #020h,R9 ; Prepare counter Loop MOV @R10+,TOM-EDE-2(R10) ; Use pointer in R10 for both tables DEC R9 ; Decrement counter JNZ Loop ; Counter not 0, continue copying... ; Copying completed...... The contents of table EDE (byte data) are copied to table TOM. The length of the tables should be 020h locations MOV #EDE,R10 ; Prepare pointer MOV #020h,R9 ; Prepare counter Loop MOV.B @R10+,TOM-EDE-1(R10) ; Use pointer in R10 for ; both tables DEC R9 ; Decrement counter JNZ Loop ; Counter not 0, continue ; copying... ; Copying completed...... SLAU144J December 2004 Revised July 2013 CPU 95

Instruction Set www.ti.com 3.4.6.51 XOR XOR[.W] XOR.B Exclusive OR of source with destination Exclusive OR of source with destination Syntax XOR src,dst or XOR.W src,dst XOR.B src,dst Operation Description Status Bits Mode Bits src.xor. dst dst The source and destination operands are exclusive ORed. The result is placed into the destination. The source operand is not affected. N: Set if result MSB is set, reset if not set Z: Set if result is zero, reset otherwise C: Set if result is not zero, reset otherwise ( =.NOT. Zero) V: Set if both operands are negative OSCOFF, CPUOFF,and GIE are not affected. The bits set in R6 toggle the bits in the RAM word TONI. XOR R6,TONI ; Toggle bits of word TONI on the bits set in R6 The bits set in R6 toggle the bits in the RAM byte TONI. XOR.B R6,TONI ; Toggle bits of byte TONI on the bits set in ; low byte of R6 Reset to 0 those bits in low byte of R7 that are different from bits in RAM byte EDE. XOR.B EDE,R7 ; Set different bit to "1s" INV.B R7 ; Invert Lowbyte, Highbyte is 0h 114 CPU SLAU144J December 2004 Revised July 2013

www.ti.com 22.3.1 ADC10CTL0, ADC10 Control Register 0 ADC10 Registers 15 14 13 12 11 10 9 8 SREFx ADC10SHTx ADC10SR REFOUT REFBURST rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) MSC REF2_5V REFON ADC10ON ADC10IE ADC10IFG ENC ADC10SC rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) Can be modified only when ENC = 0 SREFx Bits 15-13 Select reference. 000 V R+ = V CC and V R- = V SS ADC10SHTx Bits 12-11 ADC10 sample-and-hold time 001 V R+ = V REF+ and V R- = V SS 010 V R+ = V eref+ and V R- = V SS. Devices with V eref+ only. 011 V R+ = Buffered V eref+ and V R- = V SS. Devices with V eref+ pin only. 100 V R+ = V CC and V R- = V REF- / V eref-. Devices with V eref- pin only. 101 V R+ = V REF+ and V R- = V REF- / V eref-. Devices with V eref+/- pins only. 110 V R+ = V eref+ and V R- = V REF- / V eref-. Devices with V eref+/- pins only. 111 V R+ = Buffered V eref+ and V R- = V REF- / V eref-. Devices with V eref+/- pins only. 00 4 ADC10CLKs 01 8 ADC10CLKs 10 16 ADC10CLKs 11 64 ADC10CLKs ADC10SR Bit 10 ADC10 sampling rate. This bit selects the reference buffer drive capability for the maximum sampling rate. Setting ADC10SR reduces the current consumption of the reference buffer. REFOUT Bit 9 Reference output 0 Reference buffer supports up to ~200 ksps 1 Reference buffer supports up to ~50 ksps 0 Reference output off REFBURST Bit 8 Reference burst. 1 Reference output on. Devices with V eref+ / V REF+ pin only. 0 Reference buffer on continuously 1 Reference buffer on only during sample-and-conversion MSC Bit 7 Multiple sample and conversion. Valid only for sequence or repeated modes. 0 The sampling requires a rising edge of the SHI signal to trigger each sample-and-conversion. 1 The first rising edge of the SHI signal triggers the sampling timer, but further sample-andconversions are performed automatically as soon as the prior conversion is completed REF2_5V Bit 6 Reference-generator voltage. REFON must also be set. 0 1.5 V 1 2.5 V REFON Bit 5 Reference generator on ADC10ON Bit 4 ADC10 on 0 Reference off 1 Reference on 0 ADC10 off 1 ADC10 on ADC10IE Bit 3 ADC10 interrupt enable 0 Interrupt disabled 1 Interrupt enabled SLAU144J December 2004 Revised July 2013 ADC10 553

ADC10 Registers www.ti.com ADC10IFG Bit 2 ADC10 interrupt flag. This bit is set if ADC10MEM is loaded with a conversion result. It is automatically reset when the interrupt request is accepted, or it may be reset by software. When using the DTC this flag is set when a block of transfers is completed. 0 No interrupt pending 1 Interrupt pending ENC Bit 1 Enable conversion 0 ADC10 disabled 1 ADC10 enabled ADC10SC Bit 0 Start conversion. Software-controlled sample-and-conversion start. ADC10SC and ENC may be set together with one instruction. ADC10SC is reset automatically. 0 No sample-and-conversion start 1 Start sample-and-conversion 554 ADC10 SLAU144J December 2004 Revised July 2013

www.ti.com 22.3.2 ADC10CTL1, ADC10 Control Register 1 ADC10 Registers 15 14 13 12 11 10 9 8 INCHx SHSx ADC10DF ISSH rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) ADC10DIVx ADC10SSELx CONSEQx ADC10BUSY rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) r-0 Can be modified only when ENC = 0 INCHx Bits 15-12 Input channel select. These bits select the channel for a single-conversion or the highest channel for a sequence of conversions. Only available ADC channels should be selected. See device specific data sheet. 0000 A0 0001 A1 0010 A2 0011 A3 0100 A4 0101 A5 0110 A6 0111 A7 1000 V eref+ 1001 V REF- /V eref- 1010 Temperature sensor 1011 (V CC - V SS ) / 2 1100 (V CC - V SS ) / 2, A12 on MSP430F22xx devices 1101 (V CC - V SS ) / 2, A13 on MSP430F22xx devices 1110 (V CC - V SS ) / 2, A14 on MSP430F22xx devices 1111 (V CC - V SS ) / 2, A15 on MSP430F22xx devices SHSx Bits 11-10 Sample-and-hold source select. 00 ADC10SC bit 01 Timer_A.OUT1 (1) 10 Timer_A.OUT0 (1) ADC10DF Bit 9 ADC10 data format 11 Timer_A.OUT2 (Timer_A.OUT1 on MSP430F20x0, MSP430G2x31, and MSP430G2x30 devices) (1) 0 Straight binary 1 2s complement ISSH Bit 8 Invert signal sample-and-hold ADC10DIVx Bits 7-5 ADC10 clock divider 0 The sample-input signal is not inverted. 1 The sample-input signal is inverted. 000 /1 001 /2 010 /3 011 /4 100 /5 101 /6 110 /7 111 /8 ADC10SSELx Bits 4-3 ADC10 clock source select (1) 00 ADC10OSC 01 ACLK 10 MCLK 11 SMCLK Timer triggers are from Timer0_Ax if more than one timer module exists on the device. SLAU144J December 2004 Revised July 2013 ADC10 555

ADC10 Registers www.ti.com CONSEQx Bits 2-1 Conversion sequence mode select 00 Single-channel-single-conversion 01 Sequence-of-channels 10 Repeat-single-channel 11 Repeat-sequence-of-channels ADC10BUSY Bit 0 ADC10 busy. This bit indicates an active sample or conversion operation 0 No operation is active. 1 A sequence, sample, or conversion is active. 22.3.3 ADC10AE0, Analog (Input) Enable Control Register 0 ADC10AE0x rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) ADC10AE0x Bits 7-0 ADC10 analog enable. These bits enable the corresponding pin for analog input. BIT0 corresponds to A0, BIT1 corresponds to A1, etc. The analog enable bit of not implemented channels should not be programmed to 1. 0 Analog input disabled 1 Analog input enabled 22.3.4 ADC10AE1, Analog (Input) Enable Control Register 1 (MSP430F22xx only) ADC10AE1x Reserved rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) ADC10AE1x Bits 7-4 ADC10 analog enable. These bits enable the corresponding pin for analog input. BIT4 corresponds to A12, BIT5 corresponds to A13, BIT6 corresponds to A14, and BIT7 corresponds to A15. The analog enable bit of not implemented channels should not be programmed to 1. Reserved Bits 3-0 Reserved 0 Analog input disabled 1 Analog input enabled 22.3.5 ADC10MEM, Conversion-Memory Register, Binary Format 15 14 13 12 11 10 9 8 0 0 0 0 0 0 Conversion Results r0 r0 r0 r0 r0 r0 r r Conversion Results r r r r r r r r Conversion Bits 15-0 The 10-bit conversion results are right justified, straight-binary format. Bit 9 is the MSB. Bits 15-10 are Results always 0. 556 ADC10 SLAU144J December 2004 Revised July 2013

www.ti.com 22.3.6 ADC10MEM, Conversion-Memory Register, 2s Complement Format ADC10 Registers 15 14 13 12 11 10 9 8 Conversion Results r r r r r r r r Conversion Results 0 0 0 0 0 0 r r r0 r0 r0 r0 r0 r0 Conversion Bits 15-0 The 10-bit conversion results are left-justified, 2s complement format. Bit 15 is the MSB. Bits 5-0 are always Results 0. 22.3.7 ADC10DTC0, Data Transfer Control Register 0 Reserved ADC10TB ADC10CT ADC10B1 ADC10FETCH r0 r0 r0 r0 rw-(0) rw-(0) r-(0) rw-(0) Reserved Bits 7-4 Reserved. Always read as 0. ADC10TB Bit 3 ADC10 two-block mode 0 One-block transfer mode 1 Two-block transfer mode ADC10CT Bit 2 ADC10 continuous transfer 0 Data transfer stops when one block (one-block mode) or two blocks (two-block mode) have completed. 1 Data is transferred continuously. DTC operation is stopped only if ADC10CT cleared, or ADC10SA is written to. ADC10B1 Bit 1 ADC10 block one. This bit indicates for two-block mode which block is filled with ADC10 conversion results. ADC10B1 is valid only after ADC10IFG has been set the first time during DTC operation. ADC10TB must also be set. 0 Block 2 is filled 1 Block 1 is filled ADC10FETCH Bit 0 This bit should normally be reset. 22.3.8 ADC10DTC1, Data Transfer Control Register 1 DTC Transfers rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) DTC Transfers Bits 7-0 DTC transfers. These bits define the number of transfers in each block. 0 DTC is disabled 01h-0FFh Number of transfers per block SLAU144J December 2004 Revised July 2013 ADC10 557

ADC10 Registers www.ti.com 22.3.9 ADC10SA, Start Address Register for Data Transfer 15 14 13 12 11 10 9 8 ADC10SAx rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) ADC10SAx 0 rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) r0 ADC10SAx Bits 15-1 ADC10 start address. These bits are the start address for the DTC. A write to register ADC10SA is required to initiate DTC transfers. Unused Bit 0 Unused, Read only. Always read as 0. 558 ADC10 SLAU144J December 2004 Revised July 2013