Diseño de PCB, Funcional vs Real Orden de pines

3

Me gustaría continuar esta conversación aquí: Enfoque de disposición de pines del esquema CAD

Básicamente, hay 2 formas principales de hacer símbolos esquemáticos, ya sea con el orden de los pines verdaderos o agrupando los pines por sus funciones. Parece que más personas abogan por grupos funcionales sobre el verdadero orden de los pines debido a la claridad que puede proporcionar a su esquema.

El primer PCB que hice hace unos años usé agrupaciones funcionales en el esquema, luego cuando cambié para hacer el PCB, el número de cruces y vías lo convirtió en un completo desastre. Desde entonces, he hecho que cada símbolo esquemático sea verdadero en el orden de los pines, y luego me he centrado en asegurar que se crucen pocas líneas en el esquema, lo que significa minimizar los cruces en la PCB. Esto ha producido tableros muy limpios y eficientes, sin embargo, no creo que mi método se adapte bien al hacer tableros muy grandes.

Para aquellos de ustedes que usan agrupaciones de pines funcionales, ¿cómo diablos puede producir un PCB eficiente sin demasiados cruces o vías? Por ejemplo, PORTB en un ATmega podría extenderse en los 4 lados del IC. Si los agrupa como un bloque funcional, puede asignarlos a un dispositivo y luego tener una pesadilla absoluta cuando cambie para hacer el enrutamiento. Esto podría haberse evitado fácilmente si se diera cuenta: "Oye, PB0, PD7 y PD6 están todos juntos, tal vez esa sea la mejor opción".

Así que no estoy tratando de convencer a nadie de nada, solo reconozco que la ruta más profesional es la agrupación de pines funcionales, pero simplemente no sé cómo traducir eso a una PCB eficiente.

He incluido uno de mis esquemas como ejemplo de cómo lo hago. Esta placa era de 1 centímetro cuadrado y, por lo tanto, cada una de las vías era una propiedad inmobiliaria importante.

Gracias de antemano.

    
pregunta RabidAlpaca

4 respuestas

6

Este es un gran ejemplo de por qué el mismo ingeniero que diseñó el circuito debe hacer el diseño y el enrutamiento. El esquema es para la comunicación del circuito, por lo que los pines deben estar organizados funcionalmente sin tener en cuenta el orden físico de los pines. Esto es mucho mejor para la mayoría de los usos del esquema.

Sin embargo, el diseño y el enrutamiento no es uno de esos usos. La solución es ver esto como parte del problema de diseño y enrutamiento, no como algo que se debe hacer retroceder en el esquema. La mayoría de las veces, los pines de un puerto de un microcontrolador, por ejemplo, están cerca uno del otro. Pero a veces no. Tienes que mirar el ratsnest al hacer el diseño, y ver si puede haber formas de simplificar eso sin afectar el circuito. Sí, podrías terminar yendo y viniendo entre el esquema y el diseño, y moviendo las redes entre los pines.

Afortunadamente, esto suena como algo más importante de lo que realmente es. La mayoría de las veces, las conexiones arbitrarias se pueden acomodar bastante bien. A veces tienes una tabla muy estrecha con pocas capas que es realmente sensible al costo. En ese caso, usted gasta el esfuerzo adicional de ingeniería para intercambiar cosas para simplificar el tablero. Una vez más, ese es el caso inusual. La mayoría de los productos no tienen el volumen suficiente para justificar este nivel de optimización durante la ingeniería.

Añadido

Debería haberlo mencionado antes, pero para los diseños densos me cuido de asignar pines por adelantado. Recientemente puse un microcontrolador de 64 pines en un tablero de 4 capas. Con tantas conexiones en un espacio reducido, el enrutamiento dentro de una pulgada más o menos del chip es un problema grave. Es fácil bloquear las señales, lo que requiere un redireccionamiento significativo de otras señales.

Lo que hice fue imprimir el diagrama de pines de la hoja de datos lo más grande posible. Luego escribí etiquetas alrededor del chip que indicaban en qué dirección estarían los otros subsistemas en la pizarra. Por ejemplo, "EEPROM" en la parte superior derecha, pantalla del procesador en la parte superior izquierda, puerto de servicio en la parte inferior, izquierda, etc. También creé una lista de todas las señales de E / S requeridas por cada bloque.

Para asignar pines, primero taché los que debían ser arreglados. Algunas de las posiciones del subsistema fueron sugeridas por las asignaciones de pin fijo. Sí, este es un proceso iterativo. Una vez que todo estuvo listo, comencé a asignar pines cercanos a las líneas de E / S de los diversos subsistemas. Usted quiere hacer esto a lápiz ya que esto también es algo iterativo. Por ejemplo, puede encontrar que debería haber comenzado a asignar los pines UART más a la izquierda, ya que otras cosas tienen una mayor demanda a la derecha y se está quedando sin pines allí.

Para un micro tan complicado, dedico una hoja completa solo para las conexiones inmediatas del micro. Esto muestra la potencia, conexión a tierra, tapas de derivación, cristal, cabecera de programación y similares. Las conexiones de E / S son solo líneas con nombre que van a otras páginas en el esquema. Esta página está etiquetada algo así como "Controlador principal". La siguiente página tal vez "Controladores periféricos principales", que muestra las cosas conectadas a las líneas de E / S que no necesitan ir a ninguna otra parte del esquema. Algunos ejemplos pueden ser la EEPROM externa, el LED de estado, un relé con contactos llevados a un conector de cliente, etc.

Tenga en cuenta que el método anterior requiere una idea del diseño antes de asignar pines. De nuevo, este es un proceso iterativo. En este caso, dejé las señales de E / S flexibles desconectadas del procesador al iniciar el diseño. Elegí ubicaciones para los subsistemas de acuerdo a dónde se conectaban con el mundo externo, donde estarían fuera del camino cuando su ubicación no importara, etc. El procesador se orientó luego en función de dónde estaban las cosas fijas a su alrededor, como el cristal. y tapas de carga, podría encajar mejor. Fue entonces cuando se inició el proceso descrito anteriormente.

Este fue un caso bastante extremo. La mayoría de las veces no necesito ser tan deliberado sobre la asignación de pines de E / S. Para los procesadores más pequeños donde hay menos congestión de enrutamiento, por lo general solo asigno pines en el esquema y luego lo trato en el diseño. Eso puede significar algunas vías adicionales, pero para muchos tableros no es un gran problema.

    
respondido por el Olin Lathrop
4
  

Para aquellos de ustedes que usan agrupaciones de pines funcionales, ¿cómo diablos puede producir un PCB eficiente sin demasiados cruces o vías?

Una palabra: Iteración

Después de trazar el esquema (generalmente en conjunto con el firmware) reenvío la PCB. Si la ruta comienza a complicarse de forma estúpida para algunas señales, volveré al esquema y moveré las señales a un puerto que está físicamente mejor situado en el chip. Luego actualizar y enrutar más trazas. Continúe hasta que se enruten todas las señales o no pueda encontrar una asignación más óptima ... luego puede comenzar a eliminar los vias.

No creo que la información física deba ser parte del esquema. El esquema es lo que define la conectividad eléctrica: tengo esta resistencia y está conectada al ánodo de este diodo. A qué distancia están, dónde están en la pizarra, o la orientación de los componentes es irrelevante para el esquema.

    
respondido por el Adam Head
3

Supongo que diría que esa es la razón por la que deberías trabajar estrechamente con la gente de diseño (o con ti). Por lo tanto, cuando ves en un diseño que estás teniendo problemas, puedes hacer esas concesiones. O si desea ir a esta ruta, puede usar el intercambio de pines en el que toma un grupo de, por ejemplo, GPIO que no le importa cuáles use desde el punto de vista de un diseño esquemático, luego asigne un atributo de intercambio de pines. En tu herramienta de diseño, puedes hacer un intercambio de pin a nivel de nido de ratas para hacer las cosas más limpias.

Cuando hayas terminado, puedes anotar tu lista de redes en tu esquema para obtener las conexiones GPIO actualizadas. Creo que esa es una práctica bastante común, aunque a algunas personas no les gusta que quieran un proceso totalmente esquemático. También es útil para enrutar DRAM donde está bien intercambiar bits de datos dentro de un carril de bytes, por ejemplo.

    
respondido por el Some Hardware Guy
2

Las reglas generales para el diseño de esquemas se aplican a los escenarios de diseño "típicos".

  1. La preocupación por los cruces en realidad solo se aplica a los diseños de recuento de capas muy bajas. Si tiene suficientes capas para tener capas de enrutamiento horizontales y verticales separadas, hay poco costo adicional para los cruces.

  2. Muchas herramientas de diseño de PCB permiten el intercambio de pin durante el diseño, con una anotación inversa al esquema, si están configuradas correctamente.

  

Este tablero era de 1 centímetro cuadrado y, por lo tanto, cada una de las vías era una propiedad inmobiliaria importante.

Este es un escenario en el que podría tener sentido hacer el esquema con ordenamiento mecánico de pines. Realmente, cualquier circuito que encaje en esta placa será lo suficientemente simple como para que la lectura del esquema no sea particularmente difícil, incluso con el pedido mecánico de pasadores.

    
respondido por el The Photon

Lea otras preguntas en las etiquetas