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.
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.
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.
Pico de voltaje