Hay varias limitaciones en la velocidad de transmisión de UART en su configuración:
-
Qué tan rápido pueden cambiar las señales. Las salidas UART son simplemente señales digitales ordinarias. Estos podrían ir bastante rápido en el mismo tablero, pero no son apropiados para alta velocidad en su forma nativa.
-
Chips de convertidor RS-232. El microcontrolador emitirá señales digitales normales, mientras que un puerto COM de PC requiere niveles de señal RS-232. Los chips convertidores comunes generalmente tienen un límite de velocidad superior en el rango de 250 kBaud. Eso no significa que no pueda hacer su propio circuito que vaya más rápido, pero no podrá usar solo un chip de estante.
-
Cadena de velocidad en baudios en el micro. La mayoría de los micros le permiten dividir su reloj interno por algún número entero, y el resultado será 16 veces la velocidad en baudios. Por ejemplo, si tuviera un micro que funcionara a 30 MHz, entonces la velocidad en baudios más rápida probablemente sería 1.875 MBaud.
Algunos micros tienen un modo de "alta velocidad" donde se usa un múltiplo inferior a 16. Eso te da una mayor velocidad a expensas de la robustez. Esto es poco común en el mejor de los casos y, a menudo, no es una buena idea.
-
Las velocidades en baudios disponibles en la PC . Este es probablemente el criterio más limitante. La PC solo puede hacer las velocidades en baudios que están disponibles para el código de usuario, según lo que pueda hacer el hardware de UART en la PC y las políticas codificadas en el controlador.
La conclusión es que los puertos UART y PC COM simplemente no están diseñados para las velocidades que desea, ni siquiera se cierran. Si intentas superar los 115.2 kBaud, estás pidiendo problemas en algún lugar.
Encuentre una mejor manera de obtener datos de un microcontrolador a una PC.
Dicho esto, piensa en lo que esto significa en el micro final. Desea enviar o recibir un nuevo byte cada 33 ns. Muchos microcontroladores ni siquiera pueden ejecutar una sola instrucción en ese momento. Incluso en micros de gama alta, eso es sólo unas pocas instrucciones en el mejor de los casos. Piense en lo que tiene que hacer con esos datos o de dónde se supone que el micro debe obtenerlos con unas 3-5 instrucciones para manejar cada byte.
Su arquitectura en general parece inapropiada. Probablemente debería estar considerando usar un FPGA, o encontrar una mejor manera de abordar el problema en un nivel alto.