cancel
Showing results for 
Search instead for 
Did you mean: 

Connect bits streams at 13Mhz to GPIOs

michcfr
Associate II
Posted on January 23, 2017 at 23:54

Hello,

I have a board which have 8 x bit streams. Each bit stream has its own associated bit clock. So I have: 8 x 2pins (one for the bit stream, one for its associated bit clock). Each bit clock is at 13mhz.

I would like to connect these streams to GPIOs pins of a single Cortex-M MCU for further processing. Which STM32F should I use?

Thx,

Michel
17 REPLIES 17
AVI-crak
Senior
Posted on January 25, 2017 at 16:21

13mgts - it's the sound?

I think you want to 8 channels of audio. But why such a strange way?

Use ready-made audio codecs, for example in excess of cheap CMI8738. A little bit of magic, and the chip can be easily connected via the FMC / SRAM / MODE1 interface.

Features CMI8738 chip audio processing - much higher than any stm32f.
Posted on January 25, 2017 at 15:35

So the suggested solution is to dispatch the 8 bistreams over many cortex-M connected through SPI? 

For example: 4 x Cortex-M0 or 2Xcortex-M4 ?

It's one of the options, not a recommendation. Others mentioned other options, e.g. using an FPGA either to pre-process (deserialize or merge the streams and then input e.g. through DCMI - the question of processability of 13MBytes/s still remains) or do all the required processing in an FPGA entirely without an mcu.

The choice depends on the nature of those bitstrams and the required processing of the received data.

Tell us more and we'll can go deeper in the suggestions.

JW

Posted on January 26, 2017 at 02:53

The eTPU is more than an automotive processor, it also does motion control quite nicely. It came out of the automotive market, but the TPU coprocessor doesn't care.

I used it to get an extra 8 UARTs without any external chips. On another project I programmed it for a half UART (transmitter to a display), SPI, a bunch of digital I/O and some PWM. Another time it was PWM to multiple servos, plus SPI, and some DIO. Each channel is individually programmable.

The best part was when EE got TX and RX on the UARTs backwards, fine, I'll just twiddle these parameters and now the hardware is correct.

The TPU is a co-processor that is used for I/O stuff that needs timing. It is attached to a pretty big processor too. A recent powerpc chip is the general purpose processor, the TPU just takes care of the weird I/O that the chip manufacturers can't worry about because the market is too small.

michcfr
Associate II
Posted on January 26, 2017 at 14:06

Hello

The bitstreams come from different radio transceivers (at 8 differents frequencies).

So I would need to decode these streams simultaneously.

I hope it helps. Thx

Regards

Michel

Posted on January 26, 2017 at 14:02

Hello Andrei,

Thank you for your response.

So, for example, I may use 8 x SPI ports for the 8 bit streams? Any particular model/brand to suggest for my usage?

Thank you

Michel
Posted on January 26, 2017 at 14:50

Put a deserializer on the front end to get each bit stream into bytes, and then use the DCMI to clock in the 'words' which include the byte and a channel number.

Or rethink what you are doing, because it is going to be very hard to do any processing with multiple streams at these rates in software on these parts.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on January 27, 2017 at 14:15

Thank you for your reply.

Any suggestion of deserializer models?

Posted on January 27, 2017 at 15:17

I'd do it with an FPGA/CPLD type device.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..