In diesem Beitrag möchte ich auf den CYW43438 Chip von Infineon eingehen, dieser ist auf dem neuen Raspberry Pi Pico W verbaut und gibt diesem die Möglichkeit, mit einem Wi-Fi Netzwerk zu kommunizieren.
Den neuen Raspberry Pi Pico W habe ich dir bereits im Beitrag Raspberry Pi Pico W mit Wi-Fi Support vorgestellt und mit dem Beitrag Raspberry Pi Pico W – Webserver programmieren ebenso ein erstes Beispiel gezeigt.
Hier soll es nun hauptsächlich um den verbauten Chip vom Typ CYW43438 des Herstellers Infineon gehen. Dieser Chip ist schon etwas länger auf dem Markt als der Pi Pico W. Daher ist dieser sehr gut dokumentiert.
Technische Daten des CYW43438 Chips
Hier nun zunächst die technischen Daten des CYW43438 Chips:
Wi-Fi Features | Wi-Fi 4 mit Spezifikation802.11n, Single-band im 2.4 GHz Bereich |
1×1 Single Input, Single Output (kurz SISO) | |
20 MHz Kanäle, mit bis zu 96 Mbps physische Datenrate | |
Integrierte interne PA, LNA und T/R-Switch unterstützen eine einzige Antenne, die von Wi-Fi und Bluetooth® gemeinsam genutzt wird | |
Bluetooth Features | Class 1 mit bis zu 100 m Reichweite, Class 2 mit bis zu 10 m Reichweite, Bluetooth Low Energy (BLE) 5.1, Unterstützt BDR (1Mbps), EDR (2/3Mbps) |
Allgemeine Features | SDIO v2.0 Host Interface, gSPI host interface, WPA2, SoftAP, GPIOs (5) |
Betriebstemperatur | von -30 °C bis zu +70 °C |
Der Chip ist vom Werk aus Bluetoothfähig, jedoch ist dieses bei der Variante auf dem Raspberry Pi Pico W Softwareseitig deaktiviert. Dieses könnte bedeuten, dass dieses Feature in der Zukunft mit einem Firmwareupdate ggf. noch aktiviert werden könnte.
Offizielle Dokumente zum CYW43438 Chip
Auf der Seite CYW43438 – Infineon Technologies findest du die offiziellen, englischen Dokumente zu dem Chip CYW43438.
Kleines Beispiel zum Programmieren des Wi-Fi Chips auf dem Raspberry Pi Pico W
Im bereits oben verlinkten Beitrag Raspberry Pi Pico W – Webserver programmieren habe ich dir gezeigt, wie du eine Wi-Fi-Verbindung aufbauen und eine Webseite mit Schaltflächen ausliefern kannst.
Den Code habe ich mir von der Seite How to run a webserver on Raspberry Pi Pico W und ein klein wenig modifiziert.
import network import socket from time import sleep ssid = '******' password = '******' wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, password) max_wait = 10 print('Warte auf Verbindung') while max_wait > 10: if wlan.status() < 0 or wlan.status() >= 3: break max_wait -= 1 sleep(1) status = None if wlan.status() != 3: raise RuntimeError('Aufbau der Verbindung fehlgeschlagen!') else: status = wlan.ifconfig() print('Verbindung zu', ssid,'erfolgreich aufgebaut!', sep=' ') print('IP-Adresse:' + status[0]) ipAddress = status[0] addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1] s = socket.socket() s.bind(addr) s.listen(1)