Diseño de bus de señal de PCB

Tengo una pcb con un bus SPI con varios sensores que hay que conectar a este bus. Dado que no se recomiendan trazas de 90 grados en un diseño de PCB adecuado, me pregunto cómo conectar tantos sensores sin usar giros bruscos y trazas perpendiculares.

Estoy pensando en hacer triángulos para suavizar las conexiones, pero quería preguntar aquí antes si hay una forma recomendada de hacerlo.

PD: Tal vez alguien diga que las velocidades SPI no deberían tener problemas con esto, pero aún así es una pregunta válida para fines de aprendizaje.

EDITAR:

Ya que una imagen habla más que 1000 palabras...

Ese es el problema que estoy presentando: "¿cómo eliminar trazas de 90 grados en una conexión de bus?" (incluso si en este caso particular de SPI no tendré ningún problema, todavía despierta mi curiosidad)

Línea de bus de señal

¿Qué programa de diseño estás usando? Probablemente tenga un comando de inglete que cambia un ángulo de 90 grados a dos de 45.
@JeannePindar: ¿No querrás decir dos 135?
@Jeanne Estoy usando Altium Designer, nunca escuché sobre este comando, le echaré un vistazo.

Respuestas (4)

Respuesta rápida: las curvas de 90 grados no son un problema para la mayoría de las cosas. No los hago puramente desde un punto de vista estético. Solo se convierte en un problema en algún lugar por encima de los 500 MHz, pero incluso entonces es cuestionable.

Hay tres razones para no hacer curvas de 90 grados: provoca una falta de coincidencia de impedancia y, por lo tanto, estropea la integridad de la señal. Las esquinas afiladas se redondean durante el proceso de grabado de PCB y pueden debilitar la traza. Las curvas provocan algún tipo de reflexión, no relacionada con el desajuste de impedancia.

Se ha demostrado que el problema de la falta de coincidencia de impedancia no es un problema. Hay muchas fuentes para esto, pero la mejor está en el libro "Diseño digital de alta velocidad: un manual de magia negra".

El debilitamiento de la traza puede ser significativo, especialmente si los anchos de la traza están al límite de lo que puede fabricar el taller de PCB. Pero personalmente nunca he tenido problemas con esto, y no conozco a nadie que haya tenido un problema. Así que no puedo decir que sea un problema grave.

En cuanto a la onda de la señal que rebota en la cara plana del trazo, no estoy seguro de si es real o una leyenda urbana de EE. Lo que sí sé es que necesita tasas de borde súper rápidas para siquiera molestarse en pensar en esto. Casi todos aquí en EE.SE pueden ignorar esto.

Lo que es más importante que la forma de la traza es la "santa trinidad de la integridad de la señal": la impedancia de la traza, la ruta de retorno de la señal y la terminación de la señal. Haz esto bien y casi todo lo demás no importa. Además, debe hacer esto para casi todas las señales en un diseño digital, ¡independientemente de la frecuencia!

Actualización: estoy agregando cosas para abordar directamente las cosas esquemáticas que el OP agregó a la pregunta.

Para empezar, no te preocupes por los 90 grados. No es un problema.

A continuación, considere que SPI tiene dos tipos de señales: un controlador que alimenta a un receptor y un controlador que alimenta a múltiples receptores. MISO y MOSI son ejemplos de un controlador que alimenta un receptor. SCLK y CS son las señales que alimentan múltiples receptores. Comprender esta distinción es muy importante, ya que cada tipo de señal requerirá diferentes técnicas de diseño de PCB.

Voy a describir cómo manejo estas señales. Raramente hago PCB de 2 capas, la mayoría son de 6 a 8 capas. Lo que esto significa es que todos mis PCB tienen planos de tierra y energía. Esto es muy importante, porque el manejo adecuado de la integridad de la señal es casi imposible en una placa de 2 capas. Además, este es un gran tema, así que no puedo escribir sobre todo. En su caso, le daré términos a Google.

Comenzaremos con el controlador que alimenta un receptor (MISO o MOSI), ya que este es el más fácil. Para estos, utilizo un tipo de terminación de señal llamado "Terminación en serie de origen" o, a veces, simplemente llamada terminación de origen. En el controlador, en serie con la señal, hay una resistencia simple de alrededor de 25 a 75 ohmios. El valor exacto de esta resistencia se ha calculado para que coincida con la impedancia de la traza menos la impedancia de la fuente del controlador. Entonces, si mi traza es de 50 ohmios y el controlador tiene una impedancia de salida de 20 ohmios, entonces mi resistencia será de 30 ohmios, +/- 10%.

La impedancia de la traza se puede calcular utilizando las diversas fórmulas para trazas "stripline" y "microstrip" (búscalas en Google). Normalmente busco una impedancia de traza de 50 ohmios y varío el ancho de la traza para conseguirlo. La capa de señal de la PCB debe estar muy cerca del plano, de lo contrario, la traza debe ser demasiado ancha. Construyo mi PCB Stackup (cómo se componen las capas de la PCB) para asegurar que el espacio entre las capas de señal y las capas planas sea el adecuado.

Una de las razones por las que es casi imposible hacer esto con una PCB de 2 capas es porque el espacio entre una capa y la siguiente es muy grande y básicamente no tienes control sobre él. La otra razón es que rara vez tiene un plano SÓLIDO debajo de las huellas de su señal.

Otra cosa es que rara vez conoce la impedancia de salida de su controlador. Por lo general, supongo que alrededor de 10 ohmios. Otras veces simplemente coloco una resistencia de 50 ohmios allí y espero modificar el valor una vez que se hace la PCB. Utilizo un o-scopio rápido con conexiones a tierra adecuadas y sondeo en el receptor cuando miro la señal.

Entonces, volviendo a nuestra señal... La resistencia se coloca tan cerca del controlador como sea razonable. Luego dirijo la señal directamente al receptor. En el camino, me aseguro de que el ancho del trazo sea correcto para la impedancia que quiero. A continuación, presto atención a la ruta de retorno de la señal. Google "Ruta de retorno de señal" y "Área de bucle". Es importante que la ruta de retorno de la señal diga directamente debajo de la traza de la señal, y el uso adecuado de las tapas de desacoplamiento/derivación se usa cuando la ruta de retorno tiene que saltar del plano de potencia al plano de tierra o viceversa.

Ahora, para las señales de un controlador-múltiples receptores. Estos son mucho más difíciles. Lo más importante es que la señal debe estar encadenada. En su caso, la salida de la MCU debe ir al esclavo 1, luego del esclavo 1 al esclavo 2, luego del esclavo 2 al esclavo 3. No puede hacerlo como lo dibujó en su diagrama, donde sale de la MCU y luego se ramifica a todos los esclavos. Lo segundo más importante es que la terminación de su señal debe estar al final de la línea, después del último esclavo, y no en la MCU como en el ejemplo anterior.

(Nota para los pedantes entre nosotros: lo que dije en el párrafo anterior no es estrictamente cierto, * PERO ... El controlador único-receptor único tiene una dificultad de 2 en una escala de 1 a 10. El controlador único encadenado en margarita -la señal del receptor múltiple es aproximadamente un 3 o 4. Hacer un enrutamiento en estrella, que es lo que dibujaste en tu pregunta, es aproximadamente un 9 en nuestra escala del 1 al 10. Puedes hacerlo, pero te arrepentirás).

Para estas señales, tiene más opciones para la terminación de su señal. La terminación ideal sería una resistencia de su señal a un riel de alimentación que sea exactamente la mitad de su nivel de señal. Por ejemplo, si su señal va de 0 a 3.3v, entonces su resistencia iría a un riel de alimentación de 3.3/2 o 1.65 voltios. El valor de la resistencia sería igual a la traza de impedancia (misma fórmula microstrip/stripline que antes). El regulador en este riel de alimentación debe ser de un tipo especial que esté hecho para la terminación de la señal, porque tiene que hundirse y generar energía (hay excepciones a esto).

Por supuesto, no todos tienen un riel de 1.65v por ahí, así que hay opciones. Si no es una señal súper crítica, podría usar un riel que tenga menos de 1.5v o tan alto como 1.8v. O podría usar dos resistencias, una a GND y otra a +3.3v, en lugar de una sola resistencia (Google "terminación de señal" para las fórmulas). O podría usar una sola resistencia más una tapa en serie, llamada terminación de CA.

Lo malo de usar dos resistencias, como un divisor de voltaje, como terminación es que puede consumir mucha corriente. Lo bueno de la terminación de CA es que usa muy poca corriente. Pero muchas personas entienden muy mal la terminación de CA. La terminación de CA solo funciona para señales que tienen un ciclo de trabajo del 50 % y siempre se mueven. Las señales que hacen esto se llaman relojes. :) Pero el reloj SPI no se aplica, porque se puede apagar y no siempre se mueve. El otro error que comete la gente es que el límite es muy pequeño. A veces sólo una docena de pF. Ese límite debe ser de al menos 0,01 uF, y a menudo uso 0,1 uF. Una pequeña capitalización aquí es una señal segura de que alguien no sabe lo que está haciendo.

De todos modos, conecte en cadena estas señales y coloque la terminación adecuada al final de la cadena.

Apenas he arañado la superficie de este problema, y ​​pueden pasar años antes de que comprenda completamente el tema. Hay mucha información en la red sobre esto, pero desafortunadamente también hay una gran cantidad de información errónea en la red. Tener cuidado.

Terminaré esto con algunas cosas que deberían levantar banderas rojas. Si ve algo de esto en algunos esquemas, o en lo que alguien escribe, debe huir: el hecho de que la frecuencia de un reloj, o la velocidad de datos, sea lenta no significa que no necesite terminación de señal. Una señal digital de 100 KHz generalmente requiere una integridad de señal adecuada (SI) tanto como una señal de 100 MHz. Cada vez que alguien agrega cosas al circuito para "ralentizar los bordes", es una señal segura de que no tiene ni idea. Cada vez que se agrega un límite directamente a una señal, eso es malo (con la excepción del filtrado EMI en los conectores). Como mencioné antes, usar tapas de tamaño pF en la terminación de CA. Y finalmente, no verificar el SI con un buen osciloscopio y un sondeo adecuado puede ser fatal para su diseño.

"Las curvas provocan algún tipo de reflexión, no relacionada con el desajuste de impedancia". ¿Cuidado para elaborar?
Sin inglete, una curva de 90 grados tiene una pequeña capacitancia adicional en comparación con una línea recta. Si esto está relacionado o no con la falta de coincidencia de impedancia es una cuestión semántica más que técnica. En cuanto a debilitar el trazo, ¿estás pensando en la posibilidad de atrapar el grabado en la esquina interior en lugar de redondear la esquina exterior? Redondear la esquina exterior en realidad mejoraría el problema de la capacitancia. (Dicho esto, estoy de acuerdo en que por debajo de 500 MHz probablemente no tengas que preocuparte por eso)
@PhilFrost Como dije, esto podría entrar en la categoría de leyenda urbana. Según cuenta la historia, la onda de la señal golpea la "pared" de 90 grados y se refleja hacia el conductor. Si está en un ángulo de 45 grados, se reflejará en la pared en el ángulo más hacia el receptor. Mi instinto me dice que esto es pura tontería, pero no soy muy bueno con los matices de RF, así que no estoy preparado para comprometerme con eso.
@ThePhoton Estaba pensando específicamente en redondear la esquina EXTERIOR. Esto haría que la traza fuera más delgada y, por lo tanto, más débil. No mencioné todo el asunto de la trampa de ácido, pero si esto también es un problema, entonces obtienes un doble golpe y el rastro es muy delgado. Es solo otra cosa a considerar si está haciendo una placa con trazas ya finas (en el límite de lo que puede hacer la tienda de PCB). Como punto de referencia, recientemente tuve una placa de circuito impreso con algunas almohadillas cuadradas pequeñas. Las esquinas de las almohadillas se redondearon con un radio de 3 mil. No haría trazas de 4 mil de espesor con esta tienda de PCB.
@DavidKessner No lo incluiría en su respuesta a menos que pueda respaldarlo con referencias. Así es como se propagan las leyendas, los conceptos erróneos y la desinformación.
@PhilFrost Tuve que mencionarlo porque es algo que comúnmente escucho, y el OP lo escuchará. Dije la parte importante, que es que podría ser una leyenda urbana y que puede ignorarse con seguridad para esta situación. Si tiene información que lo aclare, publíquela. De lo contrario, estoy satisfecho con mi respuesta tal como está.
Me preocuparía más el tema de la trampa de ácido que el redondeo de las esquinas. La razón principal del exceso de capacitancia en la esquina es que la traza es efectivamente más ancha a medida que pasa por una esquina de 90 grados, por un factor de sqrt(2). Redondear esta esquina (hasta cierto punto) probablemente solo hará que la esquina tenga el mismo ancho que las partes rectas del trazo.
@ThePhoton Sí, como dije, no he tenido ningún problema. Tampoco he tenido problemas con las trampas de ácido. Solo algo a tener en cuenta, pero no hay razón para que la gente se vuelva paranoica con ellos. En mi opinión.
Escuché sobre reflejos de señal en varios lugares diferentes, no creo que sea una leyenda, es demasiado poco probable que suceda en la mayoría de las frecuencias con las que trata la gente normal... pero no los magos del lado negro.
@DavidKessner, ¿podría dar más detalles sobre la imagen que presenté ahora? Incluso si en este caso, en esta frecuencia no será un problema, todavía tengo curiosidad sobre cómo hacer un enrutamiento de bus adecuado en altas frecuencias.
@mFeinstein Elaboró ​​la respuesta.
@DavidKessner gran respuesta! ¿Qué libro recomiendas en SI? Diseño de sistemas digitales de alta velocidad: Manual de teoría y prácticas de diseño de interconexión o Diseño digital de alta velocidad: Manual de magia negra o Propagación de señales de alta velocidad: Magia negra avanzada o Integridad de la señal y la potencia - Simplificado (2.ª edición) o Integridad de la señal - ¿Simplificado o algo más?

Como habrás adivinado, a 20 MHz no tendrás problemas para diseñar con curvas de 90 grados. Probablemente ni siquiera necesite preocuparse por configurar la geometría de su traza para obtener una microstrip o stripline de impedancia controlada.

Si estuviera diseñando a 50 MHz o más, probablemente desearía diseñar con una geometría de traza que proporcione una impedancia característica aproximadamente controlada (excepto para trazas muy cortas).

Por encima de 100 o 200 MHz (según la longitud de la traza y los requisitos de su aplicación), probablemente desee especificar a la fábrica de su placa que deben controlar la impedancia de la traza.

Para diseños de 200 MHz a 1 GHz, es posible que empiece a preocuparse por evitar curvas de 90 grados. Luego, simplemente podría usar dos curvas de 45 grados, con quizás 20-100 mil de trazo entre ellos, para girar su trazo 90 grados.

Si estuviera diseñando por encima de 1 GHz, es posible que incluso desee evitar curvas de 45 grados, luego usaría arcos suaves para girar la traza. También haría todo lo posible para evitar las vías.

Por supuesto, las bandas de frecuencia que doy para estas diferentes técnicas son estimaciones aproximadas. Algunos diseños a 1 GHz pueden tener requisitos de integridad de señal excepcionales, por lo que usaría arcos. Algunos diseños a 500 MHz pueden tener requisitos relajados y permitirle usar curvas de 90 grados, etc.

La ingeniería se trata tanto de mantener bajos los costos y hacer un trabajo a tiempo como de optimizar un diseño hasta el punto de la perfección. Si su diseño no requiere algo más elegante, las curvas de 90 grados probablemente le permitirán reducir el área de la placa y el enrutamiento Manhattan de varias capas hará que el diseño se haga más rápido, por lo que jugar con los arcos u optimizar para evitar las vías sería una ingeniería deficiente. Las curvas de 45 grados, francamente, no son mucho más difíciles de diseñar, pero probablemente causen un aumento en el área requerida de la placa.

Editar

(respondiendo a la actualización de la pregunta)

Aparentemente, lo que quiso decir con un "autobús" fue una línea con conexiones a varios dispositivos, en lugar de varias líneas enrutadas juntas de un lugar a otro, y le preocupan los lugares donde la línea se bifurca.

En este caso, en una sola capa de enrutamiento, lo mejor que puede hacer es una conexión de 90 grados. Lo que desea evitar son los ángulos agudos en los bordes de cobre. Estos (al menos históricamente) podrían causar la acumulación de grabado durante la fabricación y causar rastros rotos. Como se mencionó en los comentarios sobre la respuesta de David, hoy en día es raro tener un problema con esto con una tienda actualizada de alta calidad. Pero si su trazo se une en algo que no sea 90 grados, habrá un ángulo agudo en un lado o en el otro y su taller de fabricación probablemente aún apreciará si evita eso.

Lo que realmente quiere evitar aquí son los stubs largos fuera de la línea. Largo significa más de 1/10 (más o menos) de la longitud de onda asociada con la frecuencia más alta de interés.

Suponiendo que la fuente de la señal está en la MCU y los receptores en los bloques esclavos, es preferible enrutar, por ejemplo, desde el bloque MCU al Esclavo 1, luego del esclavo 1 al esclavo 2, del esclavo 2 al esclavo 3, etc. Con un trozo lo más corto posible que se bifurca a cada uno de esos dispositivos. Si estuviera trabajando con impedancia controlada, colocaría la terminación al final de toda la cadena, después de que la línea pasa por todos los esclavos.

Por supuesto, si la fuente de la señal está en el dispositivo esclavo y se envía a la MCU, entonces los esclavos en el medio de la cadena aún estarían conduciendo hacia una línea ramificada. Hasta donde yo sé, no hay una gran solución para esto. Pone un límite práctico a la frecuencia de comunicación en un bus multipunto bidireccional como este. Aunque puede ver cosas como las recomendaciones de diseño de DDR3 para ver hasta dónde se puede llevar esto. Para frecuencias más altas, encontrará que las topologías punto a punto en lugar de multipunto se vuelven mucho más comunes.

Siempre hago giros de 45 grados, pero para trazas individuales... mi pregunta es más para un autobús, porque en el autobús habrá una línea recta y varias conexiones de 90 grados "agarrando" esta señal de traza, así que me pregunto cómo evitar las conexiones de 90 grados en el autobús. Tal vez no esté claro, así que podría agregar una imagen más tarde cuando llegue a casa.
¿Qué es la ruta de Manhattan?
@m.Alin, dado que no encuentro un artículo de Wikipedia al que pueda vincularme, u otra pregunta al respecto en EE.SE, sería una buena pregunta para el sitio.
@m.Alin, la mayoría de las veces alguien dice "Manhattan" significa una cuadrícula, al igual que las calles de Manhattan y el diseño de la ciudad... como la Distancia de Manhattan, así que asumo que es lo mismo en el enrutamiento, ya que una cuadrícula terrestre siempre es deseable como una ruta de retorno de baja impedancia ... pero colóquelo como una pregunta de todos modos, es bueno tenerlo documentado
@mFeinstein, como dice christenson en su respuesta, antes de comenzar a preocuparse por las longitudes de los tramos y las curvas de 90 grados, debe diseñar con un plano de tierra completo e ininterrumpido, no con una cuadrícula de tierra.
@ThePhoton, lo siento, no me aclaré... No quise decir que una cuadrícula es lo que la gente debería cuidar... pero por lo general la palabra "Manhattan" se asocia con un diseño de cuadrícula... y sí, como dijiste, usar un plano siempre es mejor, pero dado que la mayoría de los planos tendrán agujeros para que las señales puedan fluir a través de las capas, tienden a verse como una cuadrícula fina a medida que el nivel de integración aumenta... el plano es en realidad el concepto de cuadrícula de múltiples caminos de retorno llevados al infinito, no hay dudas sobre eso...
@mFeinstein, The Photon Acabo de publicar una pregunta sobre el enrutamiento de Manhattan .

Las otras respuestas ASUMEN algo que creo que el cartel original del aficionado no sabe:

Lo más importante que hay que hacer es colocar las trazas sobre un PLANO DE TIERRA. Es un bus SPI, que probablemente funciona por debajo de los 10 MHz, por lo que una pequeña terminación sería la guinda del pastel.

En la práctica, podría colocar 50 ohmios en serie con los pines impulsores para lograr algo de amortiguación. Él o ella realmente no está trabajando a una frecuencia lo suficientemente alta como para que las otras técnicas importen.

gracias @christenson, pero soy consciente de la minimización de la inductancia sobre el uso adecuado de un plano de tierra, evitar cruzar ranuras, etc. Lo que NADIE respondió es sobre la VERDADERA pregunta, sobre la geometría de las huellas en un bus, lo dejé claro. No es una pregunta solo sobre mi caso particular. Y es un 'él', no una 'ella', y no soy un aficionado, sino un estudiante de ingeniería, así que lo siento, pero hay muchas suposiciones ahí...

Un reloj de 20 MHz (el suyo puede ser más rápido) tiene una longitud de onda de 15 metros y, para evitar el problema de las resistencias de terminación, la distancia máxima para la transmisión a través de una placa de circuito impreso a otros dispositivos SPI debe ser significativamente inferior a 15 m y algunas personas optarán por una vigésima parte. de la longitud de onda.

Por lo tanto, a una distancia de 75 cm (todavía una PCB muy grande), debería estar de acuerdo con las técnicas de enrutamiento "normales", es decir, vías convencionales y ángulos de 90 grados cuando intercambia capas, etc.

Si está usando un reloj de +100 MHz (he oído que algunos lo hacen), entonces debería pensar en usar técnicas adecuadas de enrutamiento de alta velocidad y también en mantener las longitudes de reloj y datos equidistantes.

Caviat

Recuerde que el reloj maestro no solo envía datos a los dispositivos esclavos (esperemos que lleguen sincronizados para cada uno), sino que también registra las respuestas de los esclavos y esto nunca puede estar sincronizado, por lo que esta es otra consideración sobre las distancias máximas en PCB. Un buen seguimiento no solucionará este problema.

Un reloj de 20 MHz tendría bordes de frecuencia mucho más altos, ¿verdad?
¿Por qué las respuestas no pueden estar sincronizadas?
Y como dije: "PD: tal vez alguien diga que las velocidades SPI no deberían tener problemas con esto, pero aún así es una pregunta válida para fines de aprendizaje". Entonces lo dije como una pregunta no solo para mi problema particular, sino más como una curiosidad. Pero gracias por la respuesta de todos modos.
"Evitar el problema de las resistencias de terminación" es abrir una lata de gusanos. Donde trabajo, prestamos atención a la terminación de la señal en trazas de más de 2 pulgadas, incluso cuando los relojes funcionan a una velocidad tan baja como 50 KHz. Hacemos esto porque importa, y hemos aprendido nuestras lecciones de la manera más difícil. Y la terminación de la señal no es tan difícil después de todo.
@DavidKessner En un bus SPI, ¿qué haría si estuviera a varias pulgadas del chip más alejado? Sé que probablemente pondría 10pF en serie con 30 a 100 ohmios como precaución, es decir, no es un asesino de nivel lógico completo, pero es suficiente para evitar cualquier "desagradable". ¿Tal vez podría ser una pregunta decente?
@Andyaka En señales con exactamente un receptor, colocaría una resistencia de terminación de fuente (resistencia de 25-75 ohmios en la salida del controlador). En señales con más de un receptor, encadenaría los receptores y colocaría una sola resistencia en un "riel de potencia de voltaje de terminación", que es exactamente la mitad de su riel VCC (es decir, 1.65 V si VCC = 3.3). Cada vez que vea una pequeña tapa (menos de 0.01 uF) en serie con una resistencia de terminación, y/o la señal no es un reloj de ciclo de trabajo del 50%, ¡es una señal segura de que alguien no sabe lo que está haciendo! ¡En serio! Pregúntame en el chat si quieres más sobre eso.
@DavidKessner OK, veo lo que quieres decir y no lo dejé muy claro: ¡pondría la serie (C y R) en paralelo a través de la línea de datos a tierra! ¡Tal vez sigo siendo estúpido! Se ha sabido LOL
No te vuelvas privado, jaja. Estoy aprendiendo de tus discusiones... Soy nuevo en la integridad de la señal y hay tantas cosas que te dan problemas invisibles que me hacen sentir inseguro como el infierno, jaja.
@mFeinstein No me refería a un chat privado. Público está bien. Es solo que esta discusión podría salirse fácilmente del tema o discutir cosas que se hacen mejor en un chat que aquí. Los comentarios a las respuestas no están destinados a discusiones extensas.
Sí, tienes razón, solo quería verlo documentado en alguna parte.