Assume you have an MCU running at 80 MHz (Currently working with TI M4). This MCU has 128kB of memory allocating some data.

What would be the proper way to transmit this data in its raw form (bits only, no start bits, no end bits, no handshake, no acks, no gaps, no protocol) over one of the MCU's pins and a clock on another pin?

I need to reach 20 MHz, minimum 15 MHz. I was thinking of using an FPGA but an MCU would be much easier (and cost effective).

SPI can work at 1/4 the MCU speed so, technically, it is possible to run SPI on Tiva at 20 MHz. But I do not need the SPI protocol...

  • 5
    \$\begingroup\$ SPI doesn't really have much of a protocol beyond sending bits with a clock, what exactly is wrong with SPI? \$\endgroup\$
    – Gorloth
    Jan 27, 2015 at 22:22
  • \$\begingroup\$ By way of clarification, do you mean 20 Mbits per sec (almost 3Mbytes/sec)? Theres no way to send 20M data points per second (20Mbytes/sec) with an 80 MHz clock. \$\endgroup\$ Jan 27, 2015 at 22:40
  • \$\begingroup\$ Look for continuous SPI mode. You you are free to transmit as many bytes as you want in a frame BUT it is up to your software protocol to correctly handle the data. \$\endgroup\$
    – spearson
    Jan 27, 2015 at 22:41
  • \$\begingroup\$ At present, I need to send 14.5Mbits/sec \$\endgroup\$
    – Gilad
    Jan 27, 2015 at 23:37
  • \$\begingroup\$ the chip you're using is CC3200... isn't it? \$\endgroup\$ Jan 28, 2015 at 0:03

2 Answers 2


The SPI peripheral should be the perfect solution for this. Since SPI output on the serial output is 1 for 1 with the data loaded into the transmit register you should be good to go. The main thing to consider is that you get 8 clocks (if dealing with byte data) @ the 20MHz to have the software get the next byte from memory ready to be output.

You may want to investigate. Some MCU's have internal DMA channels built in which can be used to hose data from memory to a peripheral. This would be an excellent way for your application.


What about an LVDS serializer?

It's probably not the cheapest of solutions but definitely an easy one. Just duplicate the remaining parallel bits or keep them @ 1 or 0.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.