STM 32 F4 Discovery and Audioweaver, anyone tried?

SPDIF in, slave-F446RE board, -6dB, I2S master out ->

I2S slave in, ASRC from someone, fixed SF out, I2S master out ->

SPDIF in (slave)-F446RE board, FIR DRC or whatever, SPDIF out, ->

SPDIF in (slave=-F446RE board, FIR xover filter, l- I2S master out -> CCA01M1
..........................................l.........................l- I2S master out -> CCA01M1
..........................................l- SPDIF (master) out ->

SPDIF in (slave=-F446RE board, FIR xover filter, l- I2S master out -> CCA01M1
..........................................l.........................l- I2S master out -> CCA01M1
..........................................l- SPDIF (master) out ->
And so on
 
Last edited:
Hi again Togeirs
I have so fun reading you 🙂 !!!!!
I see that you goes deep and deep (and so much quick for me) trough your researches...im so happy seeing that.

I think (seems like you) that for most real application for audio digital filtering process the multichannel (more than 2 channels) path is the way to go.

I had a look at STM32F446RE that you say and i agree you and that for me seems much more suitable for do something much more in the path to correct way.

Interesting that CCA01M1 board ... but how about real audio performance (DAC and AMP specs and qualitty, etc) ?
I cannot find so much on ST web about the real audio specs of that expansion board.

and last i see maybe will be infinitely expandable system with a chain loop spdif slave and CCA01M1 amplifier boards...that will be wondeful !

Anyway... for me looks really promising all you purposses

But i think the REAL question now is : how manage the "woole think" ?
Audioweaver seems not goes to that DSP board.

so...

What software to design and program the filters to the board?
What software tools we have to work, what soft development (to make any tool for end users) tools we have??

I think at the end all the hardware stuff is only 50% of the solution, and need to have a soft tool that can design manage and develope properly all the system.

Keep on !

Regards
 
Last edited:
Finally i can locate on ST (http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00024470.pdf) some audio specs about this audio extension board CCA01M1 because have a ST350BW chip that seems is a multipurpose audio amp chip with i2s input (DAC 32-192K sample rate) and a PWM amp 2.1 channels , L/R + LFE, but diferential output configurable bridge for one, two or tree channels operation.

The audio performance seems decent but far away a "hi-end" specs.
Seems have a "standard" dac (ST not speak nothing about his specs) and a PWM amp section with a rate power about 25W at 8ohms and at 1% THD with 25V vcc.

Have some sort of digital filtering procesing for EQ, Hi and Low pass filtering, and some biquads funtions for DRC control (dinamic range) and clip limiters.

Well decent amp at this price and so much interesting at this price but i dont think fits audiophile goals.
 
You are right about the configuration. A large pile of work....
To me the spec of the amps is much better than any speaker element I have seen.
I would also suggest to measure the voltage output amps of the speaker to see if more power is needed. Splitting of a signal so that 1 V in = 1/2V + 1/2V out gives two amps that needs 1/4 the power each.
1 amp: U^2/R
2 amps: ((U/2)^2)/R = U^2/(4*R) each. So thats like one 200W amp.
Split in 4 and its like one 800W amp.
In real life it is not even distribution of energy but the need of watts for gets less.

I think for most domnestic use its enough. For professional, maybe not.
And look at the price. Please do not compare spec with 10 000$ gear. But maybe you can compare the performance if the speaker is made propperly with good elements and 4 way construction. Maybe even 2 - 4 basses for lowdistortion output.

Example of '1000$' gear:
The Genelec 8030B Nearfield Monitor: compact, powerful, efficient!

Tech Specs
Powered Yes
Power Configuration Bi-amped
LF Driver Size 5"
LF Driver Type Cone
HF Driver Size 0.75"
HF Driver Type Dome
HF Driver Material Metal
LF Driver Power Amp 40W
HF Driver Power Amp 40W

Total Power 80W
Frequency Range 58Hz-20kHz (±2 dB)
Crossover Frequency 3kHz
Maximum Peak SPL 108 dB
 
Last edited:
Softwaretools:
The tools suggested by ST are all very good.
But it is coding. And quite a lot of that.
I'm only dreaming of such a cheap modulebased system. Im not saying I will make one....

And I am NOT certain the layout of the board supports all the inputs and outputs!
 
I agree that speakers performance is the last word about to have any good audio system...but i see in all the years that the first lack in speakers systems is to have high efficience with good accuracy.

I think that any "good" speaker system with >85-88db db 1w-1m efficience is easy and cheap to find for that i think this valor is most commun in domestic use.

That Genelec monitor speakers you say i think is an good example about because their 100db 1w-1m efficency explain most part their 1000$ costs, but that costs i think not easy fit for "most" domestic uses.

In these days i think any amp system can do a pretty decent job but if that is correctly implemented (thats the question !), and have enough power to well compensate any lack of speakers efficiency is so easy at lower costs.

I agree with you that ST350 can do the job pretty well al so lower costs.
But I cannot see any problem in that because i think we have so many options about amp options.
 
But for me question now is if STM32 boards can fit to make a cheap modular DSP for digital filter procesing and how to make this.

I think DSP STM32 boards is not well explored option for audio processing but have the design and power...but i think maybe is only because any soft tools are today developed for do that at least from the user perspective.

Im keep on to explore little more that...

About your doubts say on inputs, spdif in and 4xi2s out (will F446RE) be enough because if can properly chained we can have 2 boards (16 channels total output) that for me seems more that enough for any system at only 20$ costs !.

I like you i dont well understand how 2 xSAI work in the board (i hope SAI can act for slave inputs adding too to the spdif input) and with 4xi2s out (3 muxed ??)...we have total 8 channels in/out in only one DSP board for processing :
2x spdif+2xSAI inputs
4xI2s outputs



Regards
 
Reading better specs i see that F446RE have:
Inputs :
4xspdif
Outputs:
3xi2s (can be muxed or not)

and input/out taht can be programed

2 x SAI (i think can act for i2s outputs too)

So...we can have 8 channels inpu (from spdif) and total 10 out channels for 3xi2s + 2 x SAI
 
And finally yes ! ... Lik you I see for what i know a real pile of work of hand asembling coding (ST tools are great but for what i know only for asembling and load the code to the board) and too will need hand coding at any C IDE (ST Cube, Eclipse, etc) to program DSP and have STM32 board up running for audio processing and finally ... more work to try "build" any kind of user interface to make a real usabilitty of the woole system...maybe so much work if cannot find any shotcut about sotf tools.
 
Regarding STM32F446 I cannot find how to use the S/PDIF for processing (S/PDIF input to SAI output). There is no recovered S/PDIF MCLK output neither the SAI PLL's cannot be synced to S/PDIF. So the S/PDIF on these devices is quite useless for anything else than for monitoring (like processing the input using FFT and displaying some graphic presentation of the spectrum on LCD). Only if you run SAI's as master and your external S/PDIF source can be synced as slave to your clock (word clock or super clock = mclk) then it can be possible.
 
Thanks mhelin.

So...you say spdif inputs cannot be well used in any way as "real" audio input sources ????

I dont understand so much what all you said but i dont understand how ST can make a board design that spdif wont be synced to outputs that will be a shame...anyway at F446 seems there are for audio processing purposses at least 2x SAI (that will be i2s inputs or maybe and better can be programed for TDM multichannel ? ) and 4 x i2s outputs.

Maybe will be sufficce with 4 channels (sai on i2s) input and 8 channels out...and SAI on TDM can be explored to have more multichannels input.

I think force master clock SAI's will sacrifice so much flexibility...but there are that posibility.

Im much more worried about all big work i see evolve make all softw stuff needed to make this board work for audio processing purposses.

But we should not be forget are speaking about a board at only 15$ cost.

Regards
 
Last edited:
But...thinking little more about spdif sync you say i believe will be well usable inputs because we need only receibe frames synced with source only to full the input buffers then do processing this audio frames with DSP (thats our main purpose) and empty the output buffers with the audio frames processed to outputs...so we need sync input and outputs with same pll clock for do that ????...im think not.

Seeing reference manual all seems factible to me...

http://www.st.com/web/en/resource/technical/document/reference_manual/DM00135183.pdf

pages 900 and up for spdif

But...maybe im totally grong because (for now) im a totally newby on DSP audio process.
 
Last edited:
I think that any "good" speaker system with >85-88db db 1w-1m efficience is easy and cheap to find for that i think this valor is most commun in domestic use.

That Genelec monitor speakers you say i think is an good example about because their 100db 1w-1m efficency explain most part their 1000$ costs, but that costs i think not easy fit for "most" domestic uses.

But I cannot see any problem in that because i think we have so many options about amp options.

Then we agree🙂 Any I2S in amp can be used. Or have a i2S in DAC for analog out...

Regarding the Genelecs I use this calculation:
Max output: 108dB, 2 elements at 40W each
Each element: 105dB. 1 element at 40W
40 W is about 2^5 W= 32W
5 times halving is -3dB x 5 = -15 dB
=> 105dB at 32W = 90dB at 1W
Responce +/-2 dB
So the elements are a little under 88 dB sensitivity.
This is more realwold numbers for this kind of elements.

(Genelec is made to play all day in music/film/radio studios. I measured a whole bunch of 1032As in control rooms 20 years ago)
 
Reading better specs i see that F446RE have:
Inputs :
4xspdif

So...we can have 8 channels inpu (from spdif) and total 10 out channels for 3xi2s + 2 x SAI

I am afraid the 4xspdif is 4 SPDIF lines where 1 line can be chosen (MUX).
So only 1 SPDIF input at the time unfortunately.

But it eases the making of an input selector....

(The SAIs can be configured as SPDIF transmitters (only 1 pin used) but not receivers and of cource as PCM/TDM, but I think that will be on expence of a I2S as it is only 64 pins)
 

Attachments

  • STM32F446.JPG
    STM32F446.JPG
    93.4 KB · Views: 310
Last edited:
Regarding STM32F446 I cannot find how to use the S/PDIF for processing (S/PDIF input to SAI output). There is no recovered S/PDIF MCLK output neither the SAI PLL's cannot be synced to S/PDIF. Only if you run SAI's as master and your external S/PDIF source can be synced as slave to your clock (word clock or super clock = mclk) then it can be possible.

"The SPDIFRX offers the possibility to use either DMA spdifrx_dma_req/clr_d) or interrupts for transferring the audio samples into the memory. The recommended option is DMA, refer to Section 27.3.10: DMA Interface for additional information.
The SPDIFRX offers several way on handling the received data. The user can either have a separate flow for control information and audio samples, or get them all together."

The datarate can be read from the control information. And SAI or I2S master clock can be set accordingly
So with some buffering it could be done. But there are always some risk of drift between input and output. Maybe DMA interrupts can be used to calculate drift and then compensate?
 
Appearently ST has thought of sync:
"The SPDIFRX also offers a signal named spdifrx_frame_sync, which toggles every time
that a sub-frame’s preamble is detected. So the duty cycle will be 50%, and the frequency
equal to the frame rate.
This signal can be connected to timer events, in order to compute frequency drift."

For STM32F7 it says:
The SPDIFRX also offers a signal named spdif_frame_sync, which toggles at the S/PDIF
sub-frame rate that will be used to compute the exact sample rate for clock drift algorithms
 
So i think first all we need well define what number of inputs and outputs can configure for properly work with audio signals in that boards.

Then we need know how to manage buffering inputs and outputs (because we need use buffering for sure) and how to process the audio signal inputs with dsp algoritms.

For buffering input and output im sure ST board have well know practices to avoid frecuency drift and do the job dsp process between and mantaining the sync of signal input and output , but sadly im not the person to reply how to do it ...