¿Importa cómo cruzo una señal de reloj SPI de 2 MHz en una placa de dos capas?

Fondo

Actualmente estoy trabajando en una placa de conexiones que me permite conectar varias placas externas (señal analógica y mixta) a un Arduino Micro, usando una variedad de conectores. La placa de conexión está limitada a dos capas y tiene que manejar nueve señales de sensores analógicos, así como siete señales digitales (SPI), a saber. reloj (SCK), MISO, MOSI y cuatro señales de selección de chip (CS). El Arduino está configurado para una frecuencia de reloj SPI de 2 MHz, pero no pude encontrar ninguna información sobre los tiempos de subida típicos.

El problema es que no estoy seguro de cuál es el mejor enfoque para enrutar las señales digitales en mi placa de conexión. Dado que mi pregunta es bastante básica, la reduje al ejemplo mínimo que se describe a continuación.

Problema simplificado

En este ejemplo simplificado, tengo un plano de tierra, una señal de reloj SPI (SCK), una señal de selección de chip (CS) y un "área de exclusión" relativamente grande, como se ilustra en la siguiente figura. Tenga en cuenta que el ejemplo no está a escala: la longitud real del trazo sería de más de 10 cm.

problema simplificado

La asignación de pines en los conectores no se puede modificar, ni puedo mover/girar los conectores o el área de exclusión.

El problema básico es que la señal CS necesita cruzar al otro lado de SCK (2 MHz).

Suponiendo que es mejor mantener intacta la traza SCK en un plano, hay varias opciones para CS, como se ilustra en la figura a continuación:

  1. use vías para enrutar CS bajo SCK (ortogonal, con un espacio mínimo en el plano de tierra)
  2. use un puente, o una resistencia de cero ohmios, para saltar CS sobre SCK (mantiene intacto el plano de tierra, pero agrega componentes adicionales)
  3. use un desvío alrededor del área de exclusión (mantiene el plano de tierra intacto, sin componentes adicionales, pero aumenta considerablemente la longitud de la traza)

EDITAR: Desafortunadamente, enrutar toda la señal CS alrededor de la señal SCK en el plano inferior no es una opción. El tamaño real del tablero sería de alrededor de 10x10 cm. Las longitudes de los trazos serán de alrededor de 10 cm, con un aumento a 15 cm usando la opción 3.

tres opciones

Pregunta

¿Cuál sería la mejor opción, suponiendo que las trazas sean de alrededor de 10 cm (con un aumento de 15 cm para la opción 3), en términos de integridad de la señal y emisiones electromagnéticas (EMI)?

Supongo que no tendré que preocuparme demasiado por los temas de diseño de alta velocidad, como la coincidencia de impedancia y la terminación de la señal.

En la placa real, tengo dos señales CS que necesitan cruzar SCK, MISO y MOSI. ¿Eso cambiaría las cosas?

Lo que pienso

Dado que la frecuencia del reloj SPI es de 2 MHz, y en base a lo que he leído hasta ahora, por ejemplo aquí y aquí , sospecho que en mi caso particular podría no hacer una gran diferencia. Sin embargo, no tengo ninguna experiencia de la que hablar y no estoy seguro del contenido de alta frecuencia de los bordes del reloj.

Me inclino a mantener el plano de tierra intacto tanto como sea posible, por lo que implicaría el uso de la opción 2 o 3. Usando la opción 3 en el tablero real, puedo enrutar casi todas las señales en el plano superior, sin cruzar o rompiendo el plano del suelo, pero los desvíos añaden unos 5 cm a las longitudes de las trazas. Además, el resultado duele a la vista...

Pregunta similar, pero diferente: electronics.stackexchange.com/q/233921
¿Por qué no mantienes cada señal en una capa propia? No hay necesidad de vías.
@Lundin: Es un tablero de dos capas.
Sí, entonces tienes 2 capas.
@Lundin: eso crearía una brecha muy grande en el plano de tierra, debajo del reloj, lo que creo que no es una buena idea. (tiene razón, en el ejemplo se podría enrutar a lo largo de los bordes en el plano inferior, pero esa no es una opción para mí)
¿Te preocupa conectar la línea de selección de chip? ¿La línea que solo cambia cuando cambias el dispositivo con el que estás hablando? Por lo tanto, funciona mucho más lento que 2 MHz, incluso si cambia cada byte que está viendo a 100 kHz en el momento en que tiene una pausa entre mensajes. Así que es muy lento, y tu distancia es muy pequeña. No tienes que preocuparte por eso.
@Puffafish: Gracias, eso es lo que esperaba escuchar. Sin embargo, una brecha debajo del SCK (opción 1) influiría en la ruta de retorno del reloj, ¿verdad? Que funciona a 2 MHz. ¿Y eso no tendrá frecuencias mucho más altas en los bordes?
Sé que puedo conectarlo todo ingenuamente, "estilo de enrutamiento automático", y probablemente funcionará, pero estoy tratando de obtener más información aquí.
@djvg sí, crearás un espacio. Pero solo está funcionando a 2 MHz, y la PCB es muy pequeña, por lo que no es una gran preocupación. Pero su opción 3 también eliminaría eso.
@Puffafish: gracias de nuevo. Supongo que simplifiqué demasiado mi ejemplo. El tamaño de la placa en el que estoy pensando es de 100x100 mm, con longitudes de trazo de alrededor de 100 mm también, que se aumentarían a 150 mm con la opción 3.
inserte una resistencia de 100 ohmios; obtiene un efecto de puente, un posible efecto de terminación de fuente, algún efecto de amortiguación y un lugar para monitorear la integridad de la forma de onda. También tenga algunos pines de TIERRA, para conectar la tierra del alcance.
El desajuste del tiempo de subida y la impedancia (sqrt{L/C}) da como resultado la amplificación de la resonancia para EMI, que puede ser un controlador 25R para 5V y 50R @3V. Por lo tanto, toda la ruta debe examinarse con stripline. Las longitudes cortas < el tiempo de subida se pueden ignorar

Respuestas (2)

Una placa de dos capas es aceptable para las frecuencias que está viendo, pero algunas notas:

  • por lo general, vierta ambos lados con cobre GND y cose ambos lados con vías GND con frecuencia. De esa manera, todavía tiene un plano "continuo", aunque cada plano individual esté cortado con trazos. Le permite usar ambos lados para el enrutamiento si no empaca las cosas demasiado cerca y acomoda suficientes vías de costura.
  • incluso si encuentra una hoja de datos que proporciona tiempos de subida, por lo general no se puede confiar en ellos. Pero la buena noticia es que para su aplicación no importa: todos los rastros deben tener una resistencia en serie de ~100 ohmios cerca del lado del controlador. De esa forma, los tiempos de subida serán benignos y todo seguirá siendo lo suficientemente rápido para 2 MHz. Tal vez pueda aumentar la resistencia incluso un poco más si puede estimar la capacitancia de la línea + el receptor. Siempre es una buena práctica limitar los tiempos de subida de esta manera al grado más lento aceptable.
  • no necesita preocuparse por la coincidencia de la impedancia de la línea de transmisión en estas longitudes de seguimiento con los tiempos de pendiente más lentos. Pero si decide aumentar la frecuencia a ~40 MHz y aumentar la longitud de las líneas, aún es factible lograr una impedancia de 50 ohmios en una placa de dos capas si no tiene muchas conexiones para enrutar. Simplemente use cualquier calculadora disponible. Puede ser útil hacer la placa más delgada (p. ej., 0,6 mm) para estar más cerca del plano de retorno y poder usar trazos más angostos. Pero incluso en un tablero convencional de 1,6 mm es posible, aunque necesitarás trazos muy anchos (> 1 mm de ancho).

En la placa real, tengo dos señales CS que necesitan cruzar SCK, MISO y MOSI. ¿Eso cambiaría las cosas?

Puede cruzar tantas líneas como sea necesario enrutándolas, por ejemplo, de izquierda a derecha en la parte superior y de arriba abajo en la parte inferior y proporcionando áreas GND entre cada línea y vías GND en cada una de las "celdas" formadas. De esa manera, cada rastro siempre tendrá una ruta de retorno cercana.

"La optimización es la raíz de todos los males" Si bien aquí hay algunas buenas intenciones y prácticas, la solución es que si la integridad de la señal es importante, (necesitará) usar una placa de 4 capas. En su caso, casi cualquier solución funcionará, y puede enrutar convenientemente; un trazo arriba y otro abajo.

Tal vez pueda reducir el pad (CS/SCK) y enrutar entre SCK y GND para conectar CS. Pero creo que usar la segunda capa es mejor, solo agregue vía para tener un plano GND fuerte.