La forma más fácil de transmitir datos con reloj usando una MCU

Suponga que tiene una MCU funcionando a 80 MHz (actualmente trabajando con TI M4). Esta MCU tiene 128 kB de memoria para asignar algunos datos.

¿Cuál sería la forma correcta de transmitir estos datos en su forma sin procesar (solo bits, sin bits de inicio, sin bits finales, sin apretón de manos, sin reconocimientos, sin espacios, sin protocolo) sobre uno de los pines de la MCU y un reloj en otro pin? ?

Necesito llegar a 20 MHz, mínimo 15 MHz. Estaba pensando en usar un FPGA pero un MCU sería mucho más fácil (y rentable).

SPI puede funcionar a 1/4 de la velocidad de MCU, por lo que, técnicamente, es posible ejecutar SPI en Tiva a 20 MHz. Pero no necesito el protocolo SPI...

SPI realmente no tiene mucho de un protocolo más allá de enviar bits con un reloj, ¿qué es exactamente lo que está mal con SPI?
A modo de aclaración, ¿te refieres a 20 Mbits por segundo (casi 3 Mbytes/seg)? No hay forma de enviar 20 millones de puntos de datos por segundo (20 Mbytes/seg) con un reloj de 80 MHz.
Busque el modo SPI continuo. Usted es libre de transmitir tantos bytes como desee en un marco, PERO depende de su protocolo de software manejar correctamente los datos.
En este momento, necesito enviar 14,5 Mbits/seg.
el chip que estas usando es CC3200... no?

Respuestas (2)

El periférico SPI debería ser la solución perfecta para esto. Dado que la salida SPI en la salida en serie es 1 por 1 con los datos cargados en el registro de transmisión, debería estar listo para comenzar. Lo principal a considerar es que obtiene 8 relojes (si se trata de datos de bytes) a 20 MHz para que el software obtenga el siguiente byte de la memoria listo para salir.

Es posible que desee investigar. Algunas MCU tienen canales DMA internos incorporados que se pueden usar para transferir datos de la memoria a un periférico. Esta sería una excelente manera para su aplicación.

¿Qué pasa con un serializador LVDS ?

Probablemente no sea la solución más barata, pero definitivamente es fácil. Simplemente duplique los bits paralelos restantes o manténgalos en 1 o 0.