Uso multiplexado de pines de E / S: salida de pulso PWM + UART

0

Tengo el problema, tengo un dispositivo con pines de salida limitados y quiero saber si es posible implementar un uso de múltiples pines con HW / SW adicional (modo multiplexado por tiempo).

En mi caso, mi dispositivo es un medidor de flujo (basado en un ARM Cortex M0 STM32L051) y tiene por defecto una salida de pulso en dos pines (que están destinados a transmitir una señal PWM en modo push-pull a través de la E / S controlador: iC-Haus iC-DXC3).

El otro uso que quiero sobreponer estos dos pines es para una comunicación UART (RX / TX). Solo para el caso de uso del servicio, como actualización de firmware. La funcionalidad de UART solo debe estar disponible justo después de iniciar el dispositivo por un corto período de tiempo (por ejemplo, 5 segundos). Después de ese período, el pin cambiará en el modo de salida de impulsos hasta el próximo reinicio.

¿Puede alguien explicarme por favor, si esto sería posible en general y, si es así, tal vez dé algunos consejos sobre cómo se podría realizar esto?

    
pregunta user9564464

2 respuestas

0

Coloque una resistencia entre CFO y NIN para usar la serie UART y hable half-duplex en el pin OUT del iC-DXC3.

Use OE para controlar la dirección (alto para enviar, bajo para recibir) enviar datos UART normales en el pin NIN

Para recibir, configure el pin conectado a NIN como una entrada con un pull-up débil y establezca OE bajo. Ahora los datos recibidos y presentados en OUT y reflejados en CFO se presentarán a través de la resistencia en NIN donde se pueden leer.

A menos que tenga un UART con capacidad de operación semidúplex de un solo pin, deberá comunicarse en una de las direcciones mediante una emulación de software uart. El envío es, con mucho, la opción más fácil de implementar en software.

Si, por otro lado, desea realizar conexiones internas para su UART, también puede hacerlo. pero tenga en cuenta que durante la operación UART el pin de salida del iC-DXC3 enviará una mezcla de las señales transmitidas y recibidas.

    
respondido por el Jasen
0

¡Por supuesto! Cuando lea la hoja de datos y la guía del usuario de su STM32, notará que todos los pines de salida tienen varias funciones, que se configuran al establecer algún registro en el valor apropiado.

Su firmware hace eso en algún lugar para poner los pines en el modo de salida correcto y "conectar" el módulo PWM (temporizador) a ellos.

Simplemente haces lo mismo, pero con UART, después del arranque.

Tenga en cuenta que básicamente todos los chips STM32 ya vienen con un cargador de arranque, que puede habilitar, que le permite cargar firmware en un bus serie, antes de que se inicie el firmware normal. Es probable que ni siquiera tenga que implementar nada, simplemente habilite ese cargador de arranque utilizando el pin BOOT0 de su STM32. Lee el manual! (RTFM)

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas