Wie ich das russische Tablet entwickelt habe

Guten Tag, Freunde!



In diesem Artikel wird es keine Übertragung von Arduino, Himbeere, Olimex, Übertragung der Innenseiten des Tablets in seine "benutzerdefinierte" Hülle aus Pappe und Klebstoff usw. geben. Nur harte Entwicklung, nur Hardcore ...

Ich weiß nicht, ob ich einen Titel gewählt habe, der zu groß für den Artikel ist, aber alles scheint ehrlich zu sein: die russische Entwicklung, der Tablet-Formfaktor, obwohl er wie ein "Smiley-Lächeln" aussieht.

Für meine Leser habe ich beschlossen, die Gliederung des Artikels so zu skizzieren, dass Sie leicht darin navigieren und unnötige Punkte überspringen können. Wenn Sie jedoch einen Kommentar schreiben möchten, lesen Sie bitte alles, „damit es für die ziellos verbrachten Jahre nicht unerträglich schmerzhaft wird ... (c)“.

  1. Einführung Idee.
  2. Antworten auf Fragen.
  3. Was ich am Ausgang haben wollte.
  4. Beschreibung von Eisen.
  5. Perspektiven. Wenn es gebraucht wird.
  6. Schlussfolgerungen Zusammenfassen.

1. Einleitung. Idee.


Wie ich bereits in meinen Artikeln geschrieben habe, interessiert mich das Thema der Ausgabe eines Bildes in eine Matrix und alles, was damit verbunden ist, sehr. Jetzt werden Sie niemanden mit Matrix-Scalern in Form von kleinen Boards für 10 bis 15 US-Dollar überraschen, mit denen Sie problemlos einen Monitor oder Fernseher herstellen / reparieren können, aber ich habe bereits genug damit gespielt und möchte etwas Neues.

Die Idee, etwas Ähnliches wie ein Tablet herzustellen, wurde vor langer Zeit geboren, und ich habe es ständig ausgebrütet und darüber nachgedacht, wie ich es mit weniger Aufwand und Kosten mit größerem Gewinn implementieren kann. Natürlich brauche ich das Tablet selbst nicht, es kann bei Bedarf für mäßiges Geld gekauft werden oder als letztes Mittel, um eine Hülle aus Sperrholz für Himbeere herzustellen, aber warum brauche ich Himbeere (und Sie können sogar eine Hülle kaufen, die dafür bereit ist)? Es war interessant, mit vollständiger Entwicklung auf Ihrer Hardware zu implementieren, aber es braucht Geld und vor allem Zeit, die immer fehlt (oder an Ihrem Tag mehr als 24 Stunden?).

Der Anstoß für die Implementierung waren sofort zwei Ereignisse, das erste - plötzlich erschienen mehrere unnötige Matrizen von 7 bis 10 Zoll, was mich sehr anzog. Einige von ihnen sind RGB, aber auch die LVDS-Matrix und ein eingebauter Hintergrundbeleuchtungstreiber sowie ein kapazitiver USB-Touch. Zweitens bestand ein schwacher Bedarf an einer kompakten Referenz für das Debuggen von Software für IMX6, in der fast alles und ein wenig mehr enthalten sein würde. Natürlich war es einfacher, die Matrizen wegzuwerfen und eine vorgefertigte Referenz aus dem Regal zu nehmen, aber es ist nicht so einfach. Wir verwenden in unseren Designs eine Reihe von Peripheriegeräten (Codecs, Physiker, Laderegler usw.), die für neue Funktionen getestet werden müssen. und ich wollte auch etwas Neues erleben (und die Matrizen sind sehr attraktiv). Lohnt es sich, einen Monat Ihrer freien Abende zu verbringen? Natürlich lohnt es sich!

Mit diesen Gedanken und einer Schachtel Matrizen begann ich mit der Entwicklung. Ich wusste, dass ich sehr wenig Zeit einplanen konnte und gleichzeitig war nicht klar, ob es die zweite Iteration erreichen würde.


Abb. 1. Foto des "Tablets" auf der Seite der Leiterplatte.

2. Antworten auf Fragen


Damit es keine unnötigen Fragen gibt, werde ich versuchen, einige davon vorherzusehen und sie sofort zu beantworten.

2.1 Ist es nicht einfacher, ein Tablet zu kaufen?
- Einfacher, aber weniger interessant.
2.2 Wie viel kostet es und wie viel kostet es für eine Party?
- Es kostet viel, aber unser Unternehmen hat alle Kosten für die Verwirklichung meiner kleinen Laune auf sich genommen. Es ist sozusagen keine Party für sich selbst geplant.
2.3 Wo ist das Gehäuse? Warum haben sie es nicht auf dem Drucker gedruckt, nicht aus Sperrholz gesehen, nicht aus Plastilin geblendet (und so weiter)?
- Jetzt habe ich alles zusammengetragen, und im Prinzip können Sie sich etwas über den Fall einfallen lassen, aber bisher gibt es weder Zeit noch Verlangen. Wenn es dennoch zur zweiten Iteration der Platte kommt, bei der es möglich ist, die Dicke zu verringern, ist geplant, ein Gehäuse mit einem dünnen polierten Blech von unten herzustellen, um Wärme abzuleiten.
2.4 Warum haben sie kein kleineres / größeres / dünneres Display aufgenommen?
- Das Display wurde kostenlos und, wie Sie wissen, ein Geschenkpferd ...
2.5 Warum haben Sie einen solchen Codec / Feeder / Batterie / Physik usw. eingesetzt?
- Der Chipsatz ist auf unser Lager beschränkt und ich wollte so wenig wie möglich Komponenten kaufen, also habe ich versucht, das zu verwenden, was ist.

Diese Liste kann fast endlos fortgesetzt werden und Sie können sie in den Kommentaren erweitern, aber ich werde hier enden.

3. Was ich am Ausgang haben wollte.


TK befand sich nur im Kopf und wurde erweitert, als neue Blätter des Schemas im Altium hinzugefügt wurden. Natürlich wollte ich alles, was möglich war, aus dem Prozessor herauspressen. In der ersten und möglicherweise in der letzten Phase wurde beschlossen, alles auf unserem Modul zu tun, da das Board aus 8 Schichten besteht und ich für das Motherboard nicht mehr als 4 benötige.

Schnittstellen:

3.1 LVDS - ein Kanal für eine 10-Zoll-Matrix + kapazitive Berührung.
3.2 Ethernet - 1000/100/10 (zu sein).
3.3 Audio - Codec mit mehreren Kanälen für Ein- und Ausgang + eingebauten Lautsprechern und Mikrofon.
3.4 HDMI - ein Standardanschluss zum Anschließen eines Monitors.
3.5 SATA - Schließen Sie ein externes SSD-Laufwerk an.
3.6 Kamera - eins, vorzugsweise zwei + Blitz.
3.7 E-Ink - ein kleines Display zur Anzeige von Benachrichtigungen, Uhrzeit, Batterieleistung, Netzwerken usw.
3.8 GPS - ein beliebiges Modul zur Ortung.
3.9 CAN - Differential zum Anschluss externer Geräte.
3.10 SD-Karte - Debuggen und Herunterladen von Software. Datenspeicherung.
3.11 WiFi / BT / 4G - über USB im Gehäuse (im Folgenden werde ich erklären, warum dies so ist).
3.12 USB - mindestens 5 Stück + OTG + Konsole.
3.13 Beschleunigungsmesser - um den Bildschirm umzudrehen.
3.14 RTC - ein separater Chip zum Speichern der Zeit, wenn das Gerät vollständig stromlos ist.
3.15 NFC ist ein Leser zum Spielen.
3.16 Steuertasten - Ein / Aus / Lautstärke / Zurücksetzen.
3.17 Batterie - 3,7 V, 4-6A.
3.18 Stromversorgung 5-18V.
3.19 Linux OS.

Das ist alles was ich wollte. Im Folgenden werde ich einige widersprüchliche Punkte erläutern, warum dies so ist.

4. Beschreibung des Eisens


Es ist fair zu sagen, warum auf dem Modul und nicht sofort auf der 8-Lagen-Platine. Es ist richtiger, alles nur nach dem Debuggen der gesamten Peripherie auf eine Karte zu übertragen, wenn überhaupt. Eine Iteration der Platine (4-6 Stück) auf acht Schichten (60 mm x 40 mm) kostet etwa 50tr + Komponenten - dies ist ziemlich anständig, daher ist das Layout korrekter. Die Prots auf dem Modul sind 4-Kern, jeder von ihnen ist 1 GHz.


Abb. 2. Körperelemente drucken

Das erste, woran ich viel dachte, waren die drahtlosen Schnittstellen. Es sollte mehrere geben, und sie sollten auf dem Brett sein. Mit GPS wurde alles von selbst entschieden, ich habe das SIM33-Modul wiederholt mit einer eingebauten Antenne verwendet, es funktioniert gut, obwohl es nicht billig ist, es hat UART-Ausgang und ich habe bereits einen Footprint dafür gezeichnet).

Wi-Fi / BT könnte auch als Modul auf der Platine implementiert werden, da es viele davon gibt, aber wir verschieben dieses Problem vorerst. 4G-Modems gibt es in verschiedenen Formfaktoren und Modulen am Anschluss und auf der Platine zum Löten und USB. Die Software greift Maxim (unseren Programmierer) auf, der immer noch ein Enthusiast ist, und er schlug vor, mehrere USB-Sticks auf der Platine zu installieren, um Wi-Fi / BT-Sticks (die wir wiederholt verwendet haben) zu stecken, und auch zu versuchen, ein 4G-USB-Modem zu bauen, zum Beispiel Yota oder so wie (was passiert). In diesem Fall haben wir auch Anrufe. Also wurde beschlossen, dies zu tun.

Auf der Platine befinden sich 3 USB-Geräte, a) Wi-Fi / BT, b) 4G-Modem, c) ein Modul für eine drahtlose Tastatur / Maus. IMX6 verfügt nur über zwei USB-Anschlüsse, von denen einer OTG ist und möglicherweise zum Debuggen benötigt wird. Daher wird er auf der Rückseite in Form eines Mini-USB-Anschlusses angezeigt. Der zweite USB-Anschluss geht an den TUSB2077-Hub von TI, der über 7 Ports am Ausgang verfügt, für den Maxim den Treiber bereits früher angehoben hat, also habe ich ihn verwendet. Auf der Rückseite befinden sich 3 USB-Anschlüsse zum Anschließen externer Geräte. Ein weiterer Micro-USB auf der Rückseite zur Ausgabe des Konsolen-Uart-Chips zum Debuggen (über CP2102 auf der Hauptplatine).

Das E-Ink-Display wählte eine Dreifarbe (grau / schwarz / rot), eine der häufigsten für Arduino. Es wurde noch nicht gekauft, da es noch nicht so weit ist. Ich fand es ziemlich interessant, mich dafür zu entscheiden, den Bildschirm nicht einzuschalten, sondern einige Informationen auf einem kleinen Display anzuzeigen und gelegentlich zu aktualisieren. Ich möchte auch wirklich mit E-Ink herumspielen.


Abb. 3. Fotoanzeige E-Ink.

Unser IMX6-Modul verfügt über einen Anschluss (es gibt drei Netzspannungen, I2C, Reset, PWM usw.), über den die OV5640-M4320-Kamera, auch zwei, an das Heck von MIPI_CSI angeschlossen werden kann. Also funktionierte eine Kamera (direkt zum Modulanschluss), aber mit zwei Fragen. Die Schleife einer solchen Kamera beträgt normalerweise 3 cm bis 12 cm. Auf dem Board habe ich MIPI_CSI an die richtigen Stellen auf dem Board geleitet, es aber noch nicht überprüft. Etwas sagt mir, dass diese Schnittstelle bei 15-20 cm nicht funktioniert oder verzögert.


Abb. 4. Fotokamera OV5640-M4320.

Dies sind 5-Megapixel-Kameras mit integriertem Autofokus.

Es ist geplant, einen Blitz für die Kamera auf der Rückseite des Geräts zu machen. Dazu habe ich einen tragbaren Schal (das Loch von diesem Schal ist auf der Leiterplatte sichtbar, ich habe ihn direkt auf den Hauptschal verteilt, um nicht separat zu bestellen) auf einer Schleife mit einer LED (MP-3030-1100-) hergestellt. 56-95) und setzen Sie den ADP1653-Treiber auf den Hauptplatinenblitz. Ich hätte nie gedacht, dass der Blitz ganz klar mit dem Frame synchronisiert werden muss (obwohl dies logisch ist). Dieser Treiber kann dies mit I2C tun, was höchstwahrscheinlich nicht für externe Unterbrechungen geeignet ist. Mal sehen, wann es soweit ist, wie es passiert ist.

IMX6 verfügt über eine integrierte RTC, die hinsichtlich des Stromverbrauchs keine sehr gute Leistung erbrachte, oder ich habe etwas nicht gesehen. Daher habe ich beschlossen, einen externen PCF8523-Chip zu installieren, der über einen voll funktionsfähigen Treiber für Linux verfügt. Die Zeitsynchronisationsfunktion selbst ist für mich nicht besonders interessant, da sie über Netzwerke erfolgen kann, aber das Aufwachen bei einem Ereignis erforderlich ist. Ich lege dieses Entwicklungswunder auf den Nachttisch und warte, bis der Alarm ausgelöst wird, genau wie das Nokia 3310 aus dem ausgeschalteten Zustand gestiegen ist.

Wenn eine externe Spannung angelegt wird (das Gerät ist ausgeschaltet), werden folgende Geräte mit Strom versorgt: der Laderegler BQ25895, RTC und der Supervisor STM6601, der die sekundäre Stromversorgung per Knopfdruck oder leise steuert (wenn wir die Stromversorgung nicht abschalten und das Betriebssystem nicht ordnungsgemäß herunterfahren und dann die Stromversorgung ausschalten möchten ) Infolgedessen stellte sich heraus, dass das Netzteil ein ziemlich interessantes Design war. Ich hatte keine Zeit, Verbrauchsmessungen in verschiedenen Modi durchzuführen, aber mit dem Herunterfahren der Hardware der gesamten Peripherie sollte es ziemlich gut ausgehen. Infolgedessen verfügt das „Tablet“ nicht über einen solchen „Standby“. Der STM6601 und der PCF8523 werden direkt vom Li-Ion-Akku (3,7 V) + zum RTC-Akku 2016 oder 2032 (Universalhalter) gespeist. Eine 2,3-A-Batterie ist jetzt angeschlossen (sie erreicht bald 6A). Im Anzeigemodus des Desktops dauert der Ladevorgang etwa 30 Minuten - dies ist natürlich sehr gering, aber lassen Sie uns sehen, was mit einer vollen Batterie passiert.

Der Beschleunigungsmesser LIS331 wird nur zur Positionsverfolgung benötigt, um das Display umzudrehen. Ein guter Chip mit I2C / SPI-Schnittstellen und Interrapts.

Ein vollwertiger SATA-Anschluss wurde mit dem Typ „Ich möchte, warum nicht)“ geliefert. Ich verstehe, dass Tablets eMMC / NAND verwenden, aber da es eine Schnittstelle gibt, warum nicht? Da in dieser Version genügend Platz für SSD 2.5 ”vorhanden ist - lass es sein.

Maxim bestand darauf, NFC zu installieren. Ich weiß immer noch nicht, was er mit dieser Oberfläche machen wird, aber was können Sie nicht für die Launen eines Programmierers tun? Es stimmt, ich möchte nicht, dass er versucht, im Supermarkt zu bezahlen und dieses Gerät auf einen drahtlosen Leser anwendet.

CAN wird manchmal in unseren Designs benötigt, deshalb habe ich die TJA1040T-Physik installiert, wir haben bereits einen Treiber dafür, wir können damit arbeiten, haben es sogar mit unseren Autos verbunden und haben uns die Tische angesehen. Interessante Sache.

Codec ADAU1761 erneut, um alle Freuden der Arbeit mit Sound zu spüren. Zuallererst war er es, der für das Debuggen der Firmware für den eingebauten DSP (SigmaStudio) konzipiert wurde (und nicht SGTL5000, was auch nichts ist). Daher befinden sich an der Rückwand zwei Anschlüsse für Lautsprecher (über einen Verstärker), am seitlichen Anschluss für das interne Mikrofon sowie mehrere (verbleibende) Ein- / Ausgänge für 3,5-mm-Buchsen an der Vorderseite.

Der HDMI-Ausgang schien mir sehr praktisch und an einem Standardanschluss. Zuvor hat er microHDMI in die Entwicklung eingebracht, aber es scheint mir, dass dies nur dann sinnvoll ist, wenn die Abmessungen begrenzt sind.

Damit das alles irgendwie lebt und nicht 100500 Ampere gleichzeitig verbraucht, habe ich den TCA6424-Chip auf die Platine gelegt - dies ist ein GPIO-Expander, der in diesem Fall als Schalter für die Peripheriegeräte dient. SATA, das Display (Leistung und Hintergrundbeleuchtung), Sound (Codec und Verstärker), Beschleunigungsmesser, GPS und alles andere sind über Transistorschalter mit der Stromversorgung verbunden. TPS27081 ist ein Doppeltransistorschalter, der die Stromversorgung auf 8 V und bis zu 3 A reduzieren kann. Zusätzlich zu allen Software-Ruhemodi können Sie Schnittstellen durch Hardware deaktivieren. Der Expander wird von I2C gesteuert, sodass Sie ein Bildschirmprogramm schreiben können, mit dem Sie alles einzeln ausschalten können.

Nun, warum trotzdem Linux. Laut Maxim ist es viel einfacher, alles unter Android auszuführen, aber wie die Praxis gezeigt hat, haben wir mehr Projekte für Linux. Ja, es wird höchstwahrscheinlich viel Aufhebens geben, aber es scheint mir, dass das „Tablet“ mit Xubuntu (es befindet sich jetzt auf dem Gerät) etwas Originalität erlangt und besser für unsere Aufgaben geeignet ist.


Abb. 5. Leiterplatte.


Abb. 6. Platine mit installierten Komponenten.


Abb. 7. Erster Start.

5. Perspektiven. Wenn es gebraucht wird.


Zunächst möchte ich natürlich die Abmessungen in der Dicke reduzieren. Es gibt nur einen Weg, dies zu erreichen: den Prozessor auf die Platine zu übertragen und seine Geometrie zu ändern. Die Ablehnung von SATA ist gerechtfertigt, es ist korrekter, eMMC auf 64 / 128Gb zu setzen (im Moment kostet es 8Gb). Der Akku sollte sich nicht auf der Platine befinden, aber daneben kennen wir im Allgemeinen alle die Position der Elemente in den Tablets. Alles wurde bereits für uns erfunden. Ich habe bereits über den obigen Fall geschrieben. Ich hätte gerne eine Kühlplatte. Ich habe nicht wirklich darüber nachgedacht, wie die verbleibenden Elemente implementiert werden sollen.


Abb. 8. In dem Fall. Audioeingang / -ausgang.


Abb. 9. Zusammengebautes Gerät.


Abb. 10. Rückseite

6. Schlussfolgerungen. Zusammenfassen.


Da das Projekt (jetzt Software) in seiner Freizeit von der Arbeit entwickelt wird, wurde nicht alles verwaltet, um angehoben zu werden. Maxim sägt etwas und die „Tafel“ wird allmählich lebendig, aber das Finale ist noch nicht sichtbar.

Meiner Meinung nach hat sich das Gerät für die oben beschriebenen Aufgaben als durchaus brauchbar erwiesen. Ich habe den VLC-Player installiert und jetzt können Sie den Film auf dem kleinen Bildschirm sehen)). Wenn im Wesentlichen meine Idee fast vollständig verwirklicht wurde (die erste Iteration), ohne den Fall zu zählen. Durch Löten des Moduls auf der Platine erhalten Sie eine Gesamtdicke von nicht mehr als 23 mm - dies ist natürlich hart für die derzeitige Fremdelektronik, aber für den Prototyp ist es durchaus akzeptabel.

PS: Link zur Quelle github.com/boundarydevices/linux-imx6/commits/boundary-imx_4.9.x_1.0.0_ga

Ich wünsche Ihnen allen viel Erfolg bei Ihren Bemühungen!

Source: https://habr.com/ru/post/de423279/


All Articles