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.

Is an ARM Cortex M4F appropriate for audio synthesis and WiFi communication?

Hello,

I am in the design phase of my prototype, selecting the right components, but I am not sure about the main processor I will use. The product needs to meet the following requirements:

1- Wireless communication using WiFi. The device will exchange logs and parameters with a browser using WebSockets. We can try with BLE too as we are aiming phone/tablets.

2- Sound generation and output to Headphones. I have to create a vector from scratch using formulas like "sin()", "rnd()", "log()", "sqrt". Sounds like Pure Tones and filtered white noises.

3- Get sensors data using i2c or SPI, controlling an audio codec using SPI, and flash memory access to store the logs.

4- Floating point operations is preferable as we want the best quality

5- Consume less power as it is possible. It will be battery powered.

I am almost done with the selection of the devices but the MPU-MCU I will use. I will probably use a CC3100Mod/CC3200Mod/WL1835Mod but I am not sure which one yet.

I have these 3 MPUs families in my list:

1- MSP432P4xx 2- Tiva C Series 3- C674x DSP

Which of these seem to be more appropriate for my needs? Maybe there is another one from TI I haven't considered. 

  • Hello Leinho,

    This is very unconventional way of answering, but still: Which car is better Off Road, Family Van or Sports LE. Well it depends on the utility that is being planned with it.

    Now that you have put out the requirements:

    1. Study the specification of each of the devices to see what it offers in terms of capabilities
    2. Is there a reference design which meets as much as possible of the requirement so that your development of the actual application is reduced
    3. Is it cross platform compatible, should you run into an issue
    4. Are there any other devices (guess you missed CC32xx) that give more bang for the buck.

    Remember that certain trade off's are required when coming to a uC... You need to be the better judge.

    Regards
    Amit
  • Hi Amit,

    Thanks for you answer and it was really helpful. 

    I looked into the datasheet of the CC32xx and it seems great considering that it has also WiFi in it but does not have a floating point unit. I guess it is a must for audio synthesis in order to have a great quality.

    Nevertheless, I tried to find a Cortex M4F with i2s (audio) support in TI but I couldn't. I looked into the TIVA series for example but does not seem to work for audio applications. Maybe, there is a different way rather than i2s to output audio to headphones.

    This video made me think that I could use an Cortex M4. It is impressive: www.youtube.com/watch.

  • Those of us here for some time (love) Amit's use of "unconvention" in addition to his (always) superb TM4C mastery & explanation...

    And I too like your, "Reducing your request to a reasonably clear listing of specs."   That's all too rare here (possibly due to the absence of "Poster Guidelines" - which (some) few here have (on rare occasion) noted!)

    As good as your specs are - multiple (other) ARM M4s exist - which include performance I2S peripherals.   You may have been "kind" to withhold them from mention here - yet "proper" product design demands a "full spectrum" component search - does it not?

    It most always proves of great value to examine how "market leaders" have overlapped your product/project.    If you investigate well you may find "tear downs" which can save you months of (misspent) time/funds/effort...  

  • Hello Leinho

    CC32xx has I2S support using the McASP interface. I am a bit surprised myself that the CC32xx does not have a FPU inspite of having the M4 core. That is something you may want to check with CC32xx forum, if there is a proposed M4F solution.

    Regards
    Amit
  • Yes, I am surprised too as it is also mentioned in many sites that it has a FPU which is not true. It is a pity for me because it is the only thing that it is lacking. I would definitely choose it if it had a FPU.

    I will ask that in that forum. Thank you!

  • leinho said:
    I have to create a vector from scratch using formulas like "sin()", "rnd()", "log()", "sqrt".

    Maybe the CMSIS-DSP library could be used to perform the equivalent functions using integers stored in Q "number format". E.g. the Fast Math Functions in CMSIS-DSP contain Sine functions arm_sin_q15 and arm_sin_q31 which from looking at the source code only use integer operations.