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.

MSP430FR6989: MSP430FR6989 Help with project

Part Number: MSP430FR6989
Other Parts Discussed in Thread: MSP-IQMATHLIB, MSP430FR5994

HI,

I would like the MSP430 to do the following :

1.) Use ADC to gather data from a sensor, and store it in a 4000-pt array of floats.

2.) Apply FFT to data.

3.) Repeat

Can this be easily done using the MSP430FR6989?

  • Part Number: MSP430FR6989

    Tool/software: Code Composer Studio

    Hello TI MSP430 Community,

    I have a question regarding the capabilities of the MSP430FR6989 microncontroller from TI. Currently I am using the MSP430EXP430-FR6989 Development LaunchPad from TI. My question is primarily about size.

    Firstly, I am very inexperienced in the world of microcontrollers. However, I am currently (although started only recently) reading the textbook MSP430 Microcontroller Basics from John Davies. Please excuse my ignorance in some of the following questions :

    1.) The essential goal of my project is this :

    - I gather data using a sampling rate of 500 Hz (via the equipped ADC on MSP430FR6989),

    - Store it in an array of size 4000 (of floats).

    - Apply the FFT to that data.

    - Repeat.

    Given the storage capabilities of MSP430FR6989, is this possible? I realize that the MSP430FR6989 has 2 KB of RAM and 128 KB of FRAM.

    Assuming that floats only require 8 bytes of memory, this would mean that I simply need 8*4000 = 32KB of memory for storage. Can I use 32KB of the 128KB FRAM storage for this? Is it efficient this way? 

    Thank you,

    Hung Hua

  • Hi Bob,

    There are libraries such as MSP-SDPLIB and MSP-IQMATHLIB available to get you started with this type of application. Please review the following resources:

    e2e.ti.com/.../520185
    e2e.ti.com/.../544382
    e2e.ti.com/.../
    e2e.ti.com/.../
    e2e.ti.com/.../

    Regards,
    Ryan
  • Yes, you can do this on MSP430FR6989 however there are a few limitations that should be considered when implementing this application.

    1. FRAM can be used to store any type of data you would like so a 32KB data array is no problem. For placing data arrays into FRAM you can use the persistent #pragma operator, see the compiler documentation for more information and complete syntax.
    2. MSP430 devices do not have hardware support for floating point, instead I would recommend using 16-bit or 32-bit fixed point for significantly faster and more energy efficient operations.
    3. The MSP DSP library (link) supports both 16-bit and 32-bit fixed point FFT functions up to 4096 points. For your application I would recommend using the 32-bit FFT function (see example transform_ex3_fft_iq31 to get started).
    4. While arbitrary FFT sizes are possible the algorithm is not efficient or practical for embedded devices. The MSP DSP library supports FFT sizes that are a power of two so you will need to change your FFT size to 4096 points to use the library.

    I would recommend taking a look at the following app note which uses the integrated ADC to collect samples and run filter and FFT operations using the DSP library. The design is for MSP430FR5994 which includes the new low energy accelerator (LEA) but the main application code will be very similar for MSP430FR6989.

    www.ti.com/.../tidm-filtering-signalprocessing

    Regards,

    Brent Peterson

**Attention** This is a public forum