Estoy tratando de depurar un controlador UART para el STM32F405. No funciona por encima de una determinada tasa de baudios (unos 50 kBd). Lo he conectado a un analizador lógico con capacidad analógica, y he visto que la señal es redonda; tarda en subir. Parece que a mayores velocidades de baudios la señal no sube lo suficiente como para que se pueda leer.
¿Cómo puedo permitir que la UART funcione a mayor velocidad? No estoy seguro de si esto es un problema de hardware, o si se puede corregir en el software.
Captura de pantalla del analizador lógico, MCU transmitiendo a 38400 baudios.
Captura de pantalla del analizador lógico, MCU transmitiendo a 115200 baudios.
Más detalles:
- Estoy leyendo la conexión serie con un chip FTDI conectado a mi escritorio.
- He olfateado esta conexión con un Saleae Logic 8 conectado a las mismas líneas que el FTDI.
- En las capturas de pantalla mostradas, la placa está enviando "pruebas" a través de la serie.
- La MCU forma parte de un controlador de vuelo OpenPilot Revolution.
8 votos
¿Es una salida de drenaje abierto? Parece una, con la resistencia pullup demasiado alta (o sin ella)
1 votos
@BrianDrummond ¿Estás insinuando que el OP ha configurado mal su IO?
0 votos
@DKNguyen Sí, ya que está hablando de un "controlador" no especificado (¿controlador de línea?) y no del propio STM. Por supuesto, podría estar hablando de un controlador de dispositivo (software), en cuyo caso tienes razón. Incluso en ese caso, es posible que el pin pase a ser de drenaje abierto, por ejemplo, a través de ESD si no se configura mal.
0 votos
@BrianDrummond. El driver al que me refiero es el software del microcontrolador para controlar la UART, para que la aplicación lo utilice. No sé si el pin es de drenaje abierto, pero forma parte de una placa (OpenPilot Revo, mencionada en la edición) que está pensada para conectarse a periféricos directamente sin resistencias externas.