Mi MCU no puede activarse a partir de los datos de UART, por lo que quería activarlo desde la línea RTS, pero tengo problemas para entender el concepto.
Cuando estoy enviando datos desde mi MCU al periférico, veo que el periférico establece su línea en ALTO cuando su búfer está lleno. Y tan pronto como pongo mi línea en ALTA, el periférico deja de enviarme ningún dato.
Esto permite la comunicación full-duplex, pero esperaba que el periférico me notificara antes de enviar cualquier dato, configurando su propia línea en ALTO. Esto no permite la comunicación dúplex completo, pero este periférico no admite TX/RX simultáneos de todos modos, por lo que no sería un problema.
Entonces, ¿hay dos modos de control de flujo CTS/RTS? ¿Y tengo mala suerte de que el periférico admita el modo incorrecto? ¿Alguien tiene alguna otra sugerencia sobre cómo puedo activar mi MCU antes de que ingresen los datos de UART?
Lo que quieres es poder usar otras líneas de control (DTR/DSR). Es Data Set Ready / Data Terminal Ready, y resolvería su problema si su periférico (o el módulo BT utilizado) admitiera dicho comportamiento.
¿Eres capaz de agregar algo de HW a tu lado? ¿Tal vez podría implementar una línea de retraso simple registrando los datos entrantes a través de algunos registros de desplazamiento y activando su MCU en los datos entrantes para que (con suerte) esté listo para recibirlos?
La forma más fácil de hacer esto es usar una interrupción activada por flanco descendente y conectar la entrada en serie en paralelo con la entrada de interrupción.
Si tiene el control del protocolo, simplemente haga que cada paquete comience con un byte "FF", que será alto excepto el bit de inicio, que será bajo. Básicamente, esto solo generará un pulso bajo en el cable, lo que puede darle suficiente tiempo para despertarse y recibir los datos del paquete real.
chris stratton
Maestro
chris stratton
Maestro
chris stratton
Maestro
ktc
chris stratton
Super gato