<< Chapter < Page | Chapter >> Page > |
The MSP430 contains built-in features for both parallel and serial data communication. This chapter describes the operation of these peripherals, and discusses the protocols, data formats and specific techniques for each type of data communication.
The communication modules available for the MSP430 family of microcontrollers are USART (Universal Synchronous/Asynchronous Receiver/Transmitter), USCI (Universal Serial Communication Interface) and USI (Universal Serial Interface). These provide asynchronous data transmission between the MSP430 and other peripheral devices when configured in UART mode. They also support data transmission synchronized to a clock signal through a serial I/O port in Serial Peripheral Interface (SPI) and Inter Integrated Circuit (I2C) modes.
This laboratory explores the USCI module in UART mode that will be connected to a Code Composer Essentials (CCE) IO console. When the connection is established, the character sequence written on the keyboard to the console will be displayed again on the console.
This laboratory uses the USCI module in asynchronous mode. The RX interrupt activates the service routine that reads the incoming character and sends it out again to the PC (computer), allowing the instantaneous display (echo) of the written character.
The resources used are:
- USCI module;
- Interrupts;
- IO ports:
- System clock.
With the objective of allowing the generation of two different baud rates, a function has been added that configures the FLL+ and selects the base frequency for the UART. In this example it will be 8 MHz.
The proposed application ( Lab1_Comm.c ) is organized as shown in Figure 1. The main routine performs the necessary hardware configuration. Then, the hardware takes command of the software through the interrupt service routine generated by the reception of a new character.
The initial configuration sets the system clock to a frequency of 8 MHz.
The connection will operate in the following mode:
- Parity disabled;
- LSB first;
- 8-bit data;
- One stop bit.
The module will operate in the following mode:
- Asynchronous;
- SMCLK source clock;
- No Receive erroneous-character interrupt-enable;
- No Receive break character interrupt-enable.
Based on these characteristics the following control registers are configured:
UCA0CTL0 = 0x00;
// UCA0CTL0 =//UCPEN|UCPAR|UCMSB|UC7BIT|UCSPB|UCMODEx|UCSYNC|
//UCPEN (Parity) = 0b ->Parity disabled
//UCPAR (Parity select) = 0b ->Odd parity
//UCMSB (MSB first select) = 0b ->LSB first
//UC7BIT (Character length) = 0b ->8-bit data
//UCSPB (Stop bit select) = 0b ->One stop bit
//UCMODEx (USCI mode) = 00b ->UART Mode
//UCSYNC = 0b ->Asynchronous modeUCA0CTL1 = 0x81;
// UCA0CTL1 =//UCSSELx|UCRXEIE|UCBRKIE|UCDORM|UCTXADDR|UCTXBRK|UCSWRST|
//UCSSELx (USCI clock source select) = 10b ->SMCLK
//UCRXEIE = 0b ->Erroneous characters rejected
//UCBRKIE = 0b ->Received break characters set
//UCDORM = 0b ->Not dormant
//UCTXADDR = 0b ->Next frame transmitted is data
//UCTXBRK = 0b ->Next frame transmitted is no break
//UCSWRST = 1b ->normally Set by a PUC
The module has an 8 MHz clock source and the objective is to establish a connection at 9600 Baud. It is necessary to select the baud rate generation in oversampling mode:
UCA0BR0 = 0x34;
UCA0BR1 = 0x00;//Prescaler = 8MHz/(16 x 9600) = 52 = 0x34
//9600 from 8MHz ->SMCLKUCA0MCTL = 0x11;
// UCA0MCTL = UCBRFx | UCBRSx | UCOS16//UCBRFx (1st modulation stage) = 0001b ->Table 19-4
//UCBRSx (2nd modulation stage) = 000b ->Table 19-4
//UCOS16 (Oversampling mode) = 1b ->Enabled
In order to set the external interfaces at the USCI module, it is necessary to configure the I/O ports. Select the USCI peripheral in UART mode following the connections provided on the Experimenter’s board:
P2SEL |= 0x30; // P2.4,P2.5 = USCI_A0 TXD,RXD
To finish the module configuration, it is necessary to enable the receive interrupts:
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
Once the USCI module is configured in accordance with the previous steps, compile it and run it on the Experimenter’s board.
For the correct operation, there must be a connection between the Experimenter’s board and the PC. If the CCE console is disabled, go to Window>Show View>Console to enable it. If necessary, configure the CCE console options in accordance to the connection details.
Once the program code is running, any character key pressed in the PC keyboard will be displayed on the CCE console.
This example and many others are available on the MSP430 Teaching ROM.
Request this ROM, and our other Teaching Materials here (External Link)
Notification Switch
Would you like to follow the 'Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials' conversation and receive update notifications?