
Buen dia
Atención, mucho texto y fotos. En el mercado puede encontrar muchas variaciones de PC de placa única con escudos o soluciones todo en uno. Algunos están diseñados para tareas específicas, por ejemplo, recopilación y visualización de datos, otros son universales e incluyen todo tipo de interfaces para todas las ocasiones. También se observan diferencias significativas en la configuración, tipos de fijación, conectores, factor de forma, etc. ¿Por qué desarrollar su dispositivo, pregunta, si puede elegir uno existente? Hace unos años, al encender la placa del IMX6Q - "BD-SL-i.MX6" de Freescale (lea NXP), surgió la idea de crear un módulo que ...
1. Cubrimos nuestras necesidades de placas de prototipos en IMX6. En ese momento, ya había varios proyectos implementados en este chip. Vale la pena explicar que al tener su propio módulo y desarrollar una placa base para un proyecto específico, puede probar rápidamente todos los periféricos, "elevar" el software, realizar cambios y transferir todo a las 8 capas necesarias para IMX6Q (la línea de estos chips no se limita a quad además de QUAD, también hay DUAL y SOLO, todos "pin a pin", lo que brinda una amplia oportunidad para implementar dispositivos con diferentes funcionalidades basadas en una "placa"). Permítame recordarle que la placa base puede ser de 4 capas o incluso de 2 capas, lo que acelera significativamente el tiempo de producción y reduce los costos.
2. Use el módulo como componente y brinde al cliente una opción: transfiera todo a una placa o úselo como está. Para ser justos, diré que no se considera el uso de módulos comprados para proyectos comerciales. En primer lugar, no puede encontrar un módulo que se adapte a todos (o hay muchos conectores, o pocos, o no hay agujeros de montaje, o la placa es grande, etc., en general, aquellos que buscaron sus necesidades lo entenderán), pero, en -segundo, su propio desarrollo es siempre más confiable. Puedes arrojarme tomates, pero solo confío en mí mismo.
3. Brinde al cliente la oportunidad de desarrollar su dispositivo basado en nuestro módulo. Sí, esto también resultó ser muy solicitado, pero no lo que se describió anteriormente (sobre la complejidad de seleccionar un módulo), sino que el hecho de que se trata de un desarrollo y producción rusos juega un papel importante. Aparentemente, la palabra "sustitución de importaciones" ha influido enormemente en nuestra industria y desarrollo, incluso.
Inicio IMX6Brevemente sobre lo principal, pero esta no será la esencia del artículo. Se utiliza nuestro primer módulo en IMX6Q y ahora está en desarrollo, tiene unas dimensiones de 50x75 mm. SO Linux y Android.
Fig. 1. Módulo en IMX6QNo enumeraré sus interfaces, ventajas y desventajas. Muestra casi todo lo que tiene un chip, y esto es suficiente para la implementación de muchos proyectos. A bordo está eMMC, conectores de interfaz, física y potencia de gigabit Ethernet. Una breve digresión ha terminado, ahora el punto.
¿A qué hemos llegado?La línea IMX6 no termina en los chips anteriores. IMX7, IMX8 en varias versiones ya han aparecido, pero estamos interesados en la versión más débil en dimensiones más pequeñas, funcionalidad cortada: estos son IMX6UL / IMX6ULL (también son "pin-to-pin" entre ellos). Llamamos la atención no solo así, sino porque aparecieron varias tareas relacionadas con la voz a través de Ethernet a través de SIP, así como la necesidad de desarrollar dispositivos en pequeñas dimensiones y sin la posibilidad de disipación de calor. IMX6UL tiene a bordo un kit bastante bueno para conectar periféricos:
Fig. 2. Diagrama de bloques IMX6ULQuien tenga una imagen pequeña puede ir al sitio web de NXP y ver los detalles de la línea de estos chips. Una de las ventajas de usar este procesador es su cuerpo. El paso de sus contactos es de 0.8 mm, y la almohadilla de contacto es de 0.356 mm (BGA), lo que significa que la placa se puede realizar en 4 capas (que, en principio, se realizó en la placa de referencia NXP para este chip). Utilizamos una versión de 14x14 mm (también hay 9x9 mm en incrementos de 0,5 mm).
¿Por qué es NXP, no Broadcom, ST, Ali o algún otro procesador gigante? De hecho, el punto es la disponibilidad de chips, soporte técnico y multiplataforma. Habiendo creado el módulo en IMX6Q, transportamos el software de manera relativamente fácil a IMX6UL / IMX6ULL. Los chips son pin a pin, por lo tanto, después de depurar el software en UL, puede cambiar a un ULL más barato. El segundo es el bajo consumo de energía y, como resultado, el bajo calor. Intencionalmente no proporciono los parámetros técnicos de los procesadores, por lo que hay mucha "agua" en el artículo, y esta información está disponible públicamente.
Uno de los proyectos interesantes implementados en el IMX6UL es un dispositivo de voz sobre Ethernet, un teléfono SIP, pero esencialmente un intercomunicador.
Fig. 3. Teléfono SIP.Sobre el principalEl corazón del proyecto es IMX6, en el cual el sistema operativo gira con el cliente SIP instalado. Antes de arrancar Linux, u-boot (cargador de arranque) se carga con un SPI Flash separado. La separación del gestor de arranque y el firmware principal no se realizó por accidente (a diferencia de la referencia), sino para hacer que el dispositivo sea resistente con un apagado inesperado. Si comienzas a hablar sobre ubifs y la sección de solo lectura en NAND, entonces estoy muy molesto. La práctica ha demostrado que incluso los mejores chips NAND tienen derecho a morir, y lo hacen de forma inesperada. Hay una interfaz RMII para la comunicación con el mundo exterior, y un conmutador Ethernet LAN9303 - 10/100 (este IMX no admite gigabit) está instalado en la placa y se necesitaban dos puertos. IMX6UL tiene dos puertos RMII con enrutamiento, pero se necesitaban exactamente dos interfaces independientes en forma de concentrador.
NAND se usa para almacenar firmware y archivos (Nos detuvimos en Samsung K9F1G08U0D en el paquete TSOP48. No comenzamos a escupir y no cerramos el artículo, ya que la memoria en este factor de forma es muy barata en lotes pequeños en comparación con BGA63). Un chip de memoria DDR3 es K4B4G1646D, códec ADAU1761. El códec merece una mirada más cercana. Antes de esto, SGTL5000 se utilizó en varios proyectos, pero con ADAU, la vida se ha vuelto mucho más divertida. Puede escribir un artículo separado sobre él, pero trataré de resumir su esencia en mi proyecto. El microcircuito no solo tiene 6 entradas analógicas, 7 salidas y, por supuesto, una interfaz I2S, sino que los dispositivos analógicos, junto con el códec, también lanzaron un software especializado para escribir firmware para el DSP incorporado. Quien esté interesado y no sepa, puede leer qué es DSP y con qué se come.
Fig. 4. Diagrama de bloques ADAU1761Al escribir software, en primer lugar, los programadores jugaron lo suficiente con todo tipo de funciones de distorsión, cancelación de eco, filtrado y mezcla de sonido. Es muy impresionante de oído, te lo diré. La interfaz es muy amigable, muchas configuraciones, filtros, conversiones, la capacidad de redirigir el sonido, etc.
Fig. 5. SigmaStudio por dispositivos analógicosEl proyecto involucra 4 canales (entrada / salida), ya que hay altavoces estéreo y micrófonos incorporados, así como conectores para conectar los externos.
Una placa periférica está conectada a la placa (en la Fig. 3), solo que con un códec, un escáner de teclado matricial, etc., no escribió sobre ella.
Uno de los conectores RJ45 se usa para la fuente de alimentación PoE; el chip Si3402 de Silicon Laboratories se usa como un dispositivo alimentado (PD). El circuito de conmutación se utilizó casi de forma estándar sin aislamiento galvánico con una salida de 12 V (el voltaje se ajusta mediante resistencias). Un poco distraído por cualquier persona interesada en el tema de PoE + con aislamiento galvánico, hay un muy buen chip de TI - LM5072MH-80. Se ha demostrado en varios proyectos.
Las fuentes de alimentación secundarias se implementan en DC / DC ST1S10PHR: no son las más baratas, no las de alta frecuencia, pero funcionan perfectamente y son accesibles en automóvil. En general, tenemos un zoológico completo de DC / DC y LDO para diferentes necesidades, pero cuando la calidad es importante, seleccionamos fabricantes conocidos.
La placa también tiene una tarjeta USBHOST, USBOTG y SD. A través de USB y SD, puede rodar / actualizar el firmware. También hay una actualización a través de la red, pero esto ya se aplica al software y la interfaz web.
Un poco sobre el rastreoPuede publicar interminablemente gerberas y pedazos de tarjetas de rastreo, pero no haré esto, pero solo tocaré los puntos principales y críticos. El orden de las capas es estándar:
- TOP - señal con polígono terrestre
- GND - polígonos molidos
- POTENCIA - sitios de prueba de alimentos
- ABAJO - señal con polígono terrestre
1. DDR3. Con un diseño de memoria independiente, debe tener cuidado, por lo que no hice esto, sino que tomé la referencia como ejemplo. Solo se usan dos capas (superior y bot) para el rastreo, las otras dos capas no están involucradas. Vias 0.203 / 0.406mm, grosor de línea 0.114mm. Solo cambié las líneas de tierra debajo del procesador y las hice un poco más gruesas, hasta 0.3 mm. La capa GND resultó ser un buen terreno en el que tuve que dibujar una interfaz RGB, que no es del todo correcta, pero simplemente no vi otra opción con mi número de interfaces en la placa.
Fig. 6. rastro de memoria
Fig. 7. Rellenos sanitarios y terrenosAl cablear la placa, debe dedicar más tiempo a la energía y a los vertederos. Es mucho más fácil desarrollar placas de 4 capas con el mismo esquema, hay una gran cantidad de trazas de conductores de señal y siempre quedan dos capas para una buena fuente de alimentación, que también se puede usar de manera competente para líneas de datos no críticas. El rango de potencia principal que casi siempre hago es 3.3V, el resto dentro de él. Todos los vertederos de alto voltaje están hechos con grandes espacios para eliminar la interferencia.
2. PoE, como escribí anteriormente, se implementa en el chip Si3402. Se cría estrictamente en cuatro capas del tablero con grandes espacios de los polígonos principales. Creo que comenzará en dos capas, pero nadie garantiza la calidad. Al diseñar unidades de suministro de energía, generalmente sigo la placa de evaluación para microcircuitos, y cuando pruebo, verifico las formas de onda de las señales dadas en la documentación. Si no puede hacerlo en la referencia, debido al tamaño o la configuración de la placa, debe guiarse solo por la experiencia y el sentido común.
En la capa de potencia para PoE, se selecciona un rango de 12V. Las capas restantes se utilizan para señales y polígonos de tierra PoE - GND_EXT. Todos los polígonos están estrictamente uno debajo del otro sin superponer polígonos adyacentes en otras capas. La distancia entre los polígonos PoE y los principales es de aproximadamente 1 mm. Cuando desarrollo PoE con aislamiento galvánico, generalmente también hago un corte con una fresa (en la fabricación de placas de circuito) debajo de un transformador y optoacopladores de retroalimentación.
Fig. 9. PoE. TOP3. Periféricos. Tuve que hacer el cableado de la placa en el chip M3616 de ALi Corporation, tiene solo 292 bolas, pero mire qué tan bien está pensado el procesador en términos de facilitar el rastreo de la placa. Cuán claramente salen todas las interfaces en el orden correcto. Atención, la placa se cría en dos capas, y la RAM está completamente en una.
Fig. 10. Rellenos sanitarios y terrenosEn IMX6UL / IMX6ULL, tuve que jugar con las interfaces. En la fig. 6. Puede ver cuán apretados van los conductores y no hay suficiente espacio para las vías, y debe retirarse de la quinta fila de bolas. Lo principal aquí es observar la impedancia en pares diferenciales (por ejemplo, USB) y no ir demasiado lejos con las vías, ya que esto dañará la tierra y los rangos de potencia.
Y aun así el móduloLo que no hago, pero aún así obtengo un módulo. Cuando el número de proyectos en IMX6UL / IMX6ULL superó las expectativas, y se escribió la funcionalidad principal, se decidió cambiar a un sistema modular, como la última vez, e incluso hacerlo con elegancia.
Fig. 11. Módulo mx6ull-m02c en IMX6UL / IMX6ULL¿Por qué elegante?
- El módulo está hecho en el factor de forma "a bordo" y no tiene conectores de interfaz, lo que permite utilizarlo como un "microcircuito".
- En el bosque, solo tiene todo lo que necesita: un chip, DDR3, NAND, SPI, física de Ethernet, un alimentador de 1.35 V (que le permite suministrar solo un voltaje de 3.3 V al módulo), cuarzo y pasivo.
- Instalación unidireccional. No todas las soluciones modulares pueden presumir de la ausencia de componentes en la parte inferior. Esto ofrece varias ventajas a la vez: eliminación de calor en la placa base, la posibilidad de rastrear debajo del módulo (ya que no hay recortes en la placa para componentes sobresalientes) y la producción más barata de los módulos en sí (menos la plantilla, el volteo de la tarjeta durante la instalación, etc.).
- Almohadillas alrededor del tablero. No hay puntos de señal de soldadura debajo del módulo.
- Las dimensiones del módulo son solo 45x36mm.
- De alguna manera, le contaré sobre uno de los dispositivos desarrollados en este módulo, pero por ahora una foto de la placa base para depurar y escribir software.
Fig. 12. Módulo IMX6UL / IMX6ULL en la placaLa placa es de dos capas y tiene conectores de interfaz necesarios para el inicio y la operación. En dichos tableros, realizamos pruebas internas de enfriamiento y calefacción durante la operación, verificamos la estabilidad del trabajo bajo carga y depuramos el software.
Conclusión¿Qué da exactamente un sistema modular al desarrollar dispositivos?
- Con el módulo existente, el tiempo de desarrollo de una placa con interfaces externas lleva solo unos días (siempre que todas las interfaces sean comprensibles y se utilicen previamente en el desarrollo).
- Los diseños de las placas de circuito impreso son mucho más baratos, ya que en la mayoría de los casos puede hacer una placa de dos capas o de 4 capas con una clase más baja.
- La velocidad de obtención de la placa base es mucho mayor, ya que no necesita soldar los componentes relacionados con el módulo.
- La transición del diseño a la versión de lanzamiento es más rápida e indolora (si todavía decide hacer una solución de placa única).
Por supuesto, todos los proyectos son diferentes y, a veces, la circuitería periférica es mucho más complicada que el propio procesador, pero la depuración de módulos individuales siempre es más fácil, especialmente si el desarrollo de un proyecto lo llevan a cabo varios ingenieros.
Dentro de un artículo, es muy difícil escribir lo que quieras. La descripción de incluso un proyecto toma muchas letras, pero quiero tocar varios proyectos, compartir mis impresiones sobre varios periféricos, sobre microcircuitos usados, características de rastreo de interfaz, etc. Pero lo principal es detenerse a tiempo.
PD: enlace fuente de
github.com/trotill/adk_yoctoGracias por su atencion!