2025-04-29 5:37 AM
Hi
I'm planning to make a digital mixer that takes 4 analog audio input channels (2x stereo), processes them with digital effects, in 24 bits, and outputs 4 analog audio channels. I’m trying to figure out which chips may be compatible for my project. I have not done any development with STM MCUs or boards before, and I have no experience with the CubeIDE.
I need some clarification about the specs of the stm32 boards. I thought the stm32n655l0 might be suitable for my project. However, I’m not sure how many i2s channels it supports. On his page right here it says "6x SPI, of which four I2S-capable". On the other hand hand, in their data sheets on page 19, it looks like it only has three i2s-interfaces.
Also, I'm not sure how many I really need. Ideally I should get one single DAC/ADC chip with 4 channels in/out. Then set up one single full duplex stream in DMA mode, which transfers back and forth between the MCU and audio codec. In that case, I'm not sure which ADC/DAC chips it would be compatible with. From the STM32N6 sheets quoted above, page 76 under "Serial audio interface (SAI)", it says:
Audio protocol: I2S, LSB or MSB-justified, PCM/DSP, TDM, AC’97
I believe this indicates that the MCU would support multiple channels (beyond stereo) in a single data line. If I can do that, I probably need (only) two i2s interfaces, is that correct? But chips manufacturers vary in what they call "TDM". In some data sheets, there is one pulse from the LRCLK at the start of each frame, in others it's just like standard i2s, except that multiple channels are being transmitted during each of the "left" and "right" parts of the LRCLK cycle. Can the stm32n6 handle both versions, and does the HAL library have support for both, or would I need to do low-level programming?
Also there's the "PCM/DSP" protocol referred to in the stm32n6 data sheets. Several audio codec manufacturers advertise the "DSP mode", is this the same thing? Can this mode handle multiple channels beyond stereo, and is it a well defined standard, unlike (apparently) TDM?