Skip to content
RFrftools.io
Comms

Calculadora de Temporización SPI

Calcula parámetros de temporización del bus SPI: frecuencia de reloj, modos CPOL/CPHA y tiempos de setup.

Loading calculator...

Fórmula

tbit=1/fCLK;τ=RdriveCtrace;fmax=1/(4.4τ)t_bit = 1/f_CLK; τ = R_drive·C_trace; f_max = 1/(4.4τ)
t_bitPeríodo de bits (ns)
τConstante de tiempo RC (ns)
R_driveImpedancia de salida del variador (3,3 V/i_Drive) (Ω)
C_traceCapacitancia total de rastreo (F)
f_maxFrecuencia máxima de reloj (Hz)

Cómo Funciona

Esta calculadora determina los límites de frecuencia del reloj SPI, los tiempos de configuración/espera y las velocidades de transferencia de datos para una comunicación maestro-esclavo confiable. Los ingenieros de sistemas integrados y los diseñadores de FPGA la utilizan para verificar los márgenes de tiempo entre los microcontroladores y los circuitos integrados periféricos. Según la especificación SPI original de Motorola (ahora mantenida por distintos fabricantes de circuitos integrados y documentada en la nota de aplicación AN3020 de NXP, «Interfaz con la SPI»), el protocolo utiliza 4 señales: SCLK, MOSI, MISO y CS. Si bien SPI no cuenta con un estándar ISO/IEC único que lo rija, los parámetros de temporización de hecho están documentados en la nota de aplicación AN901 de Microchip y el estándar JEDEC JESD79F para memorias compatibles con SPI define los requisitos de temporización para los dispositivos flash y SRAM de alta velocidad. Las frecuencias de reloj oscilan entre 100 kHz y 100 MHz, según las capacidades del dispositivo: las memorias flash típicas admiten entre 50 y 133 MHz (serie Winbond W25Q), mientras que los ADC suelen tener un límite de 1 a 20 MHz. Entre los parámetros de temporización críticos se incluyen t_setup (datos válidos antes de la hora del reloj, normalmente de 5 a 25 ns), t_hold (datos válidos después de la hora, normalmente de 5 a 15 ns) y t_clk (período de reloj mínimo). Un reloj SPI de 10 MHz proporciona un período de 100 ns, lo que permite una configuración de 40 ns, una retención de 40 ns y un margen de 20 ns. A 50 MHz, estos márgenes se reducen a 8 ns cada uno, lo que requiere un diseño cuidadoso de la PCB con trazas que coincidan en 1 ns (15 cm).

Ejemplo Resuelto

Una interfaz de sensor industrial conecta un microcontrolador STM32H7 a un ADC ADS1256 de 24 bits a través de SPI. Según la hoja de datos del ADS1256: F_SCLK_max = 1,92 MHz, t_setup = 50 ns, t_hold = 25 ns. El STM32H7, que funciona a 480 MHz, proporciona un reloj SPI del APB2 (120 MHz). Cálculo con el preescalador: 120 MHz/1,92 MHz = 62,5, redondea a 64, lo que arroja un SCLK real de 1,875 MHz. A esta frecuencia: t_clk = 533 ns, lo que supone un semiperiodo de 266 ns frente al requisito de configuración de 50 ns (margen de 5,3 veces). Velocidad de datos = 1,875 MHz/ 24 bits = 78,1 kSPS. Con trazas de PCB de 10 cm (propagación de 0,6 ns), el retardo total está muy por debajo del requisito de tiempo de espera de 25 ns.

Consejos Prácticos

  • Según el Microchip AN1067, mantenga las longitudes de las trazas SPI por debajo de 10 cm para frecuencias superiores a 10 MHz para mantener los márgenes de temporización superiores a 5 ns
  • Utilice CPOL=0, CPHA=0 (modo 0) de forma predeterminada: el 85% de los periféricos SPI admiten este modo, según las encuestas del sector
  • Agregue resistencias de terminación de la serie 33-100 ohmios en SCLK y MOSI para trazas de más de 5 cm a frecuencias superiores a 20 MHz para reducir el zumbido en un 60-80%

Errores Comunes

  • Ejecución de SPI a la frecuencia máxima de la MCU (por ejemplo, 50 MHz) sin comprobar los límites de los dispositivos secundarios; muchos sensores están limitados a entre 1 y 10 MHz
  • Ignorar la discordancia entre los modos CPOL/CPHA: el modo 0 y el modo 3 provocan una corrupción de datos del 100% a pesar de que las formas de onda tienen un aspecto similar
  • El uso de cables largos (>30 cm) sin blindaje a frecuencias superiores a 1 MHz, introduce una diafonía de 10 a 50 mV que daña los LSB

Preguntas Frecuentes

Depende del dispositivo: los microcontroladores suelen admitir entre 25 y 50 MHz, las memorias flash SPI alcanzan los 133 MHz (SPI cuádruple) y las FPGA pueden superar los 200 MHz. El límite práctico lo establecen el dispositivo más lento de la cadena y los parásitos de los PCB (normalmente, una capacitancia traza de 1 a 2 pF/cm).
Limitado por las líneas CS y la capacitancia del bus. Cada dispositivo agrega una capacitancia de carga de 5 a 15 pF. A 50 MHz, la capacitancia total del bus debe mantenerse por debajo de 30 pF (alrededor de 3 a 5 dispositivos). El uso de un decodificador 74HC138 permite 8 dispositivos con solo 3 pines GPIO.
t_setup (5-50 ns normalmente): los datos deben estar estables antes del final del reloj. t_hold (5-25 ns normalmente): los datos deben permanecer estables después del cierre del reloj. t_clk_min (8-1000 ns): período de reloj mínimo. t_css (20-100 ns): tiempo de configuración de CS antes del primer reloj. t_csh (20-100 ns): tiempo de espera de CS después del último reloj.

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

Calculadoras relacionadas