Skip to content
RFrftools.io
Comms

Calculadora de sincronização e integridade de sinal SPI

Calcule os parâmetros de temporização do barramento SPI, incluindo período de bits, tempo de quadro, frequência máxima de clock limitada pela capacitância de rastreamento e taxa de variação do sinal

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 tempo RC (ns)
R_driveImpedância de saída do inversor (3,3V/i_drive) (Ω)
C_traceCapacidade total de rastreamento (F)
f_maxFrequência máxima do relógio (Hz)

Como Funciona

Esta calculadora determina os limites de frequência do relógio SPI, os tempos de configuração/espera e as taxas de transferência de dados para uma comunicação confiável entre mestre e escravo. Engenheiros embarcados e projetistas de FPGA o usam para verificar as margens de tempo entre microcontroladores e ICs periféricos. De acordo com a especificação original do Motorola SPI (agora mantida por fabricantes individuais de IC e documentada na nota de aplicação AN3020 da NXP, “Interface com o SPI”), o protocolo usa 4 sinais: SCLK, MOSI, MISO e CS. Embora a SPI não tenha um padrão ISO/IEC único, os parâmetros de temporização de fato estão documentados na nota de aplicação AN901 da Microchip e o padrão JEDEC JESD79F para memórias compatíveis com SPI define os requisitos de tempo para dispositivos flash e SRAM de alta velocidade. As frequências de clock variam de 100 kHz a 100 MHz, dependendo das capacidades do dispositivo - as memórias flash típicas suportam 50-133 MHz (série Winbond W25Q), enquanto os ADCs geralmente se limitam a 1-20 MHz. Os parâmetros críticos de temporização incluem t_setup (dados válidos antes da borda do relógio, normalmente de 5 a 25 ns), t_hold (dados válidos após a borda do relógio, normalmente de 5 a 15 ns) e t_clk (período mínimo do relógio). Um relógio SPI de 10 MHz fornece um período de 100 ns, permitindo configuração de 40 ns, retenção de 40 ns e margem de 20 ns. A 50 MHz, essas margens diminuem para 8 ns cada, exigindo um layout de PCB cuidadoso com correspondência de traços dentro de 1 ns (15 cm).

Exemplo Resolvido

Uma interface de sensor industrial conecta um microcontrolador STM32H7 a um ADC ADS1256 de 24 bits via SPI. De acordo com a folha de dados do ADS1256: F_SCLK_max = 1,92 MHz, t_setup = 50 ns, t_hold = 25 ns. O STM32H7 rodando a 480 MHz fornece relógio SPI de APB2 (120 MHz). Cálculo de Prescaler: 120 MHz/1,92 MHz = 62,5, arredondar para 64, fornecendo SCLK real = 1,875 MHz. Nessa frequência: t_clk = 533 ns, fornecendo 266 ns de meio período versus requisito de configuração de 50 ns (margem de 5,3x). Taxa de dados = 1,875 MHz/24 bits = 78,1 kSPs. Com traços de PCB de 10 cm (propagação de 0,6 ns), o atraso total está bem abaixo do requisito de tempo de espera de 25 ns.

Dicas Práticas

  • De acordo com o Microchip AN1067, mantenha os comprimentos de rastreamento SPI abaixo de 10 cm para frequências acima de 10 MHz para manter as margens de tempo acima de 5 ns
  • Use CPOL=0, CPHA=0 (Modo 0) como padrão - 85% dos periféricos SPI suportam esse modo de acordo com pesquisas do setor
  • Adicione resistores de terminação da série 33-100 Ohm em SCLK e MOSI para traços maiores que 5 cm em frequências acima de 20 MHz para reduzir o toque em 60-80%

Erros Comuns

  • Executando SPI na frequência máxima de MCU (por exemplo, 50 MHz) sem verificar os limites do dispositivo escravo - muitos sensores são limitados a 1-10 MHz
  • Ignorando a incompatibilidade do modo CPOL/CPHA: o modo 0 versus o modo 3 causa 100% de corrupção de dados, apesar das formas de onda de aparência semelhante
  • Usando cabos não blindados longos (>30 cm) em frequências acima de 1 MHz, introduzindo diafonia de 10-50 mV que corrompe os LSBs

Perguntas Frequentes

Depende do dispositivo: os microcontroladores normalmente suportam 25-50 MHz, as memórias flash SPI atingem 133 MHz (Quad SPI) e os FPGAs podem exceder 200 MHz. O limite prático é definido pelo dispositivo mais lento da cadeia e pelos parasitas de PCB (normalmente uma capacitância de traço de 1-2 pF/cm).
Limitado pelas linhas CS e pela capacitância do barramento. Cada dispositivo adiciona uma capacitância de carga de 5-15 pF. A 50 MHz, a capacitância total do barramento deve ficar abaixo de 30 pF (cerca de 3-5 dispositivos). O uso de um decodificador 74HC138 permite 8 dispositivos com apenas 3 pinos GPIO.
t_setup (5-50 ns típicos): os dados devem estar estáveis antes da borda do relógio. t_hold (5-25 ns típicos): os dados devem permanecer estáveis após o limite do relógio. t_clk_min (8-1000 ns): período mínimo do relógio. t_css (20-100 ns): tempo de configuração do CS antes do primeiro relógio. t_csh (20-100 ns): Tempo de espera do CS após o último relógio.

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