Al recibir
Puede usar la misma velocidad en baudios si retrasa todo después del bit de inicio un poco. Esto se puede implementar con un elemento de retardo (2 inversores lógicos que actúan como un búfer con un filtro RC entre ellos) y un mux y un contador. O simplemente agregue otro MCU como dice oldfart. Golpe de bits vs solución de hardware. Fácil vs duro
Aquí está el elemento de retardo del que estoy hablando.
Aquíestáel enlace si quieres perder el tiempo.
Y los datos retrasados serían todo excepto el bit de inicio. Así que un contador que va a 11 y luego se reinicia sería algo. Y un mux donde un canal pasa directamente y otro canal atraviesa los circuitos de arriba.
Pero ahora, cuando lo estoy pensando, los datos están a una cuarta parte de donde debería estar. Si hubiera estado a la mitad, los datos habrían estado en el punto de transición, pero ahora el punto de transición está ... relativamente lejos, así que creo que puede leer estos datos sin ningún problema.
Misma velocidad en baudios, salida a entrada. No hay circuitos adicionales o golpes de bits.
Al enviar:
Solo los ceros envían la mitad 0 y la mitad 1. En otras palabras, simplemente puedes conectar un circuito que envía pulsos invertidos en los bordes descendentes.
Este es un esquema simple que hace justamente eso. Todo lo que tienes que hacer es cambiar la constante RC.
Aquíestáel enlace si quieres perder el tiempo.
Es difícil hacer algunos bits al hacer clic con la mano. Pero como puede ver, los unos mantienen la salida en 1, los ceros hacen que se reduzca durante un tiempo determinado y luego vuelva a subir. Exactamente como lo que estás tratando de hacer.
Gahh Acabo de darme cuenta de que este circuito no se volverá a disparar si se envían dos ceros en una fila ... Hmm, al enviar, creo que debes usar bit banging, porque las cosas son volteando a un reloj específico. Dudo que quieras usar un oscilador externo ... bueno ... ni siquiera sé si estás usando uno o no. De cualquier manera, recomiendo resolverlo en el lado del software.
TLDR;
Al leer, solo usa la misma velocidad de transmisión y todo debería estar bien.
Al enviar, usa bit banging. Si hay un reloj externo para el UART (convirtiéndolo en un USART), entonces puede modificar el circuito de envío anterior y resolverlo en el lado del hardware.