Tinkering TI MSP430F5529
Communication Hardware Overview
The charm of MSP430F5529 microcontroller is its USB hardware. This is typically not found in most 8-bit and 16-bit general purpose microcontrollers. Apart from USB hardware module, MSP430F5529 has other communication modules that are must-haves in any modern-era microcontroller. Except CAN, MSP430F5529 supports all sorts of communications listed below.
In my previous MSP430 tutorial, I elaborated the difference between Universal Serial Interface (USI) and Universal Serial Communication Interface (USCI) modules. In MSP430F5529 micro, there is no USI module as USCI is more robust and advanced than USI. There are 2 USCI_Ax – USCI_A0 and USCI_A1 and 2 USCI_Bx – USCI_B0 and USCI_B1 modules in MSP430F5529. Thus, the total USCI module count in MSP430F5529 is four.
USCI_As are better-suited for asynchronous communications like SPI, UART, LIN and IrDA communications while USCI_Bs are optimized for synchronous communications like for I2C and SPI communications.
With USCI we can expand communication and connectivity. We can then use CAN controllers like MCP2515, ethernet controllers like W5100, WiFi modules like ESP8266 and many others that are not typically available in any microcontroller.
Apart from these hardware interfaces, we can emulate software-based communications like software I2C, software SPI and software UART. One-wire or other non-standard format of communications like that of WS2812 neopixel LEDs, DHT11 relative-humidity & temperature sensor, etc can be created easily using software delays, timers, GPIOs or other hardware by deciphering communication protocols and replicating them.
It is my recommendation that we must invest in good signal/logic analysers and oscilloscopes to fully understand and appreciate the workings of different communication protocols. Timing diagrams and protocol rules are other areas that we must study deeply.