EasyManuals Logo
Home>Texas Instruments>Microcontrollers>MSP430

Texas Instruments MSP430 User Manual

Texas Instruments MSP430
413 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #214 background imageLoading...
Page #214 background image
214
USI vs USCI - Which one is better?
USI and USCI are both hardware-based serial communication handlers but the question which one is
better lurks in every beginner’s mind. Although both modules do same tasks, they are not identical.
Universal Serial Interface (USI)
Mainly USI is intended for I2C and SPI communications. Technically speaking, USI is a pumped-
up shift register that does all the bit-banging in hardware that a programmer would have
done in software end. Apart from its aforementioned shift register, it has clock generator, bit
counter and few extra assists for I2C communications.
In the firmware end, we need to load the bit counter with the number of bits to transfer. This
bit counter always counts down to zero. During transmission, the shift register is loaded with
the value that is to be transmitted while during reception, the shift register is read back once
the bit counter hits zero.
Universal Serial Communication Interface (USCI)
USCI, on the other hand, is a highly sophisticated module that is intended for most forms of
serial communications. USCI is more advanced than USI in terms of hardware. It has a one-
byte I/O buffer and DMA transfer capability for higher throughput. USCI can be subcategorized
in two types:
Asynchronous USCI (USCI_A)
It is used for UART, SPI, LIN and IRDA as it can detect the baud rate of an incoming
signal. This type is most common.
Synchronous USCI (USCI_B)
This type can handle synchronous communications like SPI and I2C that need a
clock signal. The coolest part is the fact that the full I2C communication protocol
as per NXP is implemented in I2C mode with an in-built I2C state machine.
Both USI and USCI support master-slave modes although most of the times we dont need slave
modes. This is because most of the times we do not need communicate with multiple microcontrollers
on board. I2C and SPI are usually used to establish communication between external devices (sensors
and drivers) and a host microcontroller. UART, on the other hand, is mainly used to communicate with
a computer. It is also used for long-distance communications like RS232, RS485, LIN and IrDA.
Software-based Communication
When USI/USCI are absent or used up, we have to stick to software-based methods to emulate SPI,
I2C and UART. They are slow and may require the aid of other hardware like timers and external
interrupts. Software methods add considerable amounts of coding overhead and consume both CPU
cycles as well as memories. We can’t also use them for communications that are more complex than
I2C, SPI or UART. It is better to avoid them whenever possible. Still however, these methods help in
learning the details of UART, I2C and SPI communications to a great extent. A good thing about
software solutions is the fact that we can virtually create unlimited amounts of communication ports.

Table of Contents

Other manuals for Texas Instruments MSP430

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Texas Instruments MSP430 and is the answer not in the manual?

Texas Instruments MSP430 Specifications

General IconGeneral
BrandTexas Instruments
ModelMSP430
CategoryMicrocontrollers
LanguageEnglish

Related product manuals