Module zum Basteln
Bei vielen meiner Bastelprojekte benötige ich immer wieder irgendeine Schnittstellen zur Aussenwelt. Ein typisches Beispiel ist eine
USB-Schnittstelle. Technisch ist es häufig kein grosses Problem sowas selbst auf der Platine zu realisieren, die ICs, Steckverbinder etc,
sind leicht zu bekommen. Es ist aber wesentlich schneller, einfacher und deutlich billiger fertige Module dafür zu verwenden. Die
Inbetriebnahme und Fehlersuche vereinfacht sich weil man diese Blöcke (erstmal) als Fehlerquelle ausschliessen kann. Bei
komplexeren Modulen ist der (Hobby-)Selbstbau zudem praktisch unmöglich.
Eine kleine Auswahl ist nachfolgend zu sehen.
Die meisste Elektronik wird heutzutage im asiatischen Bereich gefertigt, sehr häufig in China. Auch diese Module sind sehr wahrscheinlich dort
produziert worden. Es ist sehr billige Massenware die "irgendwo zusammengenagelt" wird. Höchste Qualität und bullet-proof Design sollte man
daher nicht erwarten, für Hobbyzwecke ist es aber mehr als ausreichend.
Ähnliche Module findet man auch in den diversen "Arduino-Shops", häufig auch auf ein sog. "shield" Erweiterungsboard gesetzt. Ich wette die
wurden ebenfalls in Asien gefertigt ..
Viele der Module sind "namenlos", existieren in unterschiedlichen Varianten und haben nur die verwendeten ICs gemeinsam. Ein Hersteller ist sehr
oft nicht angegeben. Die Anbieter bei ebay sind oft "kurzlebig", eine Bezugsquelle anzugeben ist daher sinnlos. Am besten orientiert man sich an
der Optik und den verbauten ICs.
Die mitgelieferten Beschreibungen und Anleitung sind meist rudimentär. Gute erste Quellen sind die Datenblätter der Chip-Hersteller. Bevor man
ein Modul "schnell mal an einen Arduino anstöpselt" sollte man unbedingt für alle Ports überprüfen ob die Spannungspegel zueinander passen.
Besonders bei Funk-Modulen sollte man auch bedenken dass die abgestrahlte HF erheblich in die eigene Elektronik einstreuen kann. Jede
Leitung wirkt unbeabsichtigt auch als Antenne.
USB auf UART Umsetzer
Dieses Modul ist ein Umsetzer von USB auf RS232(UART). Basis ist ein IC von Silicon Labs CP2102. Der UART arbeitet mit 3.3V TTL Pegel.
Es ist kein "echter" RS232 (dafür fehlt die Pegelinvertierung und die Umsetzung auf +/-12V). Das ist aber eher von Vorteil, weil
die meistens Mikroprozessoren sowieso mit TTL-Pegel arbeiten. Die I/O Pins sind 5V tolerant (max 5.8V), eine nachfolgende 5V-Elektronik
benötigt daher keine Pegelwandler.
Passende (PC-)SW-Treiber finden sich überall im Internet. Das Device registriert sich als virtueller COM-Port. Auf beiden Seiten ist es sehr
einfach anzusprechen. Als Bonus bekommt man noch die USB-5V geliefert, damit kann man Elektroniken mit wenig Strombedarf direkt versorgen.
Für die eigene Stromversorgung enthält der Chip einen 3.3V-Spannungsregler. Diese Quelle kann zur Versorgung anderer Schaltungen
verwendet werden. Laut Datenblatt kann sie zu 100mA liefern, wobei nicht eindeutig ist ob der Eigenbedarf von 20mA
noch abgezogen werden muss.
Es gibt viele sehr ähnliche, alternative Module mit identischer oder sehr ähnlicher Funktionalität. Häufig
verwendet werden z.B. die folgenden Chips:PL2303(Prolific), FT232(FTDI), CH340(WCH?).
Mein Modul mit dem CP2102 lief unter Windows 10 (Treiber-Stand 5/2020) nur bedingt zuverlässig. Kurze Tx-Sequenzen
waren okay, aber grössere Datenmengen (z.B. Binärübertragung von Files) führten meistens zu einem
Absturz/Einfrieren. Auch das Durchprobieren aller denkbaren (USB-)Parameter brachte keine Verbesserung.
Der Grund für das problematische Verhalten ist ein fehlerhaftes Layout. In einigen der (auf ebay) zirkulierenden
Varianten ist der RST-Pin (9) fälschlicherweise mit 5V (VBUS) verbunden. Den Trace zu unterbrechen ist
ausreichend.
Der Fehler wurde auch in diversen Foren besprochen:
Link1 zum Silabs-Forum
Link2 zum Silabs-Forum
Eine weitere kleine Dokumentation ist auf dieser Seite zu finden.
Dort liegt auch ein Schaltplan.
In einigen Applikationen muss man besonders die Verschaltung der LEDs D1 und D2 beachten. Sie signalisieren ob Rx- bzw.
Tx-Impulse vorhanden sind. Am Rx-Pin muss die externe, treibende Schaltung in der Lage sein die notwendigen mA als
Sink-Strom zu liefern. Bei hochohmigen Schaltungen ist das nicht der Fall und führt zu unerklärlichem Verhalten.
LED D2 sollte in diesen Fällen stillgelegt werden, z.B. durch entfernen von R2.
Li-Ion Akku Laderegler und Step-Up Wandler
Dieses Modul kombiniert 2 Funktionen:
- eine Laderegelung für einen 3.7V Li-Ion Akku
- einen Step-Up Wandler bis max. 28V
Der Laderegler basiert auf einem TP4056 (NanJing Top Power ASIC Corp.?). Der klassische Einsatz ist die Akku-Ladekontrolle für
Geräte die über USB geladen werden.
Der Ladestrom kann (muss) durch einen Widerstand an den verwendeten Akku angepasst werden. 2 LEDs signalisieren den Status.
Einige Varianten benutzen einen LTC4054 als IC. Bei diesem ist der Schalttransistor nicht enthalten und extern zugeschaltet.
Der zweite Teil der Platine ist ein Step-Up Wandler der die 3.7V des Akkus auf eine bliebige höhere Spannung umsetzt (max 28V). Das IC hat die
Bezeichung SDB628. Je nach Hersteller kann auch ein kompatibler Typ verbaut sein. MT3608, FP6291, SX1308, AX5523, LT1935, LTC3426,
HM1549, A848, .. scheinen alle weitgehend funktionsgleich zu sein.
Allen Designs gemeinsam ist die dicke Spule (im Bild mit dem Aufdruck 4R7). Über das kleine Poti kann die Ausgangsspannung eingestellt werden,
bei Varianten mit fixer Ausgangsspannung wird es durch 2 Festwiderstände ersetzt. Dies ist auch anzuraten um nicht versehentlich die Spannung
zu ändern.
Von der Qualität der Regelung und der spektralen Reinheit sollte man keine Wunder erwarten. Wenn möglich oder nötig sollte ein
(Low-Drop-)Spannungsregler zusätzlich dahinter geschaltet werden.
Dieses Kombi-Modul ist sehr praktisch wenn man portable Geräte aufbauen möchte.
Ein grober "Schönheitsfehler" ist allerdings vorhanden: Akku und Step-Up sind permanent miteinander verbunden. Selbst wenn das folgende Gerät
ausschaltet zieht der Step-Up permanent seinen Idle-Strom. Den Ein-Schalter platziert man daher am besten zwischen Akku und Step-Up,
die entsprechende Leiterbahn auf der Platine muss dazu unterbrochen werden.
Step-Down Wandler Mini-360
Dieses Modul ist ein Step-Down-Wandler basierend auf einem MP1482 IC. Es wird auf den üblichen Handelsplattformen
zu extrem niedrigen Preisen angeboten, von "unendlich" vielen Anbietern. Alternativ wird dort auch gerne ein MP2307 als IC eingesetzt.
- Eingangsspannungsbereich: 4.75 ... 18V
- Ausgangsspannungsbereich: 0.923 ... 15V
- Wirkungsgrad: max. 93%
Die Ausgangsspannung wird im Original durch ein Poti eingestellt. Da man aber eher selten an der Versorgungsspannung
seiner Schaltung herumdreht sollte man es besser gegen Festwiderstände austauschen.
Die Schaltung ist sehr vorteilhaft um Verlustleistungen zu minimieren. Ein typisches Beispiel ist eine
5V-Stromversorgung in Fahrzeugen mit 12V-Bordnetz. Ein simpler Linearregler würde bereits bei mittleren Strömen
eine erhebliche Abwärme produzieren.
RTC, Echtzeituhr
Auf diesem Modul sitzt ein "alter Bekannter", der DS3231 von Maxim. Diese IC ist eine sog. real-time clock, quasi eine Armbanduhr für
Mikroprozessoren. Einmal gestartet und eingestellt liefert es immer die korrekte Zeit und das aktuelle Datum. Bei Stromausfall sorgt die
eingebaute Batterie für den Erhalt der Daten. Als Bonus ist noch ein kleines Eeprom vorhanden in dem man ein paar Daten abspeichern kann.
Die Versorgungsspannung darf im Bereich 2.3 .. 5.5V liegen, wobei das Eeprom eventuell nur bis runter auf 2.8V spezifiziert ist.
Die Ansteuerung erfolgt über einen I2C-Bus (aus patentrechtlichen Gründen teilweise auch als TWI / 2-wire Serial Interface bezeichnet).
Der RTC-Baustein selbst benötigt prinzipiell nur sehr wenig Strom. Wer ein Low-Power System plant sollte die Hinweise im folgenden Link
beachten und anwenden:
https://thecavepearlproject.org/2014/05/21/using-a-cheap-3-ds3231-rtc-at24c32-eeprom-from-ebay/
RFM95W LoRa Funkmodul
Der Hersteller dieser Module ist "Hope Microelectronics", oft auch als "Hope RF" bezeichnet. Der Chipsatz ist ein SX1276 von Semtech.
"LoRa" steht für Long Range, eine Funktechnologie die auf Spread Spectrum basiert. Mit 2 Modulen kann man eine Funkverbindung
aufbauen. Die Module gibt es für unterschiedliche (freie) Frequenzen: 433, 866, 915 und 923MHz, je nach geographischer Region.
Die LoRa Alliance hat sich zum Ziel gesetzt mit dieser Technology ein weltweites Netzwerk aufzubauen (LoRaWAN), an dem man teilhaben kann.
Für die Arduino-Umgebung gibt es eine C++ Bibliothek:
https://github.com/jgromes/RadioLib
Auch vom Hersteller selbst (Semtech) gibt es diverse Infos:
https://www.semtech.com/products/wireless-rf/lora-transceivers/sx1276#downloads
Für den Einsatzfall als simple, drahtlose UART-Verbindung ist dieser Baustein nur bedingt geeignet. Er benötigt zusätzlich einen Prozessor
zur Konfiguration und das Protokoll-Handling. Diesen Aufwand kann man sich sparen wenn man z.B. einen HC-12 benutzt. Mit dem Nachteil dass
die Reichweite nicht ganz so gross ist (FSK-Modulation gegenüber Spread-Spectrum).
GPS Empfänger
Hersteller ist die Firma Beitian. Das Modul hat die Kennung BN-180. Chipsatz ist ein UBX-M8030-KT von u-blox. Es unterstützt die Standards
GPS, GLONASS, Galileo und BeiDou. Versorgungsspannung 3.0 .. 5.5V, 50mA. Der Ausgang ist ein UART mit TTL-Pegel, das Protokoll nennt sich NMEA.
Es basiert auf ASCII-Zeichen und ist leicht auszuwerten.
Diese Module laufen umgangssprachlich unter der Bezeichung GPS-Empfänger. Eigentlich ist GNSS die korrektere Bezeichung weil mittlerweile
noch 3 weitere Standards hinzugekommen sind. GPS war aber das erste verfügbare System, daher der Name.
Bestimmte GPS Module zu beschreiben ergibt kaum Sinn weil sie im Markt sehr kurzlebig sind. Die Chipsätze werden fast im Jahrestakt erneuert
und es gibt dutzende von Modulherstellern. Ein üblicher Standard ist aber durchgängig das NMEA Protokoll.
HC-12 Funkmodul
Diese Module sind für drahtlose UART-Verbindungen im freien 433MHz-Band per FSK gedacht. Hersteller ist vermutlich DSD Tech. Auf der Rückseite ist die
Typenbezeichnung "GT-38" aufgedruckt. Der HF-Chipsatz ist ein Si4438 der Firma Silicon Labs, der Mikroprozessor ein N76E003AT20 von Nuvoton
(8051 kompatibel). Die Reichweite wird mit bis zu 1000m angegeben, abhängig von der gewählten Übertragungsgeschwindigkeit. Laut Datenblatt ist der
Si4438 speziell für den chinesischen Smart-Meter Markt ausgelegt.
Das Modul ist ähnlich dem weiter oben beschriebenen LoRa Modul. Die Verwendung ist aber deutlich vereinfacht weil der Prozessor bereits
die low-level Kontrolle des HF-Chips übernimmt und einen UART bereitstellt.
Die Inbetriebnahme ist extrem einfach. Nach dem Anlegen der Versorgungsspannung ist das Modul direkt betriebsbereit. Als Default sind 9600 Baud,
Kanal 100, 20dBm Sendeleistung und Übertragungsmodus FU3 (siehe Datenblatt) eingestellt. Die zu übertragenden Daten werden einfach an den
UART-Eingang geschickt, genau wie bei einer seriellen RS232-Schnittstelle.
Der SET-Pin bleibt normalerweise unbeschaltet (offen, interner Pull-up). Wenn er auf Masse gezogen wird kann man die internen Einstellungen
durch senden sog. AT-Kommandos verändern. Syntax siehe Datenblatt.
Als Frequenzbereich wird 433.4 .. 473.0MHz angegeben, mit 100 Kanälen im 400KHz Abstand. Das 433-ISM-Band (Europa) liegt im Bereich
433.05 .. 434.79MHz. Theoretisch dürfen daher nur die unteren 4 Kanäle benutzt werden.
https://emf3.bundesnetzagentur.de/pdf/ISM-BNetzA.pdf
Ein wenig Aufmerksamkeit bedarf die Einstellung der Baudrate und die Wahl des FU-Modes. Mit der Wahl der UART-Baudrate wird automatisch auch die Luft-Schnittstelle passend
gesetzt (Bandbreite, Protokoll, Packet Handling, etc). Und je höher die Baudrate desto geringer ist die Empfindlichkeit = Reichweite.
Im FU3-Mode mit 9600 Baud (default) werden -111dBm an Empfindlichkeit erreicht. Bei 1200 oder 2400 Baud sind es -116dBm. Mit 115200 Baud
sinkt der Wert auf -100dBm. Eine Veränderung von ~8dB entspricht einer Halbierung/Verdoppelung der Reichweite.
Im FU4-Mode, mit fixen 1200 Baud, steigt die Empfindlichkeit auf -126dBm an. Allerdings zu einem Preis. Die Übertragung auf der Luftschnittstelle
ist erheblich langsamer als die UART-Baudrate. Pro Byte muss eine Wartezeit von 1..2 Sekunden einkalkuliert werden.
Der weiter oben beschriebene USB-UART Konverter (CP2102) kann direkt angeschlossen werden. Er versorgt gleichzeitig das Modul mit Strom.
In Summe eine einfache und schnelle Lösung wenn "mal eben" Daten seriell übertragen werden sollen.
Es gibt auch HC-12 Module mit abweichender IC Bestückung, Si4463(HF) und STM8S003F3P6(Prozessor). Vermutlich ist es eine Vorgängerversion, oder
schlicht ein zweiter Hersteller.
Der Si4463 scheint der "grosse Bruder" des Si4438 zu
sein. Er hat einen grösseren möglichen Frequenzbereich und eine zusätzliche Modulationsart. Beides ist allerdings in dieser
Anwendung nicht relevant weil nicht verwendet. In den Funktionen scheinen beide Modulvarianten identisch zu sein.
Der zum Foto zugehörige Blog liegt hier:
https://quadmeup.com/hc-12-433mhz-wireless-serial-communication-module-configuration/
Weitere Infos und SW-Code-Schnipsel sind auf der Herstellerseite(?) zu finden:
http://www.hc01.com/productdetail?productid=201902121600
Die Abbildung der Platine dort ist wieder leicht abweichend zu den vorhergehenden, offensichtlich wurde der Prozessor durch eine kleinere
Ausführung ersetzt.
Und noch ein weiterer Link mit Infos:
https://www.allaboutcircuits.com/projects/understanding-and-implementing-the-hc-12-wireless-transceiver-module/
Zu möglichen Übertragungsproblemen gibt dieser Link einen Hinweis:
https://www.mikrocontroller.net/topic/453846
Demnach sind die Quarze möglicherweise nicht immer innerhalb der Spezifikation.
Als Antenne kann ein Stück Draht mit einer Länge von Lambda/4 verwendet werden, also ~17cm. Dann sollte aber idealerweise eine hinreichend
grosse Massefläche als "Gegenpol" vorhanden sein. Die Fläche des Moduls selbst ist dafür viel zu klein, ein Metallgehäuse zu verwenden wäre gut.
Die mitgelieferte gewickelte Antenne ist möglicherweise nicht so empfindlich, habe ich nicht überprüft. Für absolut maximale Reichweite sollte
man eine "richtige" Antenne verwenden, das Modul hat extra einen Stecker dafür.
Bluetooth Stereo-Audio Modul
Das XS3868 ist ein Bluetooth Audio Device dass die Profile A2DP und AVRCP unterstüzt. Der Chip ist ein OVC3860 der Firma
OminVision Technologies. Man kann damit z.B. einen Bluetooth Stereo-Lautsprecher oder ein Headset bauen oder einen MP3-Adapter für eine
HiFi-Anlage. Es hat 2 Ausgänge für Lautsprecher, einen Mikrofon-Eingang, unterstützt 5 Bedientasten zur Wiedergabesteuerung (am Smartphone)
und eine Ladeschaltung für Li-Ion Akkus.
Das Modul ist für den Betrieb mit Akkus oder Batterien vorbereitet, offensichtlich für Stand-alone Geräte gedacht die über USB geladen werden.
Damit vermeidet man auch eventuelle Brumm-Schleifen (beim Anschluss an eine HiFi-Anlage) die durch ein Netzteil hervorgerufen werden können.
Der Anschluss per Chinch an den Aux-in einer HiFi-Anlage ist leider nicht soo trivial. Die Lautsprecher-Ausgänge sind balanciert (2 Endstufen im
Gegentakt). Um potentialfrei auf Chinch zu kommen ist eigentlich noch ein Differenzverstärker-IC notwendig. Es geht notfalls aber auch single-ended.
Bei meinen Versuchen hat das Modul gut funktioniert. Allerdings muss man etwas experimentieren um Brummen und Rauschen zu minimieren. Die Hinweise in
den Beiträgen in den Links waren sehr hilfreich.
Zum Ändern der Konfiguration (z.B. um den Bluetooth-Namen zu ändern) gibt es ein Tool:
https://www.instructables.com/id/XSOVC3868-Configuration/
oder
http://www.etechpath.com/how-to-program-xs3868-audio-bluetooth-module-using-usb-ttl-module/
Ein UART-Adapter wird dafür benötigt und an Tx/Rx angeschlossen. Das Tool funktioniert nur an COM1! Der Adapter muss daher vorher auf diesen Port
umkonfiguriert werden.
Ein paar weitere Links (teilweise wird ein sehr ähnliches Modul verwendet):
https://www.eevblog.com/forum/beginners/bluetooth-audio-someone/
http://waihung.net/bluetooth-audio-mod-on-car-cassette-player/
https://www.electrodragon.com/w/images/6/60/PKB_schematic.jpg
https://www.electrodragon.com/w/PKB