Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

„Ich glaube, es ist verlockend, wenn das einzige Werkzeug, das man hat, ein Hammer ist, alles zu behandeln, als ob es ein Nagel wäre.“
Abraham H. Maslow, Psychologie des Seins: Ein Entwurf (1962)

Der Ausdruck „Wenn das einzige, was man hat, ein Hammer ist, sieht alles wie ein Nagel aus“, wird oft dem Psychologen Abraham Maslow (bekannt aufgrund seiner „Bedürfnishierarchie“) zugeschrieben, obwohl sich das alte englische Sprichwort viel weiter zurückverfolgen lässt. Dieses Sprichwort dient nicht nur als Erinnerung, die eigene Voreingenommenheit in Frage zu stellen, wenn man ein Problem angeht, sondern man sollte es auch berücksichtigen, wenn man nach seinem bevorzugten Einplatinencomputer (Single Board Computer, SBC) greift, um ein neues Projekt zu beginnen. Ist dieser SBC wirklich das richtige Werkzeug für das, was Ihnen vorschwebt?

In vielen Fällen ist ein SBC die richtige Wahl: er ist kostengünstig und einfach zu programmieren, wodurch es möglich ist, schnell ein paar Teile miteinander zu verdrahten, um eine Idee zu testen. Aber was, wenn man eine dauerhaftere Lösung bevorzugt, oder sogar darüber nachdenkt, ein Projekt zu vermarkten?

In diesem Fall sollte man eine integrierte Entwicklerplatine in Betracht ziehen, um die Machbarkeit der Anwendung sicherzustellen. Alle führenden IT-Hersteller bieten Entwicklerplatinen für Ihre Mikrocontroller an. Diese Entwicklerkits sind allesamt sehr vielseitig und dabei kostengünstig. Die Auswahl der Platine erfolgt also normalerweise aufgrund der angebotenen Technologien (man kann z. B. der Meinung sein, dass Cypress Semiconductor die beste kapazitive Sensortechnologie besitzt) und aufgrund der persönlichen Vorliebe in Bezug auf die Entwicklungsumgebung(en) des Boards. Ist die Herstellung eines kommerziellen Produkts beabsichtigt, werden auch die Stückkosten des Ein-Chip-Systems (SoC), auf dessen Basis die Entwicklerplatine gebaut wird, berücksichtigt.

Wenn man in Erwägung zieht, ein neues Projekt zu beginnen, für das ein integriertes SoC ideal geeignet ist, wird das Cypress PSoC 6 WiFi Pioneer Kit (175-4669) als mögliche Entwicklerplatine zur Wahl stehen.

.

Cypress PSoC 6 WiFi-BT Pioneer Kit

Das PSoC 6 ist ein energiesparendes, programmierbares, integriertes Ein-Chip-System, das speziell für die Entwicklung von IoT- und Wearable-Produkten geeignet ist. Es verfügt über einen 100 MHz ARM Cortex CM0+, der für den Betrieb mit sehr geringem Stromverbrauch eingesetzt werden kann und einen leistungsfähigeren 150 MHz ARM Cortex M4 Koprozessor aktiviert, wenn eine höhere Leistung erforderlich ist.

Beim Pioneer Kit ist das PSoC 6 auf eine Platine gesetzt, die dem Benutzer (unter Verwendung der On-Board-Programmiererhardware KitProg2) Zugriff auf alle internen Funktionen gewährt und eine Reihe von nützlichen externen Funktionen bietet, darunter:

  • Benutzer-LEDs (selbstverständlich!)
  • Kapazitiver Schieberegler, Schaltflächen und Näherungssensor-Stiftleiste
  • Modul mit 4-GHz-WLAN und Bluetooth
  • 4-Zoll-TFT-Anzeige
  • Bewegungssensor
  • Umgebungslichtsensor
  • 32-Bit-Audiocodec
  • PDM-Mikrofon
  • Stiftleisten kompatibel mit Arduino 3,3-V-Abschirmungen und Digilent Pmods

Das Kit enthält außerdem ein USB-Kabel (Typ A auf Typ C) für die Stromversorgung und das Hochladen von Programmen, sowie vier 4-Zoll-Drahtsteckbrücken und zwei 5-Zoll-Näherungssensordrähte.

Programmierung

An diesem Punkt wird die Begeisterung normalerweise gedämpft, weil viele Angst haben, an der Programmierung der MCU zu scheitern. Ist das schwierig? Muss man die komplexen Mysterien der MCU verstehen?

Um es klar zu sagen: Es wird eine Lernkurve geben, bis Sie ihr PSoC 6 im Schlaf programmieren können, da es eine unglaubliche Vielfalt an Merkmalen beinhaltet. Wenn Sie jedoch bereits eine Verbindung zu den GPIO-Stiften Ihres SBC hergestellt haben und aussagekräftige Ergebnisse erzielen, werden Sie auch die Ein- und Ausgabe und die Hauptfunktionen der meisten MCUs problemlos erlernen.

Sie werden sich mit dem Integrated Development Environment (IDE) des PSoC Creator vertraut machen müssen, und wenn Sie WLAN verwenden möchten, auch mit dem auf Eclipse basierenden IDE von WICED Studio. Außerdem müssen Sie mit der Programmiersprache C vertraut sein, aber Sie werden nicht im Stich gelassen: Cypress bietet eine große Anzahl Video-Tutorials, Beispielprogramme, guten Support und eine sehr lebendige Community, die mit Fragen gelöchert werden kann.

Erste Schritte

Als Erstes muss das PSoC 6 mit dem WLAN verbunden werden. Zur Vereinfachung des Vorgangs wird die Platine wird mit einem vorinstallierten Programm geliefert, welches die Platine als WLAN-Access Point mit einer SSID für „WICED Config“ einrichtet:

second_435d374bd6229d9f2757b407d95af1bde6a52819.jpg

Auf einem Windows-PC klicken Sie auf das WLAN-Verbindungssymbol auf der Taskleiste (in der Regel zwischen den Symbolen für Batteriestandsanzeige und Tonlautstärke) und wählen Sie die Verbindung namens „WICED Config“ aus. Auf Ihrem Smartphone navigieren Sie zu Einstellungen -> WLAN und wählen dort das Netzwerk „WICED Config“. Das Passwort lautet „12345678“.

Sobald eine Verbindung besteht, können Sie einen Webbrowser öffnen und „http://192.168.0.1“ in die Adressleiste eingeben. Damit gelangen Sie auf eine einfache Seite, auf der Sie die Details für Ihren eigenen Netzwerk-Hub auswählen und ausfüllen können:

enter2_0ca8c173c0abc95d13a47614df554ac19ab19248.jpg

Wenn die Platine mit Ihrem Netzwerk verbunden ist, startet sie einen HTTP-Server und synchronisiert dann mit einem Zeitserver. Der TFT-Bildschirm zeigt die aktuellen Einstellungen für das PWM-Tastverhältnis und die Ausgangsspannung des Lichtsensors an. Das PWM-Tastverhältnis kann mit dem CapSense-Schieberegler erhöht/verringert werden, während die Helligkeit von LED5 mithilfe der CapSense-Schaltflächen geändert werden kann.

light_334fcdc05bb79aaf08a028d9c2ba8f0444e3b6c4.jpg

Zurück zu dem Gerät, mit dem die Verbindung zum WLAN-Hotspot des PSoC 6 hergestellt wurde. Hier geben Sie (auf Ihrem eigenen Netzwerk) die auf dem TFT-Bildschirm angezeigte Adresse in die Browserleiste ein. Damit gelangen Sie zu einer übersichtlichen Webseite, auf der Sie die Zeit, das Datum, die Lichtsensorspannung und das PWM-Tastverhältnis ablesen können.

IMG_14962_eeb4a8b661838c4e66367d5412fa3a103a47bb99.png

Das Tolle an diesem einfachen Provisioning-System ist, dass man den Quellcode zusammen mit einigen zusätzlichen Funktionen erhält, wie zum Beispiel CE222494. Diesen Quellcode kann man praktisch übernehmen, um in kürzester Zeit das eigene Projekt zum Laufen zu bringen. Gleichzeitig lernt man damit, wie man Sensoren und CapSense ausliest, auf den TFT-Bildschirm schreibt, das WLAN auf unterschiedliche Arten verwendet und alles, was man sonst noch benötigt, um alle diese Elemente zusammenwirken zu lassen.

Beispiele

Wenn wir schon bei Beispielsoftware sind: es ist erforderlich, die WICED Studio IDE herunterzuladen und zu installieren, um das Maximum herauszuholen. Alle Software und Dokumente, die Sie benötigen, finden Sie hier auf der Website von Cypress.

Im Lieferumfang von WICED Studio befindet sich ein gängiges Windows-Installationsprogramm (zusätzlich bietet das Dokument „PSoC 6 WiFi-BT Pioneer Kit Guide“ Anweisungen im PDF-Format), weshalb ich die Installationsschritte hier nicht einzeln erläutere. Stattdessen werfen wir einen Blick auf das Beispielprogramm, das dazu dient, sich mit der WICED IDE vertraut zu machen.

Bevor wir beginnen, das erste Programm anzulegen und zu laden, seien noch drei Vorbehalte erwähnt:

  1. Wenn Sie WICED Studio 6.1 verwenden, sollten Sie diesen Fix für ein bekanntes Problem bei der Implementierung von OpenOCD anwenden. Sollten Sie eine spätere Version verwenden, benötigen Sie den Fix wahrscheinlich nicht.
  2. Schließen Sie das im Lieferumfang enthaltene USB-Kabel an den rechten USB-C-Anschluss an. Beide USB-Anschlüsse versorgen die Platine mit Strom, aber zum Programmieren wird der Anschluss auf der rechten Seite der Platine verwendet (J10) – nicht derjenige oben neben dem Standard-USB-A-Anschluss (J28).
  3. Stellen Sie sicher, dass die LED2 ausgeschaltet ist. Wenn sie eingeschaltet ist, befinden Sie sich im Modus „KitProg“, mit dem Sie mit der Software PSoC Programmer Debugging auf niedriger Ebene für Dinge wie beispielsweise den Flash-Speicher durchführen können. Das ist jedoch bei der Verwendung von WICED Studio unerwünscht. Durch drücken von SW3 wird das Kit in den gewünschten Modus „CMSIS_DAP“ versetzt und die LED2 wird ausgeschaltet.

Sobald alle Einstellungen stimmen, kann man, um das erste Programm zu schreiben, die Anweisungen im PSoC 6 WiFi-BT Pioneer Kit Guide befolgen.

Als erstes wird WICED Studio gestartet. Man findet es über die Schaltfläche Windows Start, unter Start > Alle Programme > Cypress WICED-Studio.

wiced_stdio_example1_18f814094bbfae122cd93ff29d23cd380b6b9911.jpg

Wählen Sie im Dropdown-Menü „Target Selector“ (Zielauswahl) die Option 43xxx_Wi-Fi.

Wir legen das Beispiel „Scan“ an, das nach WLAN-Zugangspunkten sucht und eine Liste der Ergebnisse auf einem über USB angeschlossenen Terminal ausdruckt. Um diese Anwendung anzulegen und auszuführen muss ein Makefile erstellt werden, das dem Compiler und dem Linker sagt, wie die Anwendung angelegt und was damit gemacht werden soll. Glücklicherweise kann dies durch Hinzufügen einer Anweisungszeile im Fenster „Make Target“ (Ziel erstellen) leicht gemacht werden.

Als Erstes gibt man einen Zielpfad an: Dies ermöglicht es dem Compiler, den Code zu finden. Alle Anwendungen in WICED Studio müssen im Verzeichnis /apps gespeichert werden. Das bedeutet, dass der Zielpfad die gesamte Hierarchie an Unterverzeichnissen unter dem Verzeichnis /apps enthalten muss, bis hin zum Speicherort der Anwendung. Unser Beispiel befindet sich im Verzeichnis apps/snip/scan und das Makefile verwendet den Punkt (.) als Trennzeichen. Folglich wird der Ort wie folgt angegeben:

snip.scan

Als nächstes wird der Name der Plattform nach einem Bindestrich angegeben – damit der Compiler weiß, für welchen Mikrocontroller der Code kompiliert wird:

snip.scan-CY8CKIT_062

Danach muss der Software gesagt werden, was mit der Anwendung geschehen soll, nachdem sie angelegt wurde. Für das Beispiel „Scan“ werden jegliche Ressourcen der Anwendung in den Flash-Speicher geladen, die Anwendung selbst wird heruntergeladen und das PSoC 6 zurückgesetzt, damit es die Anwendung ausführen kann:

snip.scan-CY8CKIT_062 download_apps download run

Dies ist die vollständige Zeile, die im Fenster „Make Target“ hinzugefügt wird. Dies geschieht durch einen Rechtsklick auf 43xxx_Wi-Fi im Fenster „Make Target“ und einen Klick auf „New...“ (Neu...) im angezeigten Menü:

new_make1_1bb4c3dc2522fabef2343f2b40a88978bfe6b78c.jpg

Anschließend kann die erstellte Makefile-Information im Feld „Target Name“ (Zielname) eingefügt werden:

make_target1_8b903c099ac828d26e9321f46d147417959e6fee.jpg

Diese wird zu einer Liste mit bereits vorhandenen Makefiles hinzugefügt. Bevor das Projekt erstellt wird, sollte auf „Clean Make Target“ (Ziel erstellen leeren) doppelgeklickt werden (alternativ mit der rechten Maustaste auf „Clean Make Target“ klicken und Build Target („Ziel anlegen“) auswählen). Dadurch werden die Zwischenstufen und die Ausgabe aus früheren Builds gelöscht, sodass unser Build sauber und von Grund auf neu kompiliert und verknüpft wird.

make_clean_sm_d813fb602ac3e8c6b1789c4eb19545dfea2f887b.jpg

Jetzt kann die Anwendung angelegt und geladen werden. Finden Sie „snip.scan-CY8CKIT_062 download_apps download run“ in der Liste „Make Targets“ und doppelklicken Sie darauf (oder klicken Sie mit der rechten Maustaste und wählen Sie Build Target):

make_build1_2d4c629e93c94963634ec9930b1bdd6e9f709938.jpg

Das Ressourcen-Dateisystem kann beim Download viel Zeit in Anspruch nehmen (ein paar Minuten), deshalb gilt: keine Panik, wenn sich eine Weile nichts zu tun scheint. Am Ende sollte die Benachrichtigung „Build Finished“ (Build abgeschlossen) erscheinen, die uns sagt, dass alles reibungslos funktioniert hat. Super!

build_console_sm_af0856ecc9605b97fb925711eb3fa9f61abb46ef.jpg

Um die Ausgabe des PSoC 6 zu sehen, benötigt man einen Terminal-Emulator wie Tera Term oder Putty. Es muss bekannt sein, mit welchem COM-Port der Emulator verbunden werden muss. Dies kann mit dem Geräte-Manager von Windows ermittelt werden („Geräte-Manager“ in das Suchfeld neben der Windows-Schaltfläche in Windows 10 eingeben, um ihn zu finden). Suchen Sie in der Liste nach den COM-Anschlüssen und klappen Sie diesen Eintrag aus:

dev_manager_e34227af9848101059b6cb2c625d07bf8873ff18.jpg

Jetzt weiß ich, dass ich COM5 verwende. Dies kann bei den Putty-Einstellungen angegeben werden:

putty_b44e8a48edb1e80af5ea2d4207283a08b1babc34.jpg

Stellen Sie sicher, dass Sie eine serielle Kommunikationssitzung ausführen. Diese Einstellungen können auch für die spätere Verwendung gespeichert werden:

putty2_bc1e1dffde9f562e878f3cb6652c6f4dd823766c.jpg

Beim Klick auf „Open“ (Öffnen) erscheint in etwa Folgendes:

scan_6eef99f51bf283c26ac2c25b57909cf159035e5c.jpg

Die Anwendung läuft nun ordnungsgemäß. Wenn man aber den Code debuggen will, kann man eine Debug-Version anlegen. Diese wird ohne die Optimierungen durch den Compiler erstellt, ermöglicht aber das Hinzufügen von Breakpoints im Code, an denen die Ausführung gestoppt werden kann. Dadurch ist es möglich, zu überprüfen, ob alle Variablen an dieser Stelle im Code den Erwartungen entsprechen. Diese Debug-Version kann wie folgt angelegt werden:

snip.scan-CY8CKIT_062-debug download_apps download

Anweisungen dazu, wie Sie den Code debuggen können, finden Sie im Kit User Guide.

Abschließende Worte

Hoffentlich konnte ich allen, die mit Arduino oder Raspberry Pi einigermaßen vertraut sind, zeigen, dass Mikrocontroller im Allgemeinen und das Cypress PSoC 6 Wi-Fi im Besonderen keine angsteinflößenden Geräte sind. Mit etwas Geduld in Bezug auf die unvermeidliche Lernkurve können Sie die leistungsstarken Ressourcen dieser Geräte für Ihre eigenen Projekte nutzen.

Mark completed his Electronic Engineering degree in 1991 and worked in real-time digital signal processing applications engineering for a number of years, before moving into technical marketing.