cancel
Showing results for 
Search instead for 
Did you mean: 

New to STM - is there a clear best choice board for real-time audio & video programming / possibly ML?

NNagy.1
Senior

I've been recommended the G4 or F3 based just on the fact that I'm interested in DSP, but am still trying to narrow things down a bit further, or get a second opinion.

One particular project I'm especially interested in is a live audio sampler / looper, so I either need on-board ADCs/DACs or an I2S interface (I have a PMOD I2S2, so as long as I can hook that up). I would also like a board that is very little interrupt latency since this project would involve a lot of starting / stopping / manipulating signals on the fly. I highly doubt any of the boards have enough on-board memory that I can store substantial audio samples, so I'd probably need an off-board RAM and an easy way to connect to that.

In general, I like plenty of freedom with programming boards and very little hardware abstraction. I don't know if that makes a difference.

Sorry if all of these specs are trivial, and maybe any board will do, but I thought I would ask the community!

14 REPLIES 14
berendi
Principal

F3 and G4 based boards don't have much RAM. I'd rather pick one of the F4, F7 or H7 based discovery boards, some of them have 8 or 32 MBytes onboard SDRAM. You can connect a USB flash drive or maybe an SD card for permanent storage.

All of them should have ADC, DAC and I2S interfaces (I2S disguised as SPI), but you might want to check if the pins are easily available on the board, sometimes they are tied to onboard peripherals.

Thank you for the advice! I'm currently looking at getting the Nucleo-144 with STM32F767ZI MCU. The Nucleo boards from what I can tell seem pretty bare-bone, so I don't think that would cause any issues with pin availability? Would that add extra difficulty for USB drive / SD connection though?

Nucleo boards have user USB ports, usable both as host or as device, but only 12 Mbit/s (USB full speed). SDIO pins should be available, it would be a few times faster.

You can't add external memory to a nucleo board, it would be very slow and error-prone, so you must work with the MCU internal memory. F7 and H7 series have lots of internal RAM, but H7 has a couple of ADC issues, so stick with the F7 then.

Yes, there are lots of available pins, but you should still check which of them are connected to the onboard peripherals, ethernet occupies a handful of pins.

How problematic are the H7 ADC issues? After reading more into the F767ZI, it's not quite the RAM capacity I'm looking for (only 512KB). I'm hoping for something that can store >10, ideally >15 seconds of audio at a time. If I did my math right, for 2-channel 16b audio at 44kHz, I can barely store a couple of seconds on that board. The STM32H747AG on the other hand has 1MB of RAM - still "less than half of what I'd hoped for - Theoden", but it's something. Don't know if there are any other series that have more RAM than that?

Having skimmed the Nucleo-144 manual, it sounds like Ethernet interferes with the pins for one of the I2S channels, but there's two other channels that seem to have their own pins.

How problematic are the H7 ADC issues? After reading more into the F767ZI, it's not quite the RAM capacity I'm looking for (only 512KB). I'm hoping for something that can store >10, ideally >15 seconds of audio at a time. If I did my math right, for 2-channel 16b audio at 44kHz, I can barely store a couple of seconds on that board. The STM32H747AG on the other hand has 1MB of RAM - still "less than half of what I'd hoped for - Theoden", but it's something. Don't know if there are any other series that have more RAM than that?

Having skimmed the Nucleo-144 manual, it sounds like Ethernet interferes with the pins for one of the I2S channels, but there's two other channels that seem to have their own pins.

The STM32H743 errata lists quite a few issues. I haven't read the others, they might be better.

I haven't seen an ST board with decent ADC accuracy yet (but haven't checked them all). The ones I've checked have no separate analog supply/reference source, so the channels tend to be quite noisy. (I don't mind, as I need some temperature readings only)

There are no STM32 MCUs with more than 1 MB.

Nucleo boards have no onboard RAM, only what's inside the MCU. I don't think it's possible to connect external RAM chips at reasonable speed. Only the discovery and evaluation series boards have onboard SDRAM.

Performance-wise, the H7 is already intersecting with the lower-end Cortex A.

Have you considered such a core/board (like an A5) ?

Decent performance, proper support for external memory (RAM/Flash), a MMU, OS support, and a larger pool of software to draw on.

Microcontrollers like Cortex M are the cheap microprocessor incarnation, with onboard memory and mostly for on-the-fly data processing/manipulation.

@Ozone​ I'm less familiar with Cortex A series. Part of why I was avoiding something with that many features is I didn't want my design to start getting too complicated. How are their I2S interfaces / capabilities generally? (Maybe that's a silly question, but I don't find as much information on Google as I do for M series)

Another question about Nucleo: I've been told the STM32 M series boards have support for FMC, but I'm not sure this is accessible on the Nucleo boards? (Alternatively I could use an SPI for external memory, I suppose)