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
00000000 General Call Adresse
00000001 Start Byte
0000001X CBUS Adresse*
0000010X Reserviert für ein weiteres Busformat
0000011X Reserviert für zukünftige Erweiterungen
00001XXX Reserviert für zukünftige Erweiterungen
11111XXX Reserviert für zukünftige Erweiterungen
11110XXX 10-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$

Kurzschluss Junkies [0x07]: Eingebettet

Wir sind mit dem Handy unterwegs auf der Embedded World und haben uns mit Thomas getroffen. Er ist in der Hackaday Community aktiv und so haben wir uns auch getroffen. Er arbeitet beruflich mit Multicore Systeme in Sicherheitskrittischen Systemen.

In der Kategorie Fehler machen erzählt er von seinem größten Fehler: Eine Projekt nicht angehen, weil man Angst hat, dass das Thema zu kompliziert ist. Einfach mal loslegen und machen.

Thomas hat sein Hobby zum Beruf gemacht, somit sind Hobbyprojekte jetzt nicht mehr Gebastel. Er arbeitet auch an der Hochschule, dort bauen sie einen Roboter mit LIDAR Sensor, die Daten daraus sollen dann in der 3D Engine Unity visualisiert werden. Das kombiniert mit eines Oculus Rift ist ein interessantes Projekt. LIDAR wird zum Beispiel genutzt um 3D Modelle von großen Gebieten zu erzeugen. Das macht zum Beispiel Phoenix LiDAR

Ein weiteres Projekt war mit dem ESP32. Er hat einen CAN-Bus Treiber entwickelt um den ESP32 als günstigen Controller mit WLAN zu verwenden.

Ein weiteres Projekt war die Umsetzung einer realen virtuellen Realität. Dazu hat Thomas eine Stereokamera mit drei Achsen in das Führerhaus eines Spielkrans eingebaut. Dieses Telepräsenz System ist ebenfalls mit einer Oculus Rift verbunden. Somit kann der Kranführer außerhalb des Krans sein und trotzdem aus der gewohnten Perspektive den Kran führen. Dieses Projekt hat auf Hackaday einiges an Interesse ausgelöst und Thomas erzählt von seinen zwei Wochen Internet-Fame. Sogar die ESA hat sich bei ihm gemeldet. Leider ist aus diesem Projekt noch nicht mehr geworden.

Zum Schluss haben wir noch über die Messe gesprochen. Unsere Tipps für die Besucher: Kommt früh, da gibt es noch Parkplätze. Redet mit den Leuten vor Ort über eure Projekte. Nehmt euch nicht zu viel vor, weniger ist mehr und zieht euch bequeme Schuhe an.