Is there any (functional) difference between USCI and UART? Which one is better?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Yes. An USCI module contains an UART, yet an UART does not containan USCI module :)Hari said:Is there any (functional) difference between USCI and UART?
It depends. If you need an SPI, you won't get far with an UART, yet an USCI module contains two SPI modules and leaves you the choice: UART or SPI and I2C or SPI. The USI module, however, has no UART, just I2C and SPI, while the SPI in the USI supports the transfer of any number of bits (up to 16) per Transfer, while the SPI module in the USCI only supports 8 bit transfers. In real-world this makes no difference as all SPI slaves I know of are using 8bit aligned transfers.Hari said:Which one is better?
The USCI module offers most flexibility and has the most dvanced incarnations of UART and I2C. Handling of interrupts and registers has been simplified and unified compared to the older USART module. But both 'do the job' when it comes to UART transfers.
Personally, I found the I2C module in the USART unusable and overly complex and wrote my own software I2C, yet the USCI version seems to be quite usable.
The optional oversampling in the USCIs UART improves noise-resistance if you're working with a high clock rate compared to the UART baudrate, but on the bottom line, there's not much of a difference.
The unified structure of the USCI allows simplified handling of multiple USCI modules (the 54xx has up to 4 of them), as they are 100% identical except of the base address of their registers, and do not use any bits in a common special function register for their interrupt masking.
**Attention** This is a public forum