SPI: cómo se calcula la velocidad de transmisión a través del reloj y las velocidades de bits [cerrado]

-3

Tengo una pregunta. Cuando trabajo con spi en stm32f4.when config Baudrates.it muestra 76KBits / s. Es esa la velocidad de bits. Y con mi reloj es 10MHZ. ¿Cómo puedo calcular mis Baudrates? (Formato de marco: Motorola. Tamaño de datos: 8 bits). ¡Gracias!

    
pregunta Tran Toan

1 respuesta

2

SPI no usa los bits de inicio o parada, por lo que no hay tiempo de señal "perdido".

Sólo hay dos símbolos (alto y bajo), por lo que la velocidad de transmisión = velocidad de bits, medida en bit / s, kbit / s, Mbit / s, etc. (no KBits / s).

Si el reloj SPI es de 10MHz, entonces la velocidad de bits será de 10Mbit / s dividida entre 2, 4, 8, 16, 32, 64, 128, 256, establecida por los bits de 'control de velocidad de transmisión' en, por ejemplo. 'Registro de control SPI 1'

El divisor más cercano del reloj de 10MHz, para aproximarse a 76 kbit / s es 128.

Algunos SPI STM32F4xxx son programables para unidades de transferencia de 8 o 16 bits, por lo que puede elegir 8 bits / transferencia si eso es lo que desea.

Editar:
El esclavo SPI no necesita configurarse para la velocidad de transferencia porque el maestro proporciona una señal de reloj (SCLK) que mantiene al esclavo sincronizado explícitamente. El reloj SPI del maestro está activo cuando los datos se transfieren, y esa señal de reloj controla los datos de detección del esclavo (MOSI), o configura la señal de salida de datos (MISO).

Por lo tanto, siempre que el esclavo SPI pueda mantenerse al día con la velocidad de transferencia, la velocidad de transferencia real puede variar significativamente, y la señal del reloj mantiene el esclavo SPI sincronizado.

Esto es diferente a las transferencias asíncronas, donde ambos lados de la transferencia necesitan conocer la velocidad de transferencia porque necesitan usar eso para reconocer y extraer los datos.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas