Cálculo del tiempo de subida en el bus SPI

0

Estoy diseñando una placa de circuito que tiene un bus SPI con 32 esclavos. Planeo conducir el bus a 8 MHz. Otra persona en este sitio comentó en una publicación mía anterior que la capacidad total de todos los esclavos podría limitar la velocidad máxima.

Seguí adelante e intenté ese cálculo. La capacitancia del pin GPIO en la MCU es de 30 pF y la capacitancia en las líneas CLK para el esclavo es de < 10 pF. Calculo que la resistencia de la traza CLK es de 0.6 ohmios usando una calculadora de traza en línea (8 mil, 1 oz / pie, 20 cm de longitud total)

C = 30 pF + (32*10 pF) = 350 pF
R = 0.6 ohm
tau = RC = (350 pF)(0.6 ohm) = 0.2 ns
t_rise = 2.2 * tau = 0.44 ns

Pude probar una placa similar con 16 esclavos (el antecesor de la placa que estoy diseñando) y descubrí que el tiempo de subida era de 18 ns. Me aseguré de configurar la sonda en 10X.

Entonces mi pregunta es: ¿a dónde me voy mal aquí? ¿Debo tener en cuenta también la resistencia de salida del GPIO?

    
pregunta dgreenheck

2 respuestas

2

Sí, el tiempo de subida estará dominado por la corriente disponible desde el pin GPIO (es erróneo pensar que es una resistencia) y la capacitancia. La resistencia de rastreo puede ser ignorada.

Observe las especificaciones garantizadas para el tiempo de subida y cuál es la carga para esa garantía. La capacitancia de esa salida será adicional a la capacitancia externa especificada. Por ejemplo, la serie PIC 16F generalmente se especifica con una carga 50pF externa . Si su capacidad total supera los 50 pF, no se garantizan los límites de la hoja de datos.

También debes tener en cuenta la capacidad parásita de las trazas. Esto puede ser relativamente grande si las trazas son largas, y la placa es multicapa con planos de tierra o planos de potencia cerca de los cables de señal.

Otro problema potencial es el timbre, que puede entrar en juego a 8MHz. Es posible que deba agregar cierta resistencia en serie (quizás decenas de ohmios) para controlar el timbre (especialmente en el reloj), lo que ralentizará aún más las líneas de bus. Es bueno conectar un osciloscopio rápido a las líneas y verificar las formas de onda.

    
respondido por el Spehro Pefhany
0

Creo que, dado que está utilizando líneas de un solo extremo, puede ser que tenga una impedancia de 50 ohmios. Entonces 350pf * 50ohms = 17.5ns. Sé el tiempo de subida.

    
respondido por el Vignesh.M

Lea otras preguntas en las etiquetas