Raspberry Pi Pico W mit Infineon CYW43438 Chip

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 FeaturesWi-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 FeaturesClass 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 FeaturesSDIO v2.0 Host Interface, gSPI host interface,
WPA2, SoftAP, GPIOs (5)
Betriebstemperaturvon -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)

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.