¿La velocidad de GPIO está involucrada en la velocidad en baudios de mi USART?

3

Estoy trabajando con am ARM Cortex M3, donde dos pines GPIO están configurados como función alternativa para su uso como pines USART. Al configurar los pines como función alternativa, tengo que configurar la velocidad de salida de esos pines. (Los puse a 50Mhz.)

Leer el manual de referencia (disponible aquí ) en las páginas 613 y siguientes , la velocidad en baudios del USART parece depender solo de la velocidad de reloj APB1 f_CK .

¿La velocidad GPIO establecida influye en la velocidad de transmisión de USART?

    
pregunta Randomblue

3 respuestas

1

Por lo que entiendo, la velocidad de salida es la tasa de actualización de la salida. Siempre que sea razonablemente más alto que la velocidad a la que cambia su salida, no debería importar demasiado.

    
respondido por el Armandas
3

Echa un vistazo a la arquitectura de tu procesador. Para este propósito, uso el LPC1769, pero es muy similar en otros procesadores.

En esta plataforma, el procesador no está directamente conectado a los periféricos. El procesador, como DMA, Ethernet, USB, RAM y ROM, se ejecuta en su propia matriz AHB. Esta matriz contiene conexiones a varios periféricos de alta velocidad en el procesador. Por ejemplo, el procesador se conecta directamente a la SRAM. El DMA también lo hace, por lo que la CPU puede manejar las instrucciones y el DMA puede (en el fondo) mover o leer datos desde / hacia los periféricos.

Los periféricos de uso general como SPI, UART, ADC, PWM, etc. están en un bus periférico separado (APB). Hay un puente entre la matriz de alta velocidad y este bus. Esto causará demoras en la transferencia de datos (porque el bus puede estar ocupado).

En el caso del LPC1769, hay 4 pines GPIO de alta velocidad. Si el estado de estos se cambia, será wil; tener efecto inmediato. Esto permite, teóricamente, una velocidad de actualización superior a la frecuencia de reloj de la CPU.

Usted dice que el máximo. La velocidad de actualización depende de la frecuencia de reloj APB1. La frecuencia de reloj APB1 es la frecuencia de reloj de todos los periféricos en el grupo 1, que puede ser GPIO y UART. Este reloj suele ser más bajo que la CPU, para ahorrar energía.

La velocidad de actualización de GPIO y UART no dependen una de la otra, sino que dependen de la velocidad de reloj de los periféricos y la estructura de AHB / APB.

    
respondido por el Hans
1

En muchos casos, la configuración de "velocidad de salida" de un pin controla la velocidad de giro. El fabricante normalmente no especifica el comportamiento exacto del dispositivo con diferentes configuraciones, sino que especifica que:

  1. En cualquier configuración particular, la velocidad de giro de salida será al menos lo suficientemente rápida para acomodar una salida de onda cuadrada de una velocidad particular.
  2. Especificar una configuración de velocidad más lenta resultará en una velocidad de giro más lenta, aunque el fabricante generalmente no especificará exactamente cuánto o cuál será la forma de la onda.

Especificar una velocidad de giro más rápida hará que el voltaje de salida cambie más rápidamente entre VDD y tierra. Por lo general, esto aumentará las cargas máximas en VDD, las emisiones de RF y la aparición de timbres, rebasamientos y otros efectos desagradables en la línea de salida que se está cambiando. Si es importante que un dispositivo de flujo descendente vea un interruptor de salida dentro de 10 n desde el momento en que el ARM lo ordena, entonces uno debe especificar la velocidad de datos más rápida y lidiar con las consecuencias. Si la salida se usa para controlar un relé que va a cambiar, tal vez dos veces por segundo, se debe usar la velocidad de salida más lenta, pero probablemente no importe; al relé no le importará el timbre, y una salida que se conmuta un par de veces por segundo no puede causar un exceso de emisiones de RF, no importa lo rápido que sean los bordes.

Las velocidades de salida lentas en el tiempo son más útiles cuando uno está generando una señal que cambia con frecuencia, pero no es increíblemente rápida (por ejemplo, 100 KHz-1MHz) o uno está manejando un dispositivo que puede pasar rápidamente a los transitorios en la señal de salida pero uno en realidad no está enviando pulsos casi tan rápido como el dispositivo podría responder. Enviar una onda cuadrada de 1MHz con bordes lo suficientemente rápidos como para acomodar una onda de 50MHz generaría una gran cantidad de RF a 3MHz, 5MHz, 7MHz y otros armónicos impares de 1MHz. Disminuir la velocidad de los bordes podría reducir considerablemente los niveles de ruido de RF generado. Una transición de salida (por ejemplo, alta-baja) que se envía con bordes muy rápidos puede recibirse con un breve "rebote" (por ejemplo, registrarse como alta-baja-alta-baja). Si el dispositivo receptor es lo suficientemente rápido como para registrar esos eventos alto-bajo-alto-bajo como múltiples eventos, eso podría causar problemas. Al disminuir la velocidad a la que los interruptores de salida se reducirá sustancialmente la medida en que rebota.

    
respondido por el supercat

Lea otras preguntas en las etiquetas