MSP430F5529: MSP430F5529:

Part Number: MSP430F5529


I am working on a personal project where I get an audio signal and lights up a 32x32 LED matrix. So far, I have put together code that is utilizing the ADC of my MSP430F5529 Launchpad. I am planning on sending the audio signal through a FFT and then to the LED matrix. I was wondering if anyone could point me towards some example codes that show how to use the FFT coming from the ADC, and/or code that will send the LED Matrix a signal to light up from the FFT output. I have been using Code Composer Studios

I appreciate any help or ideas.

Thank you 


8 Replies

  • Hi Hayden,

    I know you're working on the MSP430F5529 but have you considered using the MSP430FR5994? The MSP430FR5994 has a Low Energy Accelerator (LEA) that can perform functions like FFT at low power. There is also a TI reference design called Filtering and Signal Processing with Low Energy Accelerator (LEA) on MSP FRAM Microcontroller that shows how to use the module with audio and an LCD display. Let me know your thoughts.

    Best regards, 

    Caleb Overbay

  • In reply to Caleb Overbay:


    Thank you for the quick response, I had not see the MSP430FR5994 before and wish I had, that is definitely the module I should be using. That being said, working with my current MSP430F5529 device, I already have hardware set up utilizing an input of RCA, AUX, and a microphone set up, and an ADC code for it, At this point in time, I would rather finish of with the current devices I am using, and then improve it with the MSP430FR5994 , unless the LEA is really going to make life 10x easier.
    I guess if it would be easy and worth it, I can switch all of my hardware to a MSP430FR994 and recycle a lot of my code, but I wouldn't plan to use the booster pack since I don't need the LCD screen or speaker.
    I have also been using the MSPWare library examples to point me in the right direction and have been looking at the three FFT examples and am looking at the third one in particular.

    //! \example transform_ex3_fft_iq31.c
    //! This example demonstrates how to use the msp_fft_iq31 API to transform a
    //! 32-bit real input data array to the frequency domain using the fast fourier
    //! transform (FFT) with fixed scaling.

    Should this example code work for both the both MSP430 boards?
    Thank you for the help, if my current code would help at all, I can also add that.

  • In reply to Hayden Oeser:

    Hi Hayden,

    I completely understand wanting to finish development on the hardware you currently have. The examples you're looking into are in DSPLib and will work on any MSP430 device. The implementation however will vary from device to device, but this is something you don't have to worry about. For example on the MSP430F5529 the library will use the HW multiplier whereas on the MSP430FR5994 it will use LEA. All of this is done automatically depending on which device you choose to run the DSPLib code on.

    Another benefit of the MSP430FR5994 is the FRAM memory that is ideal for data logging and is much faster reads and writes when compared to flash. Let me know if you run into any issues along the way and I'll be happy to help.

    Best regards,
    Caleb Overbay

  • In reply to Caleb Overbay:

    I have another quick question regarding using analog input and out put ports. I have an analog input that I have successfully put through the MSP430s ADC, but I also want that exact same signal to be at one of the output pins. So, my question is regarding setting analog inputs equal to an analog output. Can I just set the input pin equal to the output pin, or do I need to use an DAC to the output?
    I have been trying code such as
    P6DIR = 0x01;
    P1DIR = 0x00;
    P2DIR = 0x00;
    (P6IN & BIT3) == (P1OUT & BIT2);

    or using the ADC
    A2results[index] == (P2DIR & BIT2);

    Am I looking at the wrong approach? Any suggestions would be helpful.
    Thank you
  • In reply to Hayden Oeser:

    There are no analog output pins. To get a copy of an input signal, use a wire.

  • In reply to Clemens Ladisch:

    Thank you for the reply,
    Does that mean that a PWM output or DAC is out of the question?
  • In reply to Hayden Oeser:

    The problem is that I have 4 analog inputs and I want to select to use only one at a time to give a signal to another connection, so if I do straight wire it, I would lose the ability to choose from the 4 inputs.
  • In reply to Hayden Oeser:

    PWM or another sort of DAC would require external components to convert the digital signal back to analog.

    If you have an external component anyway, better route the original signal through an analog multiplexer (e.g., SN74LV4051A/CD4051B or SN74LV4052A/CD4052B).