FIFO: I've got 8 bit mono PCM data coming in. I want to set up for 16 bit per channel going out. Do writes then point to the 8bit (stereoized) PCM or do I need to expand that to 32 bit stereo buffers and then issue writes from that? Given what I'm seeing in the specs, do I need to have those blocks in particular length chunks (e.g. aligned in 8 stereo sample chunks)? If I'm getting an ISR on FIFO empty (as opposed to xfer to FIFO complete), I'd have about 45 uS (at 22KHz) to get the next transfer started so that's not ideal timing. I'm using SSP 1.2 and I don't see a paginated users manual for that. All I've got is an HTML manual so I can't do the page reference. maybe you have a [local] URL for it.. I'm assuming that putting the name of the callback function in the properties panel of the I2S HAL driver will fill in the information enough to to link it in. During a ISR for this, I'd need to switch buffers and get the transmission going again to avoid a FIFO starvation. In the upper layers I can notice a buffer switch and deal with the pull from elsewhere to repopulate the now empty buffer. The trick to that would be the HAL write being re-entrant from ISR. Will it do that?
↧