Buen dia amigos!

En este artículo, no habrá Arduino, Raspberry, Olimex, la transferencia del interior de la tableta en su caja "personalizada" hecha de cartón y adhesivo, etc. Solo desarrollo duro, solo hardcore ...
No sé si he elegido un título demasiado grande para el artículo, pero todo parece ser honesto: el desarrollo ruso, el factor de forma de la tableta, aunque parece un ladrillo de "sonrisa sonriente".
Para mis lectores, decidí bosquejar el bosquejo del artículo para que pueda navegarlo fácilmente y omitir puntos innecesarios, pero si va a escribir un comentario, por favor lea todo, "para que no sea insoportablemente doloroso por los años pasados sin rumbo ... (c)".
- Introduccion Idea.
- Respuestas a preguntas.
- Lo que quería llegar a la salida.
- Descripción del hierro.
- Perspectivas Si será necesario
- Conclusiones Resumiendo
1. Introducción. Idea.
Como escribí anteriormente en mis artículos, estoy muy interesado en el tema de enviar una imagen a una matriz y todo lo que está relacionado con ella. Ahora no sorprenderá a nadie con escaladores matriciales, en forma de pequeños tableros por $ 10- $ 15, desde los cuales puede hacer / reparar fácilmente un monitor o televisor, pero ya he jugado lo suficiente con ellos y quiero algo nuevo.
La idea de hacer algo similar a una tableta nació hace mucho tiempo, y la ideé constantemente, pensando en cómo implementarla con menos esfuerzo y costo con mayores ganancias. Por supuesto, no necesito la tableta en sí, se puede comprar por dinero moderado si es necesario, o como último recurso para hacer una caja de madera contrachapada para Raspberry, pero ¿por qué necesito Raspberry (e incluso puedes comprar una caja lista para ella)? Fue interesante implementarlo en su hardware con pleno desarrollo, pero necesita dinero y, sobre todo, tiempo que siempre falta (¿o en su día más de 24 horas?).
El ímpetu para la implementación fue inmediatamente dos eventos, el primero: de repente aparecieron varias matrices innecesarias de 7 a 10 pulgadas, lo que me atrajo. Algunos de ellos son RGB, pero también entre ellos estaba la matriz LVDS y un controlador de retroiluminación incorporado y un toque capacitivo USB. En segundo lugar, había una débil necesidad de una referencia compacta para el software de depuración para IMX6, en el que habría casi todo y un poco más. Por supuesto, fue más fácil tirar las matrices y tomar una referencia ya preparada del estante, pero no es tan simple, usamos en nuestros diseños un cierto conjunto de periféricos (códecs, físicos, controladores de carga, etc.) que necesitan ser depurados para una nueva funcionalidad, y también quería experimentar algo nuevo (y las matrices son muy atractivas). ¿Merece la pena pasar un mes de tus tardes libres, preguntas? ¡Por supuesto que vale la pena!
Con estos pensamientos y una caja de matrices, comencé el desarrollo. Sabía que podía asignar muy poco tiempo y al mismo tiempo no estaba claro si llegaría a la segunda iteración.
Fig.1. Foto de la "tableta" en el lateral de la placa de circuito.2. Respuestas a preguntas
Para que no haya preguntas innecesarias, intentaré prever algunas e inmediatamente las responderé.
2.1 ¿No es más fácil comprar una tableta?
- Más simple, pero menos interesante.
2.2 ¿Cuánto cuesta y cuánto costará para una fiesta?
- Cuesta mucho, pero nuestra empresa se hizo cargo de todos los costos para la realización de mi pequeño capricho. Ninguna fiesta está planeada, hecha, por así decirlo, para uno mismo.
2.3 ¿Dónde está el recinto? ¿Por qué no lo imprimieron en la impresora, no lo vieron en madera contrachapada, no lo cegaron en plastilina (y así sucesivamente)?
- Ahora he reunido todo, y, en principio, puedes llegar a algo sobre el caso, pero hasta ahora no hay tiempo ni ganas. Sin embargo, si se trata de la segunda iteración del tablero, cuando será posible reducir el grosor, entonces se planea hacer una caja con una delgada lámina de metal pulido desde la parte inferior para eliminar el calor.
2.4 ¿Por qué no tomaron una pantalla más pequeña / más grande / más delgada?
- La pantalla salió gratis, y como saben, un caballo de regalo ...
2.5 ¿Por qué pusiste tal códec / alimentador / batería / física, etc.
- El conjunto de chips está limitado a nuestro almacén y quería comprar componentes lo menos posible, así que intenté usar lo que es.
Esta lista puede continuar casi infinitamente y puede ampliarla en los comentarios, pero terminaré aquí.
3. Lo que quería llegar a la salida.
TK solo estaba en la cabeza, y se expandió a medida que se agregaban nuevas hojas del esquema en el altium. Por supuesto, quería exprimir todo lo que fuera posible del procesador. En la primera etapa, y posiblemente en la última, se decidió hacer todo en nuestro módulo, ya que su placa es de 8 capas, y para la placa base no necesitaré más de 4.
Interfaces:
3.1 LVDS: un canal para una matriz de 10 pulgadas + táctil capacitiva.
3.2 Ethernet - 1000/100/10 (para ser).
3.3 Audio - códec con varios canales para entrada y salida + altavoces y micrófono incorporados.
3.4 HDMI: un conector estándar para conectar un monitor.
3.5 SATA: conecta una unidad SSD externa.
3.6 Cámara: una, preferiblemente dos + flash.
3.7 E-Ink: una pequeña pantalla para mostrar notificaciones, hora, batería, redes, etc.
3.8 GPS: cualquier módulo para rastrear la ubicación.
3.9 CAN - diferencial, para conectar dispositivos externos.
3.10 Tarjeta SD: depuración y descarga de software. Almacenamiento de datos.
3.11 WiFi / BT / 4G - en USB dentro de la carcasa (a continuación explicaré por qué).
3.12 USB: al menos 5 piezas + consola OTG +.
3.13 Acelerómetro: para voltear la pantalla.
3.14 RTC: un chip separado para almacenar el tiempo cuando el dispositivo está completamente desenergizado.
3.15 NFC es un lector para jugar.
3.16 Botones de control: encendido / apagado / volumen / reinicio.
3.17 Batería - 3.7V, 4-6A.
3.18 Potencia 5-18V.
3.19 Sistema operativo Linux.
Eso es todo lo que quería. A continuación explicaré algunos puntos conflictivos de por qué esto es así.
4. Descripción del hierro.
Es justo decir por qué lo mismo en el módulo, y no inmediatamente en la placa de 8 capas. Es más correcto transferir todo a una placa solo después de depurar toda la periferia, si es que lo hace. Una iteración de la placa (4-6 piezas) en ocho capas (60 mm X 40 mm) cuesta alrededor de 50 tr + componentes; esto es bastante decente, por lo que es más correcto en el diseño. Los prototipos en el módulo son de 4 núcleos, cada uno de ellos es de 1 GHz.
Fig.2. Elementos del cuerpo de impresiónLo primero que pensé mucho fueron las interfaces inalámbricas. Debería haber varios, y deberían estar en el tablero. Con el GPS, todo se decidió por sí mismo, he usado repetidamente el módulo SIM33 con una antena incorporada, funciona bien, aunque no es barato, tiene salida UART y ya dibujé una huella para él).
Wi-Fi / BT también podría implementarse como un módulo en el tablero, ya que hay muchos de ellos, pero por ahora posponemos este problema. Los módems 4G vienen en varios factores de forma y módulos en el conector y en la placa para soldadura y USB. El software recoge a Maxim (nuestro programador), que todavía es un entusiasta, y sugirió instalar varios USB en la placa para conectar dispositivos Wi-Fi / BT (que usamos repetidamente), y también tratar de elevar un módem USB 4G, por ejemplo, Yota o algo así. como (que pasa) En este caso, también tenemos llamadas. Entonces se decidió hacer.
Dentro de la placa hay 3 USB, a) Wi-Fi / BT, b) módem 4G, c) un módulo para un teclado / mouse inalámbrico. IMX6 solo tiene dos USB a bordo, mientras que uno de ellos es OTG y puede ser necesario para la depuración, por lo tanto, se muestra en el panel posterior en forma de un conector miniUSB. El segundo USB va al concentrador TUSB2077 de TI, que tiene 7 puertos en la salida, para lo cual Maxim ya levantó el controlador anteriormente, así que lo usé. Hay 3 puertos USB en el panel posterior para conectar dispositivos externos. Otro microUSB en el panel posterior para la salida del chip uart de la consola para la depuración (a través de CP2102 en la placa principal).
La pantalla E-Ink eligió un tricolor (gris / negro / rojo), uno de los más comunes para Arduino. Todavía no se ha comprado, ya que aún no está a la altura. Me pareció bastante interesante decidir no encender la pantalla, sino mostrar cierta información en una pantalla pequeña y, en ocasiones, actualizarla. También quiero jugar con E-Ink.
Fig.3. Exhibición de fotos E-Ink.Nuestro módulo IMX6 tiene un conector (hay tres voltajes de alimentación, I2C, reinicio, PWM, etc.) para conectar la cámara OV5640-M4320, incluso dos, a la popa de MIPI_CSI. Entonces, una cámara funcionó (directamente al conector del módulo), pero con dos preguntas. El bucle de una cámara de este tipo suele ser de 3 cm a 12 cm. En el tablero, enrute MIPI_CSI a los lugares correctos en el tablero, pero aún no lo he verificado. Algo me dice que esta interfaz no funcionará a 15-20 cm, o se retrasará.
Fig.4. Cámara fotográfica OV5640-M4320.Estas son cámaras de 5 megapíxeles con enfoque automático incorporado.
Está previsto hacer un flash para la cámara en la parte posterior del dispositivo, para esto hice una bufanda portátil (el orificio de esta bufanda es visible en la placa de circuito, la extendí directamente a la principal, para no ordenar por separado) en un bucle con un LED (MP-3030-1100- 56-95) y coloque el controlador ADP1653 en el flash de la placa principal. Nunca pensé que el flash necesita estar claramente sincronizado con el marco (aunque esto es lógico), este controlador puede hacerlo usando I2C, que probablemente no sea adecuado para la interrupción externa. Veamos cuando llegue el momento, cómo sucedió.
IMX6 tiene RTC incorporado, que no funcionó muy bien en términos de consumo de energía, o no vi algo, así que decidí instalar un chip PCF8523 externo, que tiene un controlador totalmente funcional para Linux. La función de sincronización de tiempo en sí no es particularmente interesante para mí, ya que se puede hacer a través de redes, pero es necesario despertarse en un evento. Puse este milagro de desarrollo en la mesilla de noche y espero que suene la alarma, al igual que el Nokia 3310 salió del estado apagado.
Cuando se aplica voltaje externo (el dispositivo está apagado), se energiza lo siguiente: el controlador de carga BQ25895, RTC y el supervisor STM6601, que controla la fuente de alimentación secundaria con solo tocar un botón o suavemente (si no queremos cortar la alimentación y apagar correctamente el sistema operativo y luego apagar la alimentación) ) Como resultado, la fuente de alimentación resultó ser un diseño bastante interesante, no he tenido tiempo de tomar medidas de consumo en diferentes modos, pero con el apagado del hardware de toda la periferia debería salir bastante bien. Como resultado, la "tableta" no tiene ese "modo de espera", el STM6601 y PCF8523 se alimentan directamente de la batería de Li-Ion (3.7V) + a la batería RTC 2016 o 2032 (soporte universal). Ahora está conectada una batería de 2.3 A (está a punto de llegar a 6 A), en el modo de pantalla del escritorio, la carga dura aproximadamente 30 minutos; esto es, por supuesto, muy pequeño, pero veamos qué sucede con una batería llena.
El acelerómetro LIS331 solo es necesario para el seguimiento de posición, para voltear la pantalla, así que puse lo que ya usé. Un buen chip con interfases e interfaces I2C / SPI.
Se suministró un conector SATA completo con el tipo "Quiero, por qué no)". Entiendo que las tabletas usan eMMC / NAND, pero dado que hay una interfaz, ¿por qué no usarla? Como en esta versión hay suficiente espacio para SSD 2.5 ”, déjelo estar.
Maxim insistió en instalar NFC. Todavía no sé qué hará con esta interfaz, pero ¿qué no puedes hacer por capricho de un programador? Es cierto que no me gustaría que intentara pagar en la tienda de comestibles, aplicando este dispositivo a un lector inalámbrico.
A veces se necesita CAN en nuestros diseños, así que instalé la física TJA1040T, ya tenemos un controlador para él, podemos trabajar con él, incluso lo conectamos a nuestros autos y miré las tablas. Cosa interesante
Códec ADAU1761 nuevamente, para sentir todas las delicias de trabajar con sonido. En primer lugar, fue él quien fue concebido (y no SGTL5000, que tampoco es nada) para depurar el firmware del DSP incorporado (SigmaStudio). Por lo tanto, en la pared posterior hay dos conectores para altavoces (a través de un amplificador), en el conector lateral para el micrófono interno, así como varias entradas / salidas (restantes) para conectores de 3,5 mm en el panel frontal.
La salida HDMI me pareció muy conveniente, y en un conector estándar. Antes de eso, puso microHDMI en desarrollo, pero me parece que esto tiene sentido solo cuando las dimensiones son limitadas.
Para que todo esto de alguna manera viva y no consuma 100500 amperios al mismo tiempo, puse el chip TCA6424 en la placa; este es un expansor GPIO, que en este caso sirve como un interruptor para los periféricos. SATA, la pantalla (su potencia y luz de fondo), sonido (códec y amplificador), acelerómetro, GPS y todo lo demás está conectado a la alimentación a través de interruptores de transistor TPS27081 es un interruptor de transistor dual que puede cortar la alimentación a 8V y hasta 3A. Por lo tanto, además de los modos de suspensión del software, puede desactivar las interfaces de hardware. El expansor está controlado por I2C, por lo que puede escribir un programa de pantalla que puede apagar todo individualmente.
Ahora, ¿por qué todo lo mismo Linux? Según Maxim, es mucho más fácil ejecutar todo en Android, pero como lo ha demostrado la práctica, tenemos más proyectos para Linux. Sí, lo más probable es que haya problemas, pero me parece que con Xubuntu (ahora está en el dispositivo) la "tableta" adquiere cierta originalidad y es más adecuada para nuestras tareas.
Fig.5. Placa de circuito.
Fig.6. Tablero con componentes instalados.
Fig.7. Primer lanzamiento5. Perspectivas. Si será necesario
En primer lugar, por supuesto, quiero reducir las dimensiones en grosor. Solo hay una forma de lograr esto: transferir el procesador a la placa y cambiar su geometría. El rechazo de SATA estará justificado, será más correcto poner eMMC en 64 / 128Gb (en este momento cuesta 8Gb). La batería no debe estar en el tablero, pero al lado, bueno, en general, todos conocemos la ubicación de los elementos dentro de las tabletas, todo ya ha sido inventado para nosotros. Ya escribí sobre el caso anterior, me gustaría una placa de enfriamiento, realmente no he pensado en cómo implementar los elementos restantes.
Fig.8. En el caso Entrada / salida de audio.
Fig.9. Dispositivo ensamblado.
Fig.10. Panel posterior6. Conclusiones. Resumiendo
Dado que el proyecto se está desarrollando (ahora software) en su tiempo libre del trabajo, no se ha logrado que todo se plantee. Maxim está aserrando algo y la "tableta" está cobrando vida gradualmente, pero el final aún no es visible.
En mi opinión, el dispositivo resultó ser bastante viable para las tareas descritas anteriormente. Instalé el reproductor VLC y ahora puedes ver la película en la pantalla pequeña)). Si, en esencia, mi idea se realizó casi por completo (la primera iteración), sin contar el caso. Al soldar el módulo en la placa, puede obtener un grosor total de no más de 23 mm; esto, por supuesto, es duro para la electrónica extranjera actual, pero para el prototipo es bastante aceptable.
PD: enlace a la fuente github.com/boundarydevices/linux-imx6/commits/boundary-imx_4.9.x_1.0.0_ga
¡Les deseo todo el éxito en sus esfuerzos!