cancel
Showing results for 
Search instead for 
Did you mean: 

Questions on the 32F746G Disco for audio DSP: How audio codec data is interpreted, compared to a typical ADC embedded inside STM32 uC.

manurp
Associate II

Hi,

I am currently working on developping a guitar digital looping pedal. I following my last post, I have starting looking into using the 32F746G DISCOVERY for my app, as it includes enough RAM to store audio data and has some interesting audio features as well. Since so far my project has been developped on Nucleo-F446RE, I'm wondering how I will be able to transfer what's already made.

Precision on what my prototype would do:

  • Sample the electric guitar signal with ADC, and reproduce it in real time with DAC
  • On the 1st press of a button, sampled data is saved in memory, while still being reproduced through DAC
  • On 2nd press of the same button, the saved audio would start playing in a loop, while being combined with what is being played in real time.
  • Can erase/overwrite a loop on the press of another button.

Here are my principal concerns:

  • The F746G interfaces to an audio codec via I2C, while my current project uses the ADC/DAC embedded in the microcontroller. However, after searching for hours, I have not been able to find any examples on how that works out. Precisely, I want to make sure I will still be able to interpret the sampled audio data in a way that allows me to perform basic DSP operations such as signal DC offsets, signal addition, FIR filtering, and so on. Can I

  • If I refer to the default pinout on STM32CubeMX, every pin on the F746G uC seems to be occupied by on-board features. That said, my project requires at least 2-3 external GPIOs to be programmed to detect user inputs (from push buttons). Can I repurpose the pins corresponding to unused Arduino headers, and have them interface with my push buttons?

Alternatively, how would the F429 Discovery compare? Obviously, the audio quality might be lower, as I am working with a 12bit ADC and there would be no AGND. Is it that big of a problem? I think my app might transfer more directly towards that board than the former, but it may be undoable considering the lack of separation of analog and digital supply lines.

If you see any easier option, please let me know

Thanks for your help,

1 ACCEPTED SOLUTION

Accepted Solutions

>  I want to make sure I will still be able to interpret the sampled

> audio data in a way that allows me to perform basic DSP operations 

Typically, codec ms work with signed data, i.e. 0 is mid-scale, 0xFFFFFFFF is -1 etc. And typically they filter out DC. Read the datasheet of your particular codec.

> Can I repurpose the pins corresponding to unused Arduino headers,

If they are unused, you are free to use them in any way the mcu allows. See the user manual for you Disco board, it contains also schematic and table of pin usage. Sometimes there are jumpers or silver bridges disconnecting the onboard resources from pins.

JW

View solution in original post

2 REPLIES 2

>  I want to make sure I will still be able to interpret the sampled

> audio data in a way that allows me to perform basic DSP operations 

Typically, codec ms work with signed data, i.e. 0 is mid-scale, 0xFFFFFFFF is -1 etc. And typically they filter out DC. Read the datasheet of your particular codec.

> Can I repurpose the pins corresponding to unused Arduino headers,

If they are unused, you are free to use them in any way the mcu allows. See the user manual for you Disco board, it contains also schematic and table of pin usage. Sometimes there are jumpers or silver bridges disconnecting the onboard resources from pins.

JW

That answers my question, thanks for your help!