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.
I am working on some moderately compute and I/O intensive but otherwise non-power critical application. Thus, I need almost all of the peripherals of the MSP430: UART, I2C, SPI, ADCs, and GPIOs. Because I don't really want to optimize the code and fast development time is much more important to me I was planning on running the chip "in standard configuration" and at the max freq. of 16MHz. In order to simplify development, I also wanted to work with the driverlib in hopes that it would allow me to not have to interact with the register/bit level of the chip. At least so I thought...
I am now coming to realize that I was probably wrong about that. I am astonished by the lack of documentation and examples provided by TI or the community that use the driverlib. I have worked with various other microcontrollers before (AVR, ARM, RISC-V, Xtensa) but I am completely new to TIs MSP430 series. I can't justify reading through the 600+ pages of "MSP430FR4xx and MSP430FR2xx family user's guide" in addition to the 100+ pages "MSP430FR247x Mixed-Signal Microcontrollers datasheet (Rev. C)" and 300+ pages of "MSP430 DriverLib for MSP430FR2xx_4xx Devices" in order to use the clock system and peripherals. From other vendors and API providers (both opensource and proprietary) I am used to having a number of minimal examples using their "higher-level" API (more or less equivalent to the driverlib) that helps one to get started. To my surprise, I was unable to find such examples showcasing the features of the driverlib. The driverlib documentation itself appears to be extremely poor and its "Programming Examples" at the end of every chapter are miserable. Almost all examples provided in CCS use bit manipulation to configure the HW. As already mentioned I am not willing to work on that abstraction level both because of development time, as well as code readability and maintainability. I actually abandoned CCS completely for a custom build setup using MSP430 GCC and MSP Debug.
I don't seem to be the only one frustrated with the lack of documentation. While looking for an I2C driverlib example I came across this thread: https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/777717/msp430i2041-msp430i2014-driverlib-i2c-driver---proper-driverlib-i2c-api-call-order-for-i2c-peripheral-register-reads-with-repeat-start-condition. Which coincidently contains the only working I2C driverlib example I was able to find.
At this point, I am on the verge of giving up due to the lack of high-level documentation surrounding the driverlib. But maybe I am just unable to find the resources. What I am basically looking for is the following:
A well documented and easy to use high-level C API / library, including examples (ideally with both interrupt-driven and polling architectures) to interface with:
UART, SPI, I2C, and the ADCs.
Additionally, I would like to configure the CPU (MCLK) to 16MHz and set up a basic watchdog.
Thank you in advance.
The main reason for choosing the MSP430FR2476 is its FRAM, which appears to be relatively radiation-resistant, and its local availability to me. So if someone has a working liker script laying around with which all data (stack, heap, etc.) is stored in FRAM I would be happy to have a look at it. I am basically looking to do the same as the fellow from this thread that appears to be stale since 5yrs: https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/542727/stack-inside-fram-on-msp430-ink_msp430fr6989-cmd
Hi Fabian,
I would recommend starting here: https://dev.ti.com/tirex/explore/node?node=AMlQVNd5TpsVA.OOFMkMwg__IOGqZri__LATEST
You will find all of the driverlib examples for FR2XXX for UART, SPI, I2C, ADC and more. I don't know if all the examples have implementations using interrupts and polling, but hopefully this is enough to get you started.
I would also recommend installing MSPWare to have a local copy of all the examples which you can import into CCS or IAR. https://www.ti.com/tool/MSPWARE
Regards,
Evan
**Attention** This is a public forum