Autor Tema: Duda ruteado de bus SPI en PCB de 4 layers  (Leído 3014 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Duda ruteado de bus SPI en PCB de 4 layers
« en: 20 de Septiembre de 2016, 10:28:45 »
Hola,

ando diseñando un pcb de 4 capas en el que tengo un bus spi y me surgen unas dudas en cuanto a su ruteado.

El pcb es sencillo, solo lleva unos pocos componentes:



Un soc de radio que se comunica mediante un bus SPI con el integrado de su derecha, por cuestiones de espacio y debido a que el soc lleva salida de antena que requiere un trazo de 50 ohmios tengo que irme a un pcb de 4 layers, haciendo en principio el stackup típico:

1. Señal (rojo en la imagen)
2. Gnd (no se ve en la imagen).
3. Vcc (no se ve en la imagen).
4. Señal (azul en la imagen).

El problema o dudas los tengo al trazar el bus SPI, las líneas del SPI son las pistas del pcb ilumindados que se ven en la imagen:



La distancia entre los integrados comunicados por SPI no es mucha pero por temas de espacio tengo que usar vías para las pistas del bus spi. Al meter una vía entre la cara superior e inferior con el stackup anterior lo que hacemos es meter una discontinuidad en el camino de retorno de la corriente (siempre que la frecuencia de la señal que va por la vía sea lo suficientemente alta para que se de éste caso de camino de retorno inductivo).

Lo que hacemos es lo que se puede ver en la siguiente imagen:



Cuando ocurre esto, en donde la señal tiene un cambio de planos de referencia, lo suyo es poner varios condensadores de desacoplo cerca de la via entre Vcc y Gnd, que minimizen el camino de retorno que la corriente tiene que hacer para cambiar de planos de referencia, pero en este caso no tengo espacio en el pcb para meter esos condensadores cerca de las vias de las señales SPI.

Creéis que como tengo el ruteado de ese bus dará problemas para un SPI de 5 MHz (los tiempos de subida y de bajada de la señal que dan su ancho de banda no los he mirado), no he añadido resistencias de terminación en el bus ya que la distancia es corta, no sé si sería adecuado poner por ejemplo una R en serie con la salida de cada pin de SPI?

Una posible solución que se me ocurre es cambiar el stackup a:

1. Señal + power.
2. GND.
3 GND.
4. Señal + power.

Los trazos de alimentación son los que se ven iluminados en la image:



Por lo que es sencillo llevar la alimentación por la cara superior o inferior del pcb.

La ventaja de este stack-up frente al inicial es que ahora al meter vías entre la cara inferior y superior del pcb, la señal sigue estando referida al mismo plano de referencia (las dos capas centrales del pcb son plano de tierra), por lo que con meter una simple vía junto a la vía que cambia entre top y bottom de la señal sería suficiente, en lugar de tener que usar dos vías y un condensador solo necesitamos una vía para minímizar el camino de retorno de la corriente que se da en el cambio de planos de referencia entre layer 2 y layer 3.

La desventaja es que perdemos la capacitancia que forman los planos de Vcc y GND, que es un pequeño condensador formado por el pcb que va a ser más rápido que los propios condensadores de desacoplo.

No sé si hay alguna desventaja más a usar el stack-up de 1,4 signal + power 2,3 GND frente a 1,4 signal 2 Gnd 3Vcc?

Por último, otra duda similar a la anterior, en el datasheet del soc recomiendan que no se hagan pistas en el layer donde se suelda el SOC, en mi caso se me queda una del jtag iluminada en la siguiente imagen:



Veis adecuado rutear esa pista en alguno de los layers internos (planos de referencia) y de igual forma que consideraciones hay que hacer si se cambia mediante una vía de la cara superior a alguna de las internas?, aunque en este caso ese trazo se corresponde con una señal de jtag, que no creo que sea problemática.

Mi duda es más por las señales de SPI de 5 MHz (con sus tiempos de subida y de bajada) y romper la continuidad de la señal de retorno en el caso de que a esa frecuencia la deba considerar (que casi diría que no).

A ver si alguien puede contarme un poco.

Gracias.

Saludos.


« Última modificación: 20 de Septiembre de 2016, 11:13:34 por Jorge555 »

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 73
    • Canal de YouTube
Re:Duda ruteado de bus SPI en PCB de 4 layers
« Respuesta #1 en: 20 de Septiembre de 2016, 14:24:50 »
Primero va un "yo no fui" porque si vas a seguir mi consejo en hardware no me hago responsable de los daños que pueda ocasionar, aun cuando haya un error de mi parte  :D

Lo que pasa es que el hardware es peligroso, vio?, a veces sale humito...  :mrgreen:

...El problema o dudas los tengo al trazar el bus SPI ...

...Al meter una vía entre la cara superior e inferior con el stackup anterior lo que hacemos es meter una discontinuidad en el camino de retorno de la corriente (siempre que la frecuencia de la señal que va por la vía sea lo suficientemente alta para que se de éste caso de camino de retorno inductivo)...

...Creéis que como tengo el ruteado de ese bus dará problemas para un SPI de 5 MHz (los tiempos de subida y de bajada de la señal que dan su ancho de banda no los he mirado), no he añadido resistencias de terminación en el bus ya que la distancia es corta, no sé si sería adecuado poner por ejemplo una R en serie con la salida de cada pin de SPI?
...

Para 5MHz seguramente funciona hasta en una protoboard, pero desconozco que tanto ruido genera el integrado de radio.
Idealmente vas a querer que abajo del integrado de radio haya un plano de masa/GND continuo con la menor cantidad de cortes posible, por eso yo elegiría trazar las pistas del spi "rodeando" al integrado, va un dibujito para la heladera  :-)


* Screenshot from 2016-09-20 13:51:55.jpg
(154.98 kB, 927x547 - visto 623 veces)


En cuanto a poner un resistor serie o no... depende. ¿El integrado de la derecha es un microcontrolador?.
¿Probaste hacer funcionar el módulo de radio solo?: soldado a una placa pre-perforada, o un breakout board, o algo que venga para hacer pruebas, poner alimentación, enchufar spi, y darle comandos para ver que responde.
Si eso no lo hiciste quizás deberías ver la forma (aunque sea improvisada) de hacerlo.
Lo mismo con el microcontrolador (o lo que sea el otro integrado).

Porque después hay sorpresas como "el módulo spi del micro tiene un defecto de silicio que hace necesario poner un resistor en serie..". O aunque no se trate de un error de silicio, simplemente para ver que tan tolerante es el módulo de radio a trabajar con el módulo spi enchufado a través de un cable (susceptible por lo tanto a interferencias, etc).

Si no hiciste experiencia con cada uno de los componentes, vas a encontrar que hiciste la placa, soldas los componentes, enchufas... y no hay forma de saber por qué no funciona (mal diseñada la placa?, funcion el spi del micro?, será el plano de masa?, están bien soldados los componentes?).

Veis adecuado rutear esa pista en alguno de los layers internos (planos de referencia) y de igual forma que consideraciones hay que hacer si se cambia mediante una vía de la cara superior a alguna de las internas?, aunque en este caso ese trazo se corresponde con una señal de jtag, que no creo que sea problemática.
Si... una pista corta en cara interna se le perdona a cualquiera.... siempre y cuando esa pista no atraviese en forma transversal la placa y termine dividiendo el plano de masa en dos regiones conectadas por un pelito, no debería ser tanto problema.

Lo que yo me pregunto es si realmente precisas 4 caras... ah... la parte de RF, ahí no me meto.

Mi duda es más por las señales de SPI de 5 MHz (con sus tiempos de subida y de bajada) y romper la continuidad de la señal de retorno en el caso de que a esa frecuencia la deba considerar (que casi diría que no).

Como dije antes, me parece un riesgo mayor no haber probado el módulo de radio solito con una placa de desarrollo de tu preferencia (arduino, msp430 launchpad, pic, ARM, lo que tengas a mano) que si va a haber algún problema con el bus spi.

Pero, si necesitas sacar el diseño de la placa ya mismo y no se puede esperar a hacer esas pruebas... yo pondría puntos de test en todos lados, dejaría espacio para un resistor en serie, para poner quizás algún capacitor en paralelo con las entradas, y que esa placa me sirva tanto para hacer pruebas como para el producto final. Y también poder modificarla con herramientas comunes (nada de usar un capacitor 0402 o más chico, de 0806 para arriba ya es más manejable.


Varios:
Veo que usas vías pequeñas (comparado con el resto), son menos de 0.5mm? (te va a encarecer la placa).
Cuidado con que la impresión (silk screen) no te quede arriba de los pads!!!, un fabricante cuidadoso normalmente hace un recorte automático... pero podrías no tener suerte.
Cuidado con poner vías muy cerca de los pads del integrado, porque si no hay máscara de soldadura entre ellas (bien puesta, que no se desprenda por ser muy pequeñita) todo el estaño del pad se lo va a chupar la vía.
Seguro que el agujero de montaje grande entre los 2 integrados tiene suficiente espacio, no?, no sea que después lleve una tuerca hexagonal y no haya espacio para ajustarlo con un destornillador/tubo.
Tratandose de un integrado de radio me preocupa no ver más capacitores (en cada pin de alimentación por separado).
Las pistas que van a la antena... cuidado con cambiar de capa, la impedancia de una cara interna no es la misma que una cara externa... seguir recomendaciones del fabricante al pie de la letra (y aún así puede haber problemas).

Bueno con eso ya es suficiente, espero que no haya sido demasiado de golpe, que puede causar más confusión que claridad.

Saludos.
« Última modificación: 20 de Septiembre de 2016, 14:33:29 por colotron »

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Re:Duda ruteado de bus SPI en PCB de 4 layers
« Respuesta #2 en: 20 de Septiembre de 2016, 17:01:33 »
Gracias por la respuesta,

éste es el prototipo, si funciona todo bien pues mejor, y si no funciona pues nada se hace otro. El módulo si está probado en su placa de evaluación.

Pedir los pcbs no es muy caro: http://www.elecrow.com/services/pcb-prototyping/10pcs-4-layer-pcb.html $23 10 pcbs, con vías de 12 mil (0.3048 mm) que es las que estoy usando según esas especificaciones.

5 MHz en si es una frecuencia que no da problemas, pero aunque una señal cuadrada sea de 5 MHz ésta va a tener componentes frecuenciales superiores a los 5 MHz, depende del tiempo de bajada y de subida de la propia señal, si recuendo bien el ancho de banda de una señal se puede decir que es 0.35/Tr. Yo tampoco creo que vaya a haber problemas pero no soy experto en el tema por lo que pregunto.

Lo que no em gusta es cambiar las pistas que llevan buses a MHz entre varias caras ya que cambio los planos de referencia de la señal, en este caso considero que el stack-up de 2 planos de tierra en las layers internas puede ser mejor que el de plano de Vcc y GND en las dos layers internas, ahí tengo la duda.

Las pistas del SPI tienes que ir por ahí, no caben por otro lado, debajo del chip de radio en el layer que está a 0.2 mm del layer de color rojo hay un plano de tierra continuo, el pcb por motivos de espacio ha de ser de 4 layers de igual forma, la diferencia de precio entre 4 y 2 layers es pequeño, no hay motivo para pedirlo de dos.

Intentaría poner resistores en serie con las spi pero voy justo de espacio, y la distancia de las pistas es corta, componentes 0603 y 0402 uso, estoy acostumbrado a trabajar con ellos y más grande no caben.

Gracias, S2.
« Última modificación: 20 de Septiembre de 2016, 17:05:49 por Jorge555 »

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 73
    • Canal de YouTube
Re:Duda ruteado de bus SPI en PCB de 4 layers
« Respuesta #3 en: 20 de Septiembre de 2016, 17:35:53 »
...
éste es el prototipo, si funciona todo bien pues mejor, y si no funciona pues nada se hace otro. El módulo si está probado en su placa de evaluación.

Pedir los pcbs no es muy caro: http://www.elecrow.com/services/pcb-prototyping/10pcs-4-layer-pcb.html $23 10 pcbs, con vías de 12 mil (0.3048 mm) que es las que estoy usando según esas especificaciones.

Claro... yo lo decía desde mi perspectiva de Argentino, donde hacer un PCB es algo doloroso y que lleva tiempo, si bien últimamente hay gente que empieza a trabajar con prototipos localmente. Todavía no tuve ocasión de probarlos. Y pelearse con la aduana... voy a esperar un poquito más a que se aclare la política de importaciones  :?

5 MHz en si es una frecuencia que no da problemas, pero aunque una señal cuadrada sea de 5 MHz ésta va a tener componentes frecuenciales superiores a los 5 MHz, depende del tiempo de bajada y de subida de la propia señal, si recuendo bien el ancho de banda de una señal se puede decir que es 0.35/Tr. Yo tampoco creo que vaya a haber problemas pero no soy experto en el tema por lo que pregunto.

Yo tampoco soy un experto, pero presiento lo mismo... he usado tarjetas de memoria SD con SPI usando un adaptador soldado microSD->SD enchufado a una protoboard, y de ahí un cable a la placa de desarrollo del micro, y lo pude trabajar a 16 MHz sin problemas (más velocidad no me hacía falta).

Lo que no em gusta es cambiar las pistas que llevan buses a MHz entre varias caras ya que cambio los planos de referencia de la señal, en este caso considero que el stack-up de 2 planos de tierra en las layers internas puede ser mejor que el de plano de Vcc y GND en las dos layers internas, ahí tengo la duda.

Buscaría si hay alguna placa de desarrollo del chip de radio, y básicamente lo copiaría, incluyendo ubicación de componentes y stack-up de layers. Que sea una placa de desarrollo de algún diseñador competente en lo posible  :) (primero el fabricante del chip, luego buscar páginas de proveedores grandes como DigiKey o Mouser, sino revolvemos entre Sparkfun, Adafruit, SeeedStudio si no hay otra).

Cambiar de layer las pistas me preocupa más para las señales de antena/RF (cambio de impedancia) que para el spi.
Para 5MHz no se comporta como linea de transmision:
lambda = c / f * 1/sqrt(er) = (3x 10^8 m/s) / (5x10^6 Hz) * 1/sqrt(4,8)
lambda ~ 27 m (metros)

lambda/10 -> 2,7 metros por lo tanto tu placa no ve las pistas como línea de transmisión. Si esa cuenta diera un valor 10 veces más chico (27 cm) ahí estamos al límite entre poder ignorarlo y no.

Las pistas del SPI tienes que ir por ahí, no caben por otro lado, debajo del chip de radio en el layer que está a 0.2 mm del layer de color rojo hay un plano de tierra continuo, el pcb por motivos de espacio ha de ser de 4 layers de igual forma, la diferencia de precio entre 4 y 2 layers es pequeño, no hay motivo para pedirlo de dos.

Intentaría poner resistores en serie con las spi pero voy justo de espacio, y la distancia de las pistas es corta, componentes 0603 y 0402 uso, estoy acostumbrado a trabajar con ellos y más grande no caben.

Qué bueno!!!, aca pasar de 2 capas a 4 seguro implica que tarda el doble (mínimo) y a tener cuidado con el resultado.
Si estás comodo con componentes pequeños, genial  ((:-)) , yo no soy muy hábil por eso lo mencioné.
A pesar de que hay poco espacio, no dejes de intentar de poner algún punto de prueba donde puedas apoyar la punta del osciloscopio para ver que como está la señal.
Aún con espacio reducido podés hacer que algunas vías queden sin cubrir por solder mask (no tented), y podés usar las vías como punto de test (pero que no queden vías descubiertas debajo de los integrados!!!).

Eso es todo lo que puedo decir, dudo que pueda aportar algo que no hayas considerado.

Gracias, S2.
Saludos y suerte!!!.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Duda ruteado de bus SPI en PCB de 4 layers
« Respuesta #4 en: 20 de Septiembre de 2016, 17:44:05 »
Si te sirve de referencia, en la imagen siguiente tengo una comunicacion I2S (mismo bus que el SPI) con un MCLK de 24MHz. La placa es doble faz y las vías como verás estan hechas a mano con un alambrecito que pasa y se suelda de los 2 lados. Con el oscilloscopio la onda cuadrada es casi un seno, jajaja, y funciona sin problemas.
Si bien no es lo recomendado, dudo mucho que tengas una falla en esa parte.


* IMG_20160920_173518568-min.jpg
(171.7 kB, 1348x784 - visto 626 veces)
-
Leonardo Garberoglio

Desconectado Jorge555

  • PIC18
  • ****
  • Mensajes: 496
    • JMN
Re:Duda ruteado de bus SPI en PCB de 4 layers
« Respuesta #5 en: 21 de Septiembre de 2016, 07:57:33 »
Gracias por las respuestas,

también por ruido que pueda radiar, pero bueno en principio voy a dejarlo así y a ver qué sale.

Aquí tenemos la suerte de poder pedir pcbs a China de bajo coste y además son bastante rápidos enviandolos, por lo que hacer pcbs y pedir pcbs a los fabricantes europeos cuyo precio es mucho mayor es casi cosa del pasado.

Gracias a los pcbs chinos lo de desarrollar electrónica sale mucho más barato.

Saludos.


 

anything