Kurzschluss Junkies [0x0b]: And the winner is…

Neuigkeiten

In einem komplexen Losverfahren mit dezentraler Ziehung haben Chris und Basti einen Gewinner ermittelt.
Der Sieger steht fest: Herzi! Wir melden uns dann bei dem Gewinner.

Aus Fehlern lernen

Basti hat die EMV Probleme vom LAN behoben. Die RGMII Signale sind jetzt mit Serienwiderständen und reduzierter Treiberleistung wesentlich weniger ‚gifitg‘. Ob das alles wirklich geholfen hat, wird eine Messung in der EMV Halle zeigen.

Projekt Schmartwatch

Schablone für die Leiterplatte ist bestellt, aber noch nicht angekommen, daher gibt es von dieser Seite nicht viel zu berichten.
Basti hat den Code angeschaut und sich gefragt, wer so einen Unsinn programmiert hat. Die kurze Antwort ist: Er.

Projekt Pick and Place

Basti hat die Wette von letzter Folge gewonnen. Die Daten auf der Pick and Place Maschine sind binär gespeichert. Allem Anschein nach ein direkter Memcopy aus dem RAM des 286er.
Die Maschine läuft, hat aber noch keinen Namen. Trotzdem haben Chris und Basti schon ein paar Zyklen mit der Maschine gefahren. Dabei haben sie gelernt, dass der Luftdruck eine entscheidende Rolle spielt.
Chris will immernoch die Retrofit Platte mit Hilfe der alten Software bestücken.
Basti hat mit der Software für das Retrofit Board angefangen. Da kommt dann grbl rein und Basti ersetzt die AVR Hardware Codes mit Code für die CubeMX HAL.

Chip der Woche: SK6812Mini

One-Wire RGB LED. Ist auf den selbstklebenden LED RGB Strips. Lässt sich reflow löten. Kostet nur je 8ct. bei 100 Stück.
Aus dem LED Vorrat von Chris wollen wir Miniknöpfchenspiele bauen.

Pick and Place: Teil2 JUKI Placemat 460 Retrofit Board

Wie im Podcast schon erwähnt, haben wir uns überlegt den 286er der JUKI Placemat 460 durch einen STM32F4 zu ersetzen. Also gesagt getan. Erst war die Überlegung das Steuerboard inkl. PC zu ersetzen und die neue Flachbaugruppe an die gleiche Stelle wie die alte Steuerplatine zu possitionieren. Sozusagen ein Retrofit Board. Alle alten Stecker sollten verwendet werden. Als dann die alten Schaltunterlagen gesichtet wurden, wurde diese Entscheidung kurzerhand überdacht und verworfen. Es wurde ein Board entwickelt, welches zwar den 286er ersetzt, aber nicht die Steuerplatine. Dazu musste einfach nur die 3V3 Welt des STMs in die 5V Welt der Steuerplatine umgesetzt werden.

Wie es so ist, wurden noch ein paar Interfaces neu ergänzt. Da noch Unsicherheit besteht, welches das Richtige ist, sind hier mehrere zum Einsatz gekommen. Es wurden Interfaces für eine µSD Karte, ein 100MBit LAN und ein USB zu UART bereitgestellt. Da auch die Überlegung besteht, den Bestückkopf um mehr als nur 90° drehen zu lassen wurden auch noch 2 Polulu Steckplätze vorgesehen. Alles in allem ist die Platine doch sehr kompakt geworden. Geradeeinmal 100x85mm.

So in der Art soll das Board später mal eingebaut sein. Im Idealfall werden nur die 2 Flachbandkabel benötigt und das Board ist fertig zur Verwendung. Bei den Bauteilen wurde darauf geachtet, möglichst wenig Varianz zu haben. Für das komplette Board, kommen nur 15 verschiedene SMD und nur 5 verschiedene THT Bauteile zum Einsatz. Alle Bauteile waren bei JLCPCB  bzw LCSC bestellbar. Genug Bauteile für 2 Flachbaugruppen, 5 Rohleiterplatten und eine Schablone haben zusammen nur ca. 80€ gekostet. Sobald alles da ist wird es spannend. Mal sehen ob die Flachbaugruppe als erste mit dem Bestückautomat herzustellen geht.

Kurzschluss Junkies [0x0a]: Hasendraht gegen Elektrosmog

Neuigkeiten

Wer das STM32MP157C-DK2 Evaluationsboard gewinnen möchte, kann uns eine Email schreiben an: feedback@kurzschlussjunkies.de Wir melden uns dann bei dem Gewinner.

Aus Fehlern lernen

Basti hat EMV Probleme mit LAN. Die RGMII Signale sind in der Abstrahlung weit über dem Grenzwert. Er hat aber schon einige Ideen, wie er die Störaussendung beheben kann.
Um die Precompliance Messungen zu vereinfachen haben Chris und Basti einen geschirmten Raum mit Hasendraht zugeflickt. Jetzt können da besser nach Störern im Bereich 30 – 1000 MHz gesucht werden.

Projekt Knöpfchenspiel

Das Knöpfchenspiel hat über das letzte Wochenende 400 Spiele gesehen. Dabei sind nur zwei Schalter und eine LED ausgefallen. Das Projekt ist also erfolgreich beendet worden. Jetzt steht es erst einmal im Keller.

Projekt Schmartwatch

Die Flex-Leiterplatten sind angekommen. Das Löten gestaltet sich aber etwas schwieriger als bei normalen FR4 Boards.
Zur Stabilisierung hat Basti die Flex-Leiterplatte auf eine FR4 Leiterplatte geklebt. So ist sie besser handhabbar und kann im Reflow-Ofen gelötet werden. Es gibt eine komplett verlötete Leiterplatte, allerdings ist die Schaltung nicht funktional. Zwischen + und – befindet sich in beide Richtungen eine 0,4V Diodenstrecke. Jetzt versucht Basti es mit einer neuen Siebdruckschablone.

Projekt Pick and Place

Chris hat ein Interfaceboard entworfen, dass den 286er ersetzt. Darauf befindet sich ein STM32F4 und der soll mit der Software grbl die Steuerung der Maschine übernehmen.
Chris möchte das Board noch mit der originalen Steuerung bestücken. Basti sieht das sehr skeptisch und ist der Meinung, dass die Daten, die die Maschine abspeichert nur im Binärformat auf den Disketten sind. Chris wettet dagegen. Es geht um eine Kiste Bier.

Chip der Woche: DRV8323(R)

Chris stellt den BLDC Motortreiber vor, der sowohl über Widerstände, als auch SPI konfiguriert werden kann. Der Chip an sich bietet jede Menge Funktionalität unter Anderem:

  • Drei Halbbrücken
  • 100% PWM Duty Cycle
  • Buckregler mit 60V Input oder Linearregler
  • Integrierte Strommessung

Für alle Interessierten gibt es die Info hier bei TI: DRV832x

Schmartwatch [14]: Flex Baugruppe bestücken

Die flexieblen Leiterplatten wurden geliefert und ich kann jetzt mit der Bestückung beginnen. Die Bestückung der ersten Leiterplatte werde ich in einzelnen Phasen durchführen. Zuerst wird der DCDC Konverter U2 bestückt. Dieser sitzt auf 6 BGA Bällchen und ist nicht leicht zu platzieren.
Wie man in den Aufnahmen bereits sehen kann, ist die Referenzierung der Siebdruck, Lötstopp und Kupfer Maske nicht ganz akkurat. Daher wurde an den Stellen der kleinen Landepads auch nachgearbeitet. Mit dieser Modifikation sollte es nun möglich sein die Bauteile korrekt und ohne Kurzschluss zu verlöten. Wenn ich die TPS61099 verlötet habe, kann ich mit dem Multimeter die Lötstellen auf Kurzschlüsse prüfen. Das Verlöten wird mit dem Heißluftfön passieren. Dabei wird mit Flussmittel eine Barriere zur Athmosphäre hergestellt (viel hilft viel) und der Chip erhitzt, bis das Lötzinn flüssig ist. Die suaerstoffhaltige Athmosphäre soll absgeschottet werden, um ein oxidieren (verbrennen) des Lot zu vermeiden. Im industriellen Herstellungsprozess wird das mit zum Beispiel einer Schutzathmosphäre erreicht. Anschließend kann dann mit dem Lötkolben die restliche Beschaltung dazugelötet werden. Wahlweise kann auch hier die Heißluft eingesetzt werden um die Bauteile zu verlöten.

Wenn der Regler aus den 3V Eingangsspannung die gewünschten 3,3V Ausgangsspannung erzeugt, kann die MCU, also der Microcontroller U3 bestückt werden. Dieser hat ebenfalls Landepads, die allerdings größer sind als die kleinen Kreisförmigen des Spannungsreglers. Hier musste nicht nachgearbeitet werden um die Pads mit Lötstopplack zu trennen. Diese Trennung ist wichtig, denn sonst könnnen sich Brücken bilden, die man von Außen nicht sehen kann. Für den Microcontroller kann ebenfalls eine Kurzschlussmessung erfolgen, ebenso wie eine optische Inspektion unter dem Mikroskop. Wenn der Lötvorgang für Gut befunden wird, kann die restliche Peripherie um den Controller gelötet werden. dazu gehören: Stützkondensatoren, und Vorspannungswiderstände. Wenn alle diese Komponenten verlötet sind, sollte der Controller über den Debug-Port erreichbar sein.
Sollte das der Fall sein, kann mit der Bestückung der externen ePaper Beschaltung begonnen werden. Diese, zusammen mit dem Stecker J3 ist für sie Uhrenfunktion absolut notwendig. Die Echtzeituhr und der Bewegungssensor werden nacheinander dazugelötet und auf Kurzschlüsse überprüft. Jede der Komponenten sollte dann einzeln in Betrieb genommen werden.

Die Bilder zeigen, dass der Offset des Siebdrucks leider so stark ist, dass der Rahmen um die Komponenten nicht als Referenz zum Platzieren herangezogen werden kann. Das ist schade, denn jetzt muss ich mich auf die optische von der Seite erfolgende Bewertung der Platzierung verlassen.

Die Rückseite der Flexplatine ist mit einer dicken Schicht Polyimid (PI) versehen. Da auf der Rückseite allerdings auch einige Messpunkte anfgebracht sind, wurde in der Schicht Öffnungen vorgesehen.

Diese Öffnungn sind groß genug um mit dem Tastkopf an das darin liegende Pad zu gelangen. Somit ist das Testen in einem Testadapter möglich. Diesen habe ich allerdings noch nicht entworfen.
Um die Uhr weiter zu stabilisieren wird der Batteriehalter in der Mitte mit einem thermisch aushärtenden Kleber fixiert. Das Kunststoffgehäuse des Halters kann so Längs und Quer Kräfte aufnehmen, die die Platine in der Mitte durchbiegen würden.

Beim Auflöten der zusätzlichen Komponenten habe ich an eine noch unbekannten Stelle einen Kurzschluss, oder besser gesagt eine Diodenstrecke von  0,4V in beide Richtungen. Hier muss ich also erst noch ein bisschen nacharbeiten, bevor ich mit dem Prototyp eine Funktion testen kann.

Wenn die Funktion gegeben ist, werde ich als nächsten Schritt die Software so weit fertig machen, dass sie initial released werden kann. Dazu fehlt noch ein wenig Code, vor allem die Funktion die Updatemuster des ePapers zu kontrollieren.

Schmartwatch [13]: Flex Baugruppe bestellen

Wie bereits von Anfang des Projekt an vorgesehen, soll die Leiterplatte der Schmartwatch gleichzeitig auch das Armband sein. Dazu ist eine flexible Leiterplatte vorgesehen. Diese Art von Leiterplatte ist im Gegensatz zu herkömmlichen Leiterplatten aus eine Kunststofffolie hergestellt und nicht aus Glasfaser verstärktem Epoxid-Harz (FR4). Gewöhnliche Leiterplatten aus FR4 lassen sich mit einer Mindestdicke von 0.4mm herstellen. Das ist aber nicht flexibel genug für unsere Anwendung als Armband.
Eine wichtige Eigenschaft einer Leiterplatte ist die Möglichkeit sie im Reflowprozess zu verlöten. Dazu muss das Leiterplattenmaterial allerdings auch tempertaurresistent sein. Bleifreies Lötzinn schmilzt bei 217°C und ein gewöhnlicher Reflowprozess steigt bis auf 245-250°C an um die Löttemperatur für ca. 30 Sekunden aufrecht zu halten. [Quelle]

Quelle: http://www.gp-ics.com/pdf/far1.pdf

Die flexible Leiterplatte muss diese Temperaturen aushalten können, ohne ihre Form und Festigkeit zu verlieren. Aus diesem Grund ist das Basismaterial der Leiterplatte ein Polyimid mit einer Stärke von 12,5µm. Auf dieses Basismaterial wird eine 13µm dicke Kleberschicht und 18µm Kupfer aufgebracht. Das Kupfer bekommt dann eine Deckfolie aus Polyimid mit 25µm Stärke. Zur Stabilisierung der Leiterplatten an den Stellen an denen Bauteile bestückt werden, sind zusätzlich zu der 170µm dicken Leiterplatte 150µm dicke Stabilisierungplatten aufgeklebt, ebenfalls aus Polyimid.

Somit ergibt sich eine Dicke von 0,325mm für die Leiterplatte mit Stabilisierungsplatte. Diese soll die benötigte Stabilität mitbringen, um die Bauteile nicht durch einfache Biegung abreißen zu können. Für das Handhaben wird allerdings noch ein stabilerer Rahmen benötigt. Dieser soll ebenfalls reflow geeignet sein und muss daher auch aus einem temperaturstabilen Kunststoff hergestellt werden. Aktuell werde ich eine unbestückte FR4 Leiterplatte als stabilisierendes Element verwenden und die flexible Leiterplatte mit Kapton Klebeband befestigen. Kapton ist ebenfalls ein Polyimid und kann einen Reflow-Prozess locker verkraften. Wenn die Bauteile der Uhr einmal verlötet sind, sollten sie für mehr Eigenstabilität sorgen. Im Design ist zu erkennen, dass der Batteriehalterung in der Mitte der Schaltung sitzt. Dieser ist selbst noch zusätzlich mit doppelseitigem Klebeband fixiert und somit eines der stabilisierenden Elemente.

Wenn die Uhr trotzdem zu instabil ist, werde ich eine gefräste Aluminiumplatte als Basis verwenden können. Die Testpunkte am Boden der Leiterplatte sind nur mit Messspitzen durch kleine Öffnungen in der stabilisierende Folie erreichbar, sind aber nicht durch eine flache Metalloberfläche kontaktierbar.

Bestellt habe ich die Flex Boards bei PCBgogo. Mit 8 Tagen Herstellungszeit sind die Flex-Boards bereits fertig und zur Zeit befinden sich die Leiterplatten bei der Post in Hongkong. Kann also nur noch ein paar Tage dauern, bis sie geliefert werden. Dann sehen wir weiter, Bauteile sind genügend vorhanden.

Pick and Place: Teil1

Wir haben uns einen Bestückautomat gekauft. Wie das mit unseren Käufen meistens so ist, spontan. Chris hat den Automat bei ebay Kleinanzeigen gesehen und 2 Tage später haben wir ihn in den Keller von Basti gebracht. Der Automat wiegt stolze 300kg und besteht hauptsächlich aus Stahl.

Der Automat  besitzt einen Transformator, der die Eingangsspannung von 230VAC in 100VAC umwandelt. Dieser wiegt stolze 12 kg und besteht aus ziemlich viel Kupfer. Die 100VAC Spannung wird im Automat in zwei DC Spannungen konvertiert. 24V und 5V. Bei Kauf und Erst-Inbetriebnahme im Keller zeigt der Steuerungsrechner eine Fehlermeldung an. Diese war leider in den Unterlagen nicht dokumentiert und lautete „Notstop betätigen! PWB-Stecker nicht verbunden.“ Der Steuerungsrechner ist ein 286er der mit dem Automaten über parallele Schnittstellen kommuniziert. Die parallelen Schnittstellen sind zwei Einsteckkarten in den ISA-Bus des Rechners. 

Bei der Fehlersuche wie wir die Fehlermeldung loswerden, hat Chris herausgefunden, dass die LED des 5VDC Nezteil nicht leuchtet. Wir haben uns mit einem Labornetzteil an den 5V Kreis gehängt, nachdem wir mit einem Multimeter auf Kurzschluss nach Masse getestet haben. Die Stromaufnahme war ca. 500mA und die Fehlermeldung verschwand. Also haben wir uns entschlossen das Netzteil zu reparieren. Bei näherer Untersuchung hat sich gezeigt, dass einer der Elektrolyt -Kondensatoren ausgelaufen ist und das ganze Netzteil mit klebriger Pampe verschmiert hat. Das hat wohl zu einem Kurzschluss geführt. Ziemlich erstaunlich, dass in einem 30 Jahre alten Gerät die Elkos noch flüssiges Elektrolyt haben. Spricht für deren Qualität.

Wir haben also eins der super kleinen 230VAC auf 5VDC/2A Netzteile anstelle des alten Netzteils eingebaut und siehe da, die Kiste läuft und reagiert auf Steuerbefehle vom Rechner. Beeindruckend ist auch der Unterschied in der Bauform der Netzteile. Das kaputte Netzteil konnte aus den 100VAC 5VDC mit 1A Strom erzeugen. Das neue Netzteil ist ist ungefähr so groß wie eine Briefmarke, hat einen breiteren Eingangsspannungsbereich und kann den doppelten Strom am Ausgang liefern.

Wir haben einen Initialisierungstest durchgeführt uns alle Funktionen einmal getestet. Wie nicht anders zu erwarten ist die Bedienung etwas umständlich. Es gibt kein USB (Verison 1.0 wurde erst 4 Jahre nach Baujahr der Maschine veröffentlicht) und eine serielle Schnittstelle ist auch nicht zu finden, also werden wir um ein Update nicht herum kommen wenn das Teil sinnvoll eingesetzt werden soll. Denn irgendwie wollen wir unsere Daten automatisch vom PC in den Bestückautomaten bekommen.

Wir haben uns entschlossen die Kiste auf eine aktuelle Hard-/ und Software zu bringen. Dazu werden wir ein neues Interface-Board entwickeln, dass so aufgebaut ist, dass es mit den originalen Bedingungen des Bestückautomats herstellbar ist. Quasi ein selbst replizierendes Ersatzteil. Das soll später an die gleiche Stelle wie die aktuelle Interface Karte, und mit den gleichen Steckern arbeiten.

Wie genau müssen wir noch besprechen. Das ist dann eine Sache für den nächsten Eintrag.

Kurzschluss Junkies [0x09]: Pick and Platz

Neuigkeiten

Wer das STM32MP157C-DK2 Evaluastionboard gewinnen möchte, kann uns eine Email schreiben an: feedback@kurzschlussjunkies.de Wir melden uns dann bei dem Gewinner.

Aus Fehlern lernen

Basti hat beim Knöpfchenspiel im Schaltplan des Mikrocontroller Boards die Data+ und Data- Signale des differenziellen I2C Interfaces verdreht. Daher kam keine Kommunikation zustande. Chris hat das gefunden und jetzt geht es.

Chris hat ebenfalls lange nach einem Fehler gesucht. Schlussendlich lag es daran, dass die Software den falschen ADC Kanal aufgezeichnet hat.

Projekt Knöpfchenspiel

Der Endspurt hat begonnen. Das Knöpfchenspiel ist in den letzten Zügen und wird am Samstag verwendet. Alle Funktionen sind vorhanden, jetzt fehlt nur noch etwas Politur.

Projekt Schmartwatch

Die Flex-Leiterplatten sind unterwegs, Bauteile sind ebenfalls bestellt. 10 Muster wird es geben.
Zur Stabilisierung hast BAsti vor die Flex-Leiterplatte auf eine FR4 Leiterplatte zu kleben. So ist sie besser handhabbar und kann im Reflow-Ofen gelötet werden. Später wird eine Vorrichtung benötigt, die die Flex-Leiterplatte zuverlässig und reproduzierbar fixiert. Das ist für einen Pick-and-Place Vorgang zwingend notwendig.

Pick and Place

Chris und Basti haben sich einen Bestückautomaten gekauft. Der ist zwar ziemlich alt, aber nach einer kurzen Untersuchung und Reparatur auch wieder lauffähig. Ein Kondensator ist geplatzt und hat das interne 5V Netzteil zerstört. Der nächste Schritt ist dann die Modernisierung des Systems. Es geht quasi von 16-bit auf 32-bit.

Chip der Woche: LSM6DSOX

Der Chip der Woche ist ein smarter Bewegungssensor mit Gyro- und Beschleunigungssensor.
Mit einer dreistufigen Pipeline kann der Chip ermitteln, welche Art der Bewegung gerade stattfindet. Das macht er mit Hilfe eines Entscheidungsbaums. Basti hat den Chip zwar auf dem Tisch liegen, aber um den Entscheidungsbaum zu generieren, muss der Sensor in ein spezielles Evaluation Board um mit dem PC konfiguriert zu werden. Das ist ebenfalls bestellt, aber noch nicht da.
Für alle interessierten gibt es die Info hier bei ST: LSM6DSOX

Bandpass TTL Opamp und Rigol DS1054Z

Ich habe mir die Idee einen Mosfet als Verstärkereingang mal genauer angesehen und dieses System übernommen. Der Vorteil ist, dass ein Mosfet welcher nur kapazitiv angesteuert wird schon ein Hochpass ist. Mit dem Vorwiderstand für den Mosfet kann die Tiefpasskarakteristik beeinflusst werden. Wenn einem die Gatekapazität zu ungenau ist, kann auch ein zusätzlicher Kondensator verwendet werden um das Tiefpassverhalten genauer zu definieren. Die nachfolgende NPN-PNP-Verstärkerstufe ist da, um dieses Signal „belastbar“ zu machen. Um den Mosfet im Analogmodus zu halten, kann entweder ein DAC eines µControlers verwendet werden oder wenn es „standalone“ funktionieren soll einen Operationsverstärker verwenden. Die Gesamtschaltung verbraucht nicht mehr als 3mA bei 3,3V.

Durch das kapazitive Messen des Signals erfolgt eine Phasenverschiebung, welche nicht zu vernachlässigen ist, wenn Strom und Spannung Bezug zueinander haben sollen.

Hier ist die Schaltung. Diese kann man Easy in Spice nachbauen und mit experimentieren. Wichtig ist, dass man reelle Bauteile verwendet und nicht die idealen Modelle von Spice.

Das ist die gelötete Schaltung in Nahaufnahme auf einer eigens dafür angefertigten Leiterplatte.

Das ist die gelötete Schaltung in Nahaufnahme auf einer eigens dafür angefertigten Leiterplatte. 

Ich habe ein paar Aufnahmen mit meinem neuen DS1054Z gemacht. Alle Messwerte welche angezeigt werden, sind mit einem Druck auf den „MessMalAlles“ Button erledigt. Auch die angezeigten Werte habe ich nicht extra im Offset oder Amplitude angepasst. Diese sind mit dem AUTO Button gleich richtig skaliert worden. Echt top wie gut das Funktioniert.

Hier einmal die Phase gemessen bei 1KHz Eingangssignal.
Dann einmal auf den magischen „MessMalAlles“ Button gedrückt ohne Offset.
Dann einmal die gleiche Messung mit einem Offset von ca. 3V.
Jetzt noch das Tiefpassverhalten im Detail. Hier 20KHz vs. 40KHz.

Knöpfchenspiel 2 – Bus-Interface auf Raspberry Pi

Das Differenzielle I²C Interface für den Komminikations-Bus im Knöpfchenspiel ist für den Raspberry Pi ein Hat mit dem PCA9615 Treiber Chip. Die Knöpfcheninterfaces haben den Treiber selbst on Board. Dieser Treiber Baustein konvertiert die normalen I²C Signale in differenzielle Signale um sie stabiler gegen elektromagnetische Störung zu machen. Auf der Empfängerseite werden die Signale dann wieder zurück konvertiert in 3,3V Open-Drain.

I²C Bus

Dieser Bus wurde bereits 1982 von Phillips Semiconductor (heute NXP) entwickelt und dient zur seriellen Datenübertragung zwischen integrierten Schaltungen. Daher auch der Name: Inter Integrated Circuit oder IIC. Der Bus besteht aus zwei Signalleitungen: Serial-Clock (SCL) und Serial-Data (SDA). Am Bus können mehrere Teilnehmer gleichzeitig hängen, aber immer nur einer ist der Master. Die Signalleitungen sind mit einem Widerstand auf eine Spannung voreingestellt. Meistens 5V, manchmal auch 3,3V je nach Interface Spannung. Daten werden auf diesem Bus übertragen, indem die Signalleitungen mit einem Transistor auf Masse Potential geschaltet werden, also auf 0V. Das SDA Signal nach Masse schalten können sowohl Master als auch die Slave Geräte am Bus. Der Master gibt den Takt vor indem er die SCL Leitung auf Masse zieht, oder los lässt und der Widerstand das Signal wieder auf Betriebsspannung ziehen kann. Die Datenleitung wird entweder vom Master, oder von den Slaves auf Masse gezogen, je nachdem wer gerade mit einer Datenübertragung beschäftigt ist. Dieses Prinzip sorgt dafür, dass bei einem Kurzschluss gegen Masse die Signale lediglich ungültig werden, der Chip aber nicht kaputt geht.

Die Adressierung auf dem I²C Bus ist 7-bit lang, kann also 127 Geräte bedienen. Das 8te Bit dient der Lese/Schreib Aktivierung. Dabei sind allerdings einige Adressen reserviert unter Anderem um eine Adressraum-Erweiterung auf 10-bit zuzulassen. Effektiv können also 112 Adressen angesprochen werden.

Adresse Funktion
00000000General Call Adresse
00000001Start Byte
0000001XCBUS Adresse*
0000010XReserviert für ein weiteres Busformat
0000011XReserviert für zukünftige Erweiterungen
00001XXXReserviert für zukünftige Erweiterungen
11111XXXReserviert für zukünftige Erweiterungen
11110XXX10-Bit Adressierung

*CBUS ist ein veraltetes System.

Signalform

Aus den I2C Spezifikationen Rev.6 April 2014 Fig.9

Die Signale SCL und SDA sind so genannte Single-Ended Signale. Sie haben ein Spannugnspotential gegen Masse (0V). Dabei können Störungen durch die Schaltflanken in die angrenzenden Leitungen übersprechen. Beispielsweise kann die konstanten Änderungen der Taktleitung (SCL) einen Spannungspuls in der Datenleitung erzeugen, die zwar vom Slave auf Masse gehalten wird, aber über den Leitungswiderstand und die Kapazität der Leitung gegen umliegende Masse trotzdem als Spannung (digitale 1) am Master Eingang erkannt wird. Dies wird zum Beispiel als Bitfehler in den Empfangenen Daten sichtbar. Je länger die Leitungen sind, desto stärker kann das Problem auftreten. Daher muss für eine länger Verbindung Vorsorge getroffen werden. Eine der Vorkehrungen ist zum Beispiel das Konvertieren in differenzielle Signale.

Dabei werden die oben gezeigten Signale von zwei auf 4 Drähte erweitert. Die zusätzliche Leitung ist das Komplementär der Signalleitung und dient als Referenz.

Hardware

Rasperry Pi 3B mit DIIC Hat

Das DIIC Hat ist die Hardware, mit der der Raspberry Pi I²C Signale auf die Differenzielle Leitung bringen kann. Es besteht aus mehreren Teilen: Dem 40-poligen Interface Stecker zum Pi, dem I²C EEPROM, das den Devicetree Patch mitbringt, die 12V Spannungsversorgung für die Bus Leitung und der Differenzielle I2C Transmitter.

Raspberry Pi 40-poliger Verbindungsstecker

Auf dem 40-poligen Verbindungsstecker liegen neben den 26 GPIO Signalen ebenfalls die beiden Signale ID_SC und ID_SD. Diese gehören zum Konfigurationsinterface des Hats. An diese beiden Signale wird das I2C EEPROM mit Adresse 0x50 angeschlossen. Im SPeicher des EEPROMS liegen Informationen zu dem Hat. In diesen Daten wird dem Linux auf dem Raspberry mitgeteilt, welches Hat aufgesteckt ist, welche Version, welcher Hersteller und welche Hardwarekonfiguration notwendig ist um das Hat zu betreiben. In unserem Fall ist das das Aktivieren des I2C Interfaces an GPIO02 und GPIO03, sowie das Resetsignal an GPIO5. Ohne dieses EEPROM ist die Hardware nicht konform mit der Anforderung an ein Raspberry Pi Hat und darf sich so auch nicht nennen.

EEPROM für das Hat. Angeschlossen an ID_SC und ID_SD

Das Hat stellt neben der Information zur Konfiguration des I2C Interfaces auch noch die Übertragungshardware zur Verfügung. Der PCA9615 ist der Transceiver und hat zwei Spannungsdomänen. Die klassische I2C Seite wird mit 3,3V betrieben und die differenzielle Seite mit 5V. Zum Starten der differenzielen Strecke, muss der Chip mindestens 11ms im Reset (low) gehalten werden, damit der Bus idle/stop Detektor ordnungsgemäß funktioniert. So lange ist die READY LED aus. Wenn der Resetimpuls beendet ist, geht die Leitung GPIO05 auf high und die LED leuchtet.

Beschaltung des differenziellen I²C Buffers PCA9615

Die LED wird vom Linux beim Booten angesteuert, so ist sicher gestellt, dass der Treiberbaustein ordentlich starten kann. Wenn das Linux gebootet ist, kann über die internen Tools wie i2cdetect oder i2cget/set der Bus verwendet werden. Als Gegenstelle steht der STM32 als I2C Slave zur Verfügung. dieser wartet auf den Adressen 0x30 und 0x31/0x32 auf Kommunikation mit dem Master.
Diese Software ist zur Zeit leider noch nicht funktionsfähig. Aber das sollte sich in den nächsten Tagen ändern.

Kurzschluss Junkies [0x08]: Lack oder Keinlack

Neuigkeiten

Wir haben knapp 5000 Downloads und ca. 50 Abonnenten. Danke dafür.
Wie werden ein Gewinnspiel starten, sobald wir ca. 100 Abonnenten haben.
Es gibt ein super interessantes Evalboard ab zu stauben. Das STM32MP157C-DK2

https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html

Handson Rigol DS1054Z

Das Rigol DS1054Z ist ein richtig gutes Hobby-Oszilloskop für wenig Geld. Eines der besten Features ist der „MessMalAlles“-Button. Da bekommt man per Knopfdruck alle Information welche einen interessieren könnten auf einmal angezeigt. Ein Softwareupdate geht ohne lästiges Anmelden oder Registrieren.

Aus Fehlern lernen

Der Pegel macht’s. Basti musste den BOOT0 Pin eines STM32 niederohmig genug auf ein Potential ziehen um auch ohne Debugger in den richtigen Bootmodus zu kommen.
Notizen machen und eine Gespräch leiten ist in der Kombination schlecht möglich. Am besten einen Schriftführer und einen Leiter bei wichtigen Gesprächen.

Der Mosfetverstärker

Chris hat einen ultra-lowcost Verstärker gebaut. Dieser ist allerdings nur für Wechselspannungssignale geeignet.

Knöpfchenspiel

Das Spiel geht weiter. Ein Holztisch wurde gelöchert. Er wurde angemalt aber nicht lackiert. Alles wird älter und das darf man auch sehen. Die LED und Knöpfe werden bereits ausgewertet. Die Software auf dem Raspberry funktioniert auch schon. Jetzt noch die Kommunikation zwischen STM32 und Raspberry Pi in Betrieb nehmen und eine Webcam mit ausreichend guter Qualität anstecken.

Schmartwatch

Review auf Twitter war gut und hilfreich. Platine wird wohl lieber selbst bestückt, was mit dem bald funktionierenden FinePlacer auch kein Problem sein sollte.

Handauflage zum einfachen Platzieren von SMD Komponenten

Chip der Woche

Der STM32MP15x hat es diesmal geschaft. ST kommt in den Bereich der Media-Prozessoren. mal sehen was die Zukunft bringt. Leider preislich noch etwas über der Konkurrenz.
STM32MP151 5,30$ MCIMX6Z0DVM09AB 3,62$
STM32MP153 8,10$ MCIMX6Y0CVM05AB 6,76$
STM32MP157 9,50$