Diseño de PCB para 50MHz

Estoy diseñando una placa de circuito impreso bastante grande que tendrá 64 LCD nokia 5110 dispuestas en una matriz de 8x8 y todas estarán controladas por un solo microcontrolador.

Cada pantalla tendrá un registro de desplazamiento de 8 bits como búfer, para compensar la falta de coincidencia entre el reloj SPI de ~50 MHz máx. de los microcontroladores y los 4 MHz de las pantallas LCD. Por lo tanto, habrá 64 registros de desplazamiento en serie a 50 MHz en una PCB de aproximadamente 30 cm x 30 cm.

Mi pregunta es entonces, ¿cuáles son los problemas que debo tener en cuenta en un diseño de este tipo? Suponiendo que coloque cada registro de desplazamiento de pantalla detrás de él, tendría trazos en zigzag realmente largos (aproximadamente 250 cm) para el reloj y las líneas de datos.

Esto parece bastante ridículo, pero al mismo tiempo no he tenido problemas para trabajar con cables de placa de pruebas y de puente cerca de esas frecuencias, la única diferencia es la longitud del cable.

También podría agrupar todos los registros de desplazamiento cerca del microcontrolador para que las líneas más largas sean las que conducen a las pantallas en la frecuencia más baja, pero las huellas aún serían bastante largas.

Agradecería cualquier ayuda y sugerencia para evitar tener muchos diseños de PCB fallidos.

¿Qué microcontrolador? ¿Qué amortiguador? Por lo general, el factor limitante más grande es la capacitancia, y luego impulsa el GPIO para alcanzar los 50 MHz.

Respuestas (3)

A 50 MHz, la longitud de onda en la PCB es de unos 20 ns x 15 cm/ns = 300 cm.

El tiempo de viaje en un alambre de 30cm es de 2ns.

Si desea evitar considerar sus trazas como líneas de transmisión, debe mantenerlas por debajo de 1/20 de la longitud de onda, que es de 15 cm.

Y con esa longitud, debe tener en cuenta el retraso de la señal de 1 ns al verificar los tiempos de espera y verificación.

También debe evitar la diafonía entre cables paralelos manteniéndolos separados por 3 veces su ancho.

El tiempo de subida/bajada de las señales probablemente será mucho más importante que la tasa de cambio real.
Si las líneas de señal se mantienen por debajo de 15 cm, el tiempo de subida/bajada estará dentro de los límites. Es claro que distribuir un reloj central queda excluido con este límite. Hay soluciones de "cambio" que también almacenan el reloj en cada reloj. Y al usar una codificación manchester, por ejemplo, sería posible almacenar la señal cada 15 cm usando un búfer digital simple.

Enrutaría las señales de alta frecuencia como impedancia controlada.

También agregaría una resistencia de terminación a cada señal para evitar reflejos. Puede usar la terminación en serie en la fuente de cada señal o usar la terminación en paralelo en el destino de cada señal.

Además, es mucho menos probable que el período de la señal de 50 MHz sea un problema que el tiempo de subida/bajada de las señales. Si puede mantener los tiempos de subida/bajada más lentos, ayudará a evitar los reflejos.

Suponiendo que sus registros de desplazamiento solo se desplacen en el borde del reloj, entonces la señal más importante a considerar será la señal del reloj en los registros de desplazamiento. Incluso si obtiene reflejos en las líneas de datos, probablemente no importará siempre que las señales se asienten en su valor final antes del siguiente borde del reloj. Pero si obtiene un reflejo en el reloj, entonces su registro de desplazamiento puede ver dos o tres relojes y todos sus datos se desplazarán.

Mi pregunta es entonces, ¿cuáles son los problemas que debo tener en cuenta en un diseño de este tipo?

En mis diseños con un STM32F puede ser complicado llegar a los 50MHz. El primer problema será la capacitancia de GPIO, puede ser problemático con la capacitancia de los GPIO incluso con recorridos cortos, también se debe tener en cuenta la capacitancia de puerta del puerto receptor.

El otro problema es un microprocesador muy rápido si golpea un poco. Si no es un bit-banging, necesitará usar puertos de hardware SPI.

Me cuesta creer que pueda alcanzar los 50 MHz en una placa de prueba, pero depende de la configuración (me gustaría ver un seguimiento del alcance y una imagen de la configuración). Si el diseño funciona en una placa de pruebas, los parásitos son mucho más pequeños en una PCB, por lo que, en teoría, debería tener problemas mínimos si lo cambia a una PCB.

Use un diseño de 4 capas con el reloj en la parte superior, sin pasar por las vías y el suelo en la capa directamente debajo.

Con su respuesta y lo que otros también han comentado, me estoy alejando de mi idea original y reconsiderando mi enfoque. Estoy planeando usar hardware SPI, ya hice algunos circuitos básicos y lo hice funcionar bien. En cuanto a la placa de pruebas, llegué a 36 MHz (aunque con una forma de onda bastante retorcida, pero se recibieron todos los datos), no exactamente 50 MHz pero bastante cerca, con la diferencia de que los cables tenían como máximo 10 cm de largo. Mi pregunta original se debió al hecho de que en la PCB las huellas serían MUCHO más largas de lo que estaba acostumbrado.