Mi reciente publicación en el blog sobre la gestión de redes de alimentación atrajo un gran número de comentarios muy interesantes e informativos. Ha sido reconfortante para mí ver a tantas personas involucrándose en la discusión. Todas estas contribuciones me han ayudado a apreciar cuán vasto y complejo puede ser el dominio de la gestión de energía.
Mi reciente publicación en el blog sobre gestión de redes de alimentación atrajo un gran número de comentarios muy interesantes e informativos. Ha sido reconfortante para mí ver a tantas personas involucrándose en la discusión. Todas estas contribuciones me han ayudado a apreciar cuán vasto y complejo puede ser el dominio de la gestión de energía. También es obviamente un área de gran importancia para todos ustedes, independientemente de los tipos de diseño que realicen.
Muchos de estos comentarios ofrecen excelentes sugerencias e ideas. Me gustaría intentar reunir todo esto de una manera coherente y organizada, que espero indique un camino visible y útil a seguir.
Me gustaría abordar esto definiendo y clasificando primero los problemas que deben ser abordados para hacer que la gestión de energía sea menos "consumidora de energía" (perdón por el juego de palabras) para ti. Luego, para cada problema o clase de problemas, intentaré proponer algunos enfoques posibles para soluciones, mientras trato de estimar el esfuerzo de desarrollo involucrado para implementar estos.
Los primeros tipos de problemas son elementales.
Cada red de energía (el conjunto de redes involucradas en proporcionar energía a los componentes) debería estar finalmente conectada a alguna fuente externa de energía. Cualquier fuente externa de energía también debería entregar energía en algún lugar. En una red de energía dada, se deben respetar las restricciones presupuestarias básicas (la energía producida debe ser mayor o igual a la energía consumida, los rangos de voltaje operativo de los dispositivos que se conectan a una red común deben coincidir). Además, donde las redes de energía interactúan con señales (me refiero a las resistencias de pull-up y pull-down), no se deben generar errores espurios que oscurezcan los errores reales.
Luego vienen problemas de una naturaleza más compleja.
Cada presupuesto de red de energía debe ser gestionado con precisión para asegurar que lo que se suministra se distribuya adecuadamente (para que las diversas partes funcionen correctamente) y, finalmente, se recolecte, bajo todas las circunstancias operativas posibles. Lo que preocupa es la cantidad de corriente proporcionada bajo qué voltaje (para el lado de suministro), y cómo se recolecta y devuelve.
Finalmente, están los problemas más avanzados.
En última instancia, el PCB necesita ser diseñado de manera que satisfaga físicamente los requisitos de energía de las partes utilizadas. Para evitar el trabajo repetitivo y los errores, estas restricciones de diseño deberían calcularse automáticamente a partir de la información del esquemático. Luego, para verificar que el resultado sea adecuado, el diseño final del PCB debería ser simulado. Estas áreas de preocupación incluyen diseño de planos de energía y división, gestión de rutas, gestión del calor, estrés de las partes, y así sucesivamente.
Para el primer grupo de problemas elementales, creo que, dado los medios para definir una red de energía, sus nodos y sus características básicas, debería ser relativamente fácil realizar verificaciones elementales y centrar la atención del diseñador en problemas potenciales.
Las verificaciones elementales en las que estoy pensando son:
La pregunta importante es: ¿cuál sería una manera práctica de implementar esto?
Primero, consideremos la forma de ‘construir’ una red de energía. Una red de energía es simplemente un conjunto de redes involucradas en proporcionar energía a las partes que la necesitan.
Encuentro que las partes semi-transparentes son un buen mecanismo para lograr el propósito de definir esto.
Entiendo que la representación gráfica propuesta en la publicación anterior no es adecuada, y veo totalmente los puntos mencionados - como se mostró anteriormente, pueden ser confusos, engañosos y llenar el espacio de diseño innecesariamente.
Su propósito clave es comunicar que para una cierta intención (aquí, definición de red de energía) dos redes deben considerarse unidas. En el caso de la gestión de energía, actúan meramente como cables, y por lo tanto deben colocarse en partes que no afecten el voltaje de manera significativa.
Esto debería reflejarse en su comportamiento y su representación gráfica. En pantalla, solo deberían ser visibles de manera explícita, por ejemplo, cuando el mouse se desplaza sobre un pin involucrado y/o de acuerdo con alguna preferencia o configuración. Aunque aún no he determinado exactamente cómo se verían (cuando y si son visibles en absoluto). Definitivamente debería ser posible excluirlos de las impresiones y salidas. También permitirán relaciones de uno a muchos. Será posible colocarlos tanto en una biblioteca como en un contexto de diseño.
Entonces, veamos qué sería necesario para definir características eléctricas básicas en una red de energía. Entiendo que reemplazar el tipo de pin ‘Power’ por dos tipos ‘Power Supply’ y ‘Power Sink’, mientras se incrustan características eléctricas en los parámetros del pin, es una idea popular. Sin embargo, me hace sentir incómodo por varias razones.
En primer lugar, se plantea el problema de la actualización de datos, tanto en un contexto de biblioteca como de diseño. Dado un pin de alimentación "antiguo", se tendría que hacer una elección juiciosa al pasar al nuevo software (¿se suponía que era un suministro o un sumidero?). Dada la situación real de hoy, parece que no hay una respuesta fácil. El mismo problema existe para la compatibilidad hacia atrás y los datos que van y vienen entre varias versiones del software.
En segundo lugar, las opiniones parecen divergir con respecto a la denominación y los conceptos subyacentes a estos tipos (suministro de energía/sumidero, suministro de corriente/sumidero, referencia positiva/negativa...). También podría introducirse cierta confusión en lo que respecta a los suministros de energía negativos.
Existe además el problema de las características de las partes que varían dependiendo de cómo se usan en varios diseños. Esto va desde reguladores ajustables hasta la potencia entregada por conectores genéricos. Modificar los propios pines de la parte en el diseño siempre es una posibilidad, pero este es un enfoque lleno de peligros cuando se trata de una gestión de datos rigurosa (por ejemplo, al usar Actualización desde Bibliotecas o el Gestor de Elementos de Diseño).
Creo que lo que se requiere aquí para avanzar es un sistema más flexible que permita declarar las características de los pines de conexión de una manera simple.
Desde esta perspectiva, me gusta la idea de "Etiquetado" propuesta por Ian. Un "Power Tag" es simplemente una descripción de conexión. Está definido por un tipo (Productor o Consumidor), una clasificación de potencia, un rango de voltaje y una descripción de texto libre. Cuando se coloca en un pin, declara las características eléctricas del pin. Puede colocarse tanto en un contexto de biblioteca como en un contexto de diseño.
Luego, dada una red de alimentación, las verificaciones básicas pueden realizarse fácilmente:
Las siguientes imágenes ilustran el enfoque general descrito anteriormente. En este ejemplo, se definen dos redes de alimentación: 5V0 y 3V3.
Un conector de alimentación entrega 5V0 a toda la red. Directamente en el esquemático (ya que esta situación es específica del diseño) una Power Tag describe las características de potencia del pin del conector de alimentación que está conectado al riel de 5V0.
Un interruptor permite encender y apagar la energía. Dado que las redes +B y 5V0 son parte de la misma red de energía, y en efecto a la misma tensión, se añaden dos transparencias para enlazar los pines 1 y 3, y los pines 3 y 2. Un interruptor siempre es 'transparente', por lo que estas transparencias podrían haberse añadido al símbolo esquemático en sí, en una biblioteca de esquemáticos.
Luego, un regulador reduce el riel de 5V0 a 3V3.
5V0 se entrega a un amplificador de potencia de audio. Las etiquetas de potencia colocadas en los pines describen sus características. El valor de potencia consumida describe el peor escenario posible. Esto puede hacerse tanto en un entorno de biblioteca de esquemáticos como en el esquemático en sí.
3V3 se entrega a un controlador de pantalla táctil, cuyas características de los pines son descritas por etiquetas de potencia apropiadas.
Luego, se pueden realizar comprobaciones simples de potencia en 5V0:
Productores en 5V0
Pin |
Potencia producida (W) |
J19-1 |
5 |
Total |
5 |
Consumidores en 5V0
Pin |
Potencia Consumida (W) |
U1-1 |
1 |
U26-2 |
1.3 |
U26-101.3 |
|
U26-15 |
1.3 |
Total |
4.9 |
También en esta red, todos los rangos de voltaje coinciden (J19-1 proporciona 5V0, mientras que U1-1 necesita 2V7~6V0, y U26-2, 10 y 15 necesitan 4V5~5V0).
En 3V3, se pueden realizar las mismas verificaciones:
Productores en 3V3
Pin |
Potencia producida (W) |
U1-5 |
480 x 10-3 |
Total |
480 x 10-3 |
Consumidores en 3V3
Pin |
Potencia consumida (W) |
U48-10 |
80 x 10-6 |
U48-1 |
750 x 10-6 |
U48-9 |
10 x 10-9 |
Total |
830.01 x 10-6 |
También en la red de 3V3, los rangos de voltajes operativos coinciden (3.2V~3.4V, 1.2V~ 3.4V, 2.7V~3.6V, 2.7V~3.6V)
Basado en este enfoque revisado, comienzo a ver un camino claro hacia la implementación de una solución efectiva que aborde estos problemas elementales, dentro de unos pocos meses.
También debería ser posible resaltar todas las redes de alimentación bajo demanda, con alguna indicación de su corrección.
Igualmente, un mecanismo simple de agrupación de productores, utilizando un índice de grupo en la Etiqueta de Alimentación, nos permitirá indicar qué productores estarán activos al mismo tiempo (y por lo tanto deberían sumarse), por ejemplo, para sistemas de alimentación redundantes. El sistema puede tomar esto en consideración mientras realiza las comprobaciones.
También me gustaría abordar el problema más complejo de la gestión asistida del presupuesto de energía.
Entiendo que una herramienta muy útil sería una que, dadas las características eléctricas completas de los componentes involucrados y la forma en que están conectados entre sí, pudiera hacer todos los cálculos e informar si todas las restricciones declaradas están satisfechas, en todo momento. Estoy de acuerdo con esta visión.
Para implementar eso de cualquier manera satisfactoria, tendría que introducirse el motor de simulación Spice, lo cual es obviamente posible.
Además del peso de añadir los modelos de simulación adecuados a las bibliotecas y diseños, aún no estoy seguro de si todos los casos posibles pueden ser cubiertos de manera fiable. El consumo de energía de muchos dispositivos depende de la manera en que realmente operan en el campo. Para acomodar eso, el motor de simulación Spice tendría que estar equipado con medios para tener en cuenta la forma en que los dispositivos están programados, y la manera en que estos dispositivos programados interactúan con su entorno.
Esto suena como un proyecto muy emocionante, pero que encaja en una perspectiva a largo plazo. Me parece como algo que vale la pena reflexionar, investigar y hablar más adelante - ¡posiblemente en una futura entrada de blog!
Finalmente, los temas avanzados de generación automática de reglas y simulación final del diseño parecen igualmente útiles si pudieran ser abordados efectivamente. Sin embargo, el camino hacia su implementación final parece aún más incierto.
En términos de generación automática de reglas, se tendrían que resolver una serie de problemas arquitectónicos en el software, como la capacidad de definir reglas binarias a nivel esquemático, por ejemplo. Luego, las pautas para la generación automática de reglas tendrían que ser claramente investigadas y definidas, con posiblemente, nuevas reglas introducidas a nivel de PCB.
Además, en el mundo de la simulación del resultado final, tendría que desarrollarse o adquirirse alguna tecnología completamente nueva. Se tendrían que tomar una serie de pasos estratégicos primero para abordar estos aspectos de manera efectiva.
Este ha sido un post bastante largo, pero creo que el interés expresado en este tema exigía un análisis cuidadoso, y una respuesta igualmente detallada y honesta. Mi objetivo es delinear claramente un camino hacia una solución útil que pueda implementarse efectivamente en cuestión de un par de meses.
Incluso para la solución elemental que he propuesto, cualquier aporte sería muy útil.
Por ejemplo, sigo hablando de 'Red de energía' pero encuentro el término ambiguo en el mejor de los casos. Aquí hemos utilizado el término 'Línea de energía'. ¿Cuáles son sus pensamientos?
Además, la representación gráfica de parte transparente y las Etiquetas de Energía ciertamente requerirán una consideración muy cuidadosa. Lo que se dibuja en la ilustración de arriba es simplemente un borrador. Sus sugerencias serán más que bienvenidas.
Como siempre, me gustaría mucho leer sus pensamientos e ideas aquí.
Por favor, publíquenlos en la sección de comentarios a continuación.