
Guten Tag!
Achtung, viel Text und Fotos. Auf dem Markt finden Sie viele Variationen von Single-Board-PCs mit Abschirmungen oder All-in-One-Lösungen. Einige sind auf bestimmte Aufgaben zugeschnitten, z. B. Datenerfassung und -anzeige, andere sind universell und enthalten alle Arten von Schnittstellen für alle Gelegenheiten. Signifikante Unterschiede werden auch in der Konfiguration, den Befestigungsarten, den Verbindern, dem Formfaktor usw. beobachtet. Warum Ihr Gerät entwickeln, fragen Sie, wenn Sie ein vorhandenes auswählen können? Vor einigen Jahren, als ich das Board des IMX6Q - "BD-SL-i.MX6" von Freescale (lesen Sie NXP) drehte, kam die Idee auf, ein Modul zu entwickeln, das ...
1. Deckte unseren Bedarf an Prototyping-Boards auf IMX6 ab. Zu diesem Zeitpunkt waren bereits mehrere Projekte auf diesem Chip implementiert. Es lohnt sich zu erklären, dass Sie mit Ihrem eigenen Modul und der Entwicklung eines Motherboards für ein bestimmtes Projekt schnell alle Peripheriegeräte testen, die Software „anheben“, Änderungen vornehmen und alles auf die 8 Schichten übertragen können, die für IMX6Q erforderlich sind (die Reihe dieser Chips ist nicht auf Quad beschränkt Neben QUAD gibt es auch DUAL und SOLO - alles „Pin-to-Pin“, was ausreichend Gelegenheit bietet, Geräte mit unterschiedlichen Funktionen basierend auf einer „Karte“ zu implementieren. Ich möchte Sie daran erinnern, dass das Motherboard 4-lagig oder sogar 2-lagig sein kann, was die Produktionszeit erheblich verkürzt und die Kosten senkt.
2. Verwenden Sie das Modul als Komponente und geben Sie dem Kunden die Wahl: Übertragen Sie alles auf eine Karte oder verwenden Sie es wie es ist. Fairerweise möchte ich sagen, dass die Verwendung gekaufter Module für kommerzielle Projekte nicht berücksichtigt wird. Erstens können Sie kein Modul finden, das für jeden geeignet ist (entweder gibt es viele oder nur wenige Anschlüsse oder es gibt keine Befestigungslöcher oder die Platine ist groß usw., im Allgemeinen werden diejenigen, die nach ihren Anforderungen gesucht haben, verstehen), aber in Zweitens ist seine eigene Entwicklung immer zuverlässiger. Du kannst mir Tomaten werfen, aber ich vertraue nur mir.
3. Geben Sie dem Kunden die Möglichkeit, sein Gerät basierend auf unserem Modul zu entwickeln. Ja - dies stellte sich ebenfalls als gefragt heraus, aber nicht das, was oben beschrieben wurde (über die Komplexität der Auswahl eines Moduls), sondern die Tatsache, dass dies eine russische Entwicklung und Produktion ist, spielt eine große Rolle. Anscheinend hat das Wort "Importsubstitution" unsere Industrie und Entwicklung stark beeinflusst, einschließlich.
IMX6 startenKurz über die Hauptsache, aber dies wird nicht die Essenz des Artikels sein. Unser erstes Modul auf IMX6Q wird verwendet und befindet sich derzeit in der Entwicklung. Es hat Abmessungen von 50 x 75 mm. OS Linux und Android.
Abb. 1. Modul auf IMX6QIch werde seine Schnittstellen, Vor- und Nachteile nicht auflisten. Es zeigt fast alles an, was einen Chip hat, und dies reicht für die Umsetzung vieler Projekte aus. An Bord befinden sich eMMC, Schnittstellenanschlüsse, Ethernet-Gigabit-Physik und Stromversorgung. Ein kurzer Exkurs ist vorbei, jetzt ist der Punkt.
Zu was sind wir gekommen?Die IMX6-Leitung endet nicht auf den oben genannten Chips. IMX7, IMX8 in verschiedenen Versionen sind bereits erschienen, aber wir sind an der schwächeren Version in kleineren Dimensionen interessiert, deren Funktionalität eingeschränkt ist - dies sind IMX6UL / IMX6ULL (sie sind auch untereinander „Pin-to-Pin“). Wir haben nicht nur so darauf aufmerksam gemacht, sondern auch, weil verschiedene Aufgaben im Zusammenhang mit Voice over Ethernet über SIP auftraten und Geräte in kleinen Dimensionen und ohne die Möglichkeit einer Wärmeableitung entwickelt werden mussten. IMX6UL hat ein ziemlich gutes Kit zum Anschließen von Peripheriegeräten an Bord:
Abb. 2. IMX6UL-BlockdiagrammWer ein kleines Bild hat, kann auf der NXP-Website die Details der Linie dieser Chips einsehen. Ein Vorteil der Verwendung dieses Prozessors ist sein Körper. Der Abstand der Kontakte beträgt 0,8 mm und das Kontaktfeld beträgt 0,356 mm (BGA), was genau bedeutet, dass die Platine auf 4 Schichten ausgeführt werden kann (was im Prinzip in der NXP-Referenzplatine für diesen Chip durchgeführt wurde). Wir verwenden eine Version von 14x14mm (es gibt auch 9x9mm in Schritten von 0,5mm).
Warum ist es NXP, nicht Broadcom, ST, Ali oder ein anderer Prozessorriese? In der Tat ist der springende Punkt die Verfügbarkeit von Chips, technischer Support und plattformübergreifende. Nachdem wir das Modul auf IMX6Q erstellt haben, haben wir die Software relativ einfach auf IMX6UL / IMX6ULL portiert. Die Chips sind Pin-zu-Pin-Chips. Nachdem Sie die Software auf UL getestet haben, können Sie zu einem günstigeren ULL wechseln. Der zweite ist ein geringer Stromverbrauch und infolgedessen eine geringe Wärmeentwicklung. Ich gebe absichtlich nicht die technischen Parameter der Prozessoren an, daher enthält der Artikel viel „Wasser“, und diese Informationen sind öffentlich verfügbar.
Eines der interessanten Projekte, die auf dem IMX6UL implementiert sind, ist ein Voice-over-Ethernet-Gerät - ein SIP-Telefon, aber im Wesentlichen eine Gegensprechanlage.
Abb. 3. SIP-Telefon.Über die HauptDas Herzstück des Projekts ist IMX6, auf dem sich das Betriebssystem mit dem installierten SIP-Client dreht. Vor dem Booten von Linux wird u-boot (Bootloader) mit einem separaten SPI-Flash geladen. Die Trennung des Bootloaders und der Hauptfirmware erfolgte nicht zufällig (im Gegensatz zur Referenz), sondern um das Gerät bei unerwartetem Ausschalten hart zu machen. Wenn Sie über Ubifs und den schreibgeschützten Abschnitt über NAND sprechen, bin ich sehr verärgert. Die Praxis hat gezeigt, dass selbst die besten NAND-Chips das Recht haben zu sterben, und dies sehr unerwartet. Es gibt eine RMII-Schnittstelle für die Kommunikation mit der Außenwelt, und ein Ethernet-Switch LAN9303 - 10/100 (dieser IMX unterstützt kein Gigabit) ist auf der Karte installiert, und es wurden zwei Ports benötigt. IMX6UL verfügt über zwei RMII-Ports mit Routing, es wurden jedoch genau zwei unabhängige Schnittstellen in Form eines Hubs benötigt.
NAND wird zum Speichern von Firmware und Dateien verwendet (Wir haben bei Samsung K9F1G08U0D im TSOP48-Paket angehalten. Wir beginnen nicht zu spucken und schließen den Artikel nicht, da Speicher in diesem Formfaktor in kleinen Stapeln im Vergleich zu BGA63 sehr billig ist). Ein DDR3-Speicherchip ist K4B4G1646D, Codec ADAU1761. Der Codec ist einen genaueren Blick wert. Zuvor wurde SGTL5000 in mehreren Projekten verwendet, aber mit ADAU hat das Leben viel mehr Spaß gemacht. Sie können einen separaten Artikel über ihn schreiben, aber ich werde versuchen, seine Essenz in meinem Projekt zusammenzufassen. Die Mikroschaltung verfügt nicht nur über 6 analoge Eingänge, 7 Ausgänge und natürlich eine I2S-Schnittstelle. Analog Devices hat zusammen mit dem Codec auch eine spezielle Software zum Schreiben von Firmware für den integrierten DSP veröffentlicht. Wer interessiert ist und nicht Bescheid weiß, kann lesen, was DSP ist und womit es gegessen wird.
Abb. 4. ADAU1761-BlockdiagrammBeim Schreiben von Software spielten die Programmierer zunächst genug mit allen Arten von Verzerrungs-, Echokompensations-, Filter- und Tonmischungsfunktionen. Es ist nach Gehör sehr beeindruckend, sage ich Ihnen. Die Benutzeroberfläche ist sehr benutzerfreundlich, viele Einstellungen, Filter, Konvertierungen, die Möglichkeit, Ton umzuleiten usw.
Abb. 5. SigmaStudio von Analog DevicesDas Projekt umfasst 4 Kanäle (Ein- / Ausgang), da eingebaute Stereolautsprecher und Mikrofone sowie Anschlüsse zum Anschließen externer vorhanden sind.
Eine Peripheriekarte ist mit der Karte verbunden (in Abb. 3), nur mit einem Codec, einem Matrix-Tastaturscanner usw. wurde nicht darüber geschrieben.
Einer der RJ45-Anschlüsse wird für die PoE-Stromversorgung verwendet, der Si3402-Chip von Silicon Laboratories wird als Powered Device (PD) verwendet. Der Schaltkreis wurde fast standardmäßig ohne galvanische Trennung mit einem 12-V-Ausgang verwendet (die Spannung wird durch Widerstände eingestellt). Etwas abgelenkt von allen, die sich für das Thema PoE + mit galvanischer Trennung interessieren, gibt es einen sehr guten Chip von TI - LM5072MH-80. Es hat sich in mehreren Projekten bewährt.
Sekundärstromversorgungen sind auf DC / DC ST1S10PHR implementiert - nicht die billigsten, nicht die hochfrequentesten, aber sie funktionieren perfekt und sind für Autos zugänglich. Im Allgemeinen haben wir einen ganzen DC / DC- und LDO-Zoo für unterschiedliche Anforderungen, aber wenn Qualität wichtig ist, wählen wir bekannte Hersteller aus.
Das Board verfügt außerdem über eine USBHOST-, USBOTG- und SD-Karte. Über USB und SD können Sie Firmware rollen / aktualisieren. Es gibt auch ein Update über das Netzwerk, dies gilt jedoch bereits für Software und das Webinterface.
Ein bisschen über das AufspürenSie können endlos Gerbera und Spurenkarten posten, aber ich werde dies nicht tun, sondern nur die wichtigsten und kritischen Punkte ansprechen. Die Ebenenreihenfolge der Platten ist Standard:
- TOP - Signal mit Landpolygon
- GND - Grundpolygone
- POWER - Lebensmittelprüfstellen
- UNTEN - Signal mit Landpolygon
1. DDR3. Bei einem unabhängigen Speicherlayout müssen Sie vorsichtig sein, daher habe ich dies nicht getan, sondern die Referenz als Beispiel genommen. Für die Verfolgung werden nur zwei Ebenen (oben und unten) verwendet, die anderen beiden Ebenen sind nicht beteiligt. Durchkontaktierungen 0,203 / 0,406 mm, Liniendicke 0,114 mm. Ich habe nur die Erdungsleitungen unter dem Prozessor geändert und sie etwas dicker gemacht - bis zu 0,3 mm. Die GND-Schicht erwies sich als ein guter Grund, auf dem ich eine RGB-Schnittstelle zeichnen musste, was nicht ganz korrekt ist, aber ich sah einfach keine andere Option mit meiner Anzahl von Schnittstellen auf der Platine.
Abb. 6. Speicherspur
Abb. 7. Deponien und LandWenn Sie die Platine verkabeln, müssen Sie mehr Zeit für Strom und Deponien aufwenden. Es ist viel einfacher, 4-Schicht-Karten mit demselben Schema zu entwickeln, die Spur der Signalleiter ist weitläufig und es bleiben immer zwei Schichten für eine gute Stromversorgung übrig, die auch für unkritische Datenleitungen kompetent verwendet werden können. Der Hauptleistungsbereich, den ich fast immer mache, ist 3,3 V, der Rest drin. Alle Hochspannungsdeponien sind mit großen Lücken versehen, um Störungen zu vermeiden.
2. PoE ist, wie ich bereits geschrieben habe, auf dem Si3402-Chip implementiert. Es wird ausschließlich auf vier Schichten der Platte mit großen Lücken zu den Hauptpolygonen gezüchtet. Ich denke, es wird auf zwei Ebenen beginnen, aber niemand garantiert Qualität. Beim Entwerfen von Netzteilen folge ich normalerweise der Auswertungskarte für Mikroschaltungen, und beim Testen überprüfe ich die Wellenformen der in der Dokumentation angegebenen Signale. Wenn Sie dies aufgrund der Größe oder Konfiguration der Platine in der Referenz nicht tun können, müssen Sie sich nur von Erfahrung und gesundem Menschenverstand leiten lassen.
In der Leistungsschicht für PoE wird ein 12-V-Bereich ausgewählt. Die restlichen Schichten werden für Signale und Grundpolygone PoE - GND_EXT verwendet. Alle Polygone liegen streng untereinander, ohne benachbarte Polygone in anderen Schichten zu überlappen. Der Abstand zwischen den PoE-Polygonen und den Hauptpolygonen beträgt ca. 1 mm. Bei der Entwicklung von PoE mit galvanischer Isolation mache ich normalerweise zusätzlich einen Ausschnitt mit einem Fräser (bei der Herstellung von Leiterplatten) unter einem Transformator und Rückkopplungsoptokopplern.
Abb. 9. PoE. TOP3. Peripheriegeräte. Ich musste die Verkabelung der Platine auf dem M3616-Chip der ALi Corporation vornehmen, er hat nur 292 Bälle, aber schauen Sie, wie gut der Prozessor im Hinblick auf die Erleichterung der Platinenverfolgung durchdacht ist. Wie deutlich alle Schnittstellen in der richtigen Reihenfolge angezeigt werden. Achtung, das Board ist auf zwei Schichten gezüchtet und der RAM ist komplett in einer.
Abb. 10. Deponien und LandAuf IMX6UL / IMX6ULL musste ich an den Schnittstellen basteln. In Abb. 6. Sie können sehen, wie eng die Leiter sind und nicht genügend Platz für Durchkontaktierungen vorhanden ist. Sie müssen sich aus der 5. Kugelreihe zurückziehen. Die Hauptsache hierbei ist, die Impedanz in Differentialpaaren (z. B. USB) zu beobachten und mit Durchkontaktierungen nicht zu weit zu gehen, da dies die Land- und Leistungsbereiche beschädigt.
Und doch das ModulWas nicht tun, aber trotzdem ein Modul bekommen. Als die Anzahl der Projekte unter IMX6UL / IMX6ULL die Erwartungen übertraf und die Hauptfunktionalität geschrieben wurde, wurde beschlossen, wie beim letzten Mal auf ein modulares System umzusteigen und es sogar elegant zu machen.
Abb. 11. Modul mx6ull-m02c unter IMX6UL / IMX6ULLWarum elegant?
- Das Modul wird im Formfaktor „On Board“ hergestellt und verfügt nicht über Schnittstellenanschlüsse. Es ermöglicht die Verwendung als „Mikroschaltung“.
- Im Wald gibt es nur alles, was Sie brauchen: einen Chip, DDR3, NAND, SPI, Ethernet-Physik, einen 1,35-V-Abzweig (mit dem Sie dem Modul nur eine 3,3-V-Spannung zuführen können), Quarz und Passiv.
- Einweginstallation. Nicht jede modulare Lösung kann sich des Fehlens von Komponenten auf der Unterseite rühmen. Dies bietet mehrere Vorteile auf einmal: Wärmeabfuhr zum Motherboard, die Möglichkeit der Rückverfolgung unter dem Modul (da auf der Platine keine Aussparung für hervorstehende Komponenten vorhanden ist) und die billigere Herstellung der Module selbst (abzüglich der Schablone, des Umklappens der Karte während der Installation usw.).
- Pads rund um das Brett. Unter dem Modul befinden sich keine Lötsignalpunkte.
- Die Abmessungen des Moduls betragen nur 45x36mm.
- Irgendwie erzähle ich Ihnen von einem der Geräte, die auf diesem Modul entwickelt wurden, aber vorerst ein Foto des Motherboards zum Debuggen und Schreiben von Software.
Abb. 12. IMX6UL / IMX6ULL-Modul auf der KarteDie Karte ist zweischichtig und verfügt über Schnittstellenanschlüsse, die für den Start und den Betrieb erforderlich sind. Auf solchen Platinen führen wir interne Tests auf Kühlung und Heizung während des Betriebs durch, überprüfen die Stabilität der Arbeit unter Last und debuggen Software.
FazitWas genau bietet ein modulares System bei der Entwicklung von Geräten?
- Mit dem vorhandenen Modul beträgt die Entwicklungszeit für eine Karte mit externen Schnittstellen nur wenige Tage (vorausgesetzt, alle Schnittstellen sind verständlich und wurden zuvor in der Entwicklung verwendet).
- Layouts von Leiterplatten sind viel billiger, da Sie in den meisten Fällen eine zweilagige oder eine vierschichtige Platine mit einer niedrigeren Klasse herstellen können.
- Die Geschwindigkeit, mit der das Motherboard abgerufen wird, ist viel höher, da Sie die mit dem Modul verbundenen Komponenten nicht löten müssen.
- Der Übergang vom Layout zur Release-Version ist schneller und schmerzloser (wenn Sie sich dennoch für eine Single-Board-Lösung entscheiden).
Natürlich sind alle Projekte unterschiedlich und manchmal ist die Peripherieschaltung viel komplizierter als der Prozessor selbst, aber das Debuggen einzelner Module ist immer einfacher, insbesondere wenn die Entwicklung eines Projekts von mehreren Ingenieuren durchgeführt wird.
Innerhalb eines Artikels ist es sehr schwierig zu schreiben, was Sie wollen. Die Beschreibung eines Projekts erfordert viele Buchstaben, aber ich möchte mehrere Projekte ansprechen, meine Eindrücke über verschiedene Peripheriegeräte, über verwendete Mikroschaltungen, Funktionen der Schnittstellenverfolgung usw. teilen. Aber die Hauptsache ist, pünktlich anzuhalten.
PS:
github.com/trotill/adk_yocto QuelllinkVielen Dank für Ihre Aufmerksamkeit!