Erste Schritte mit PSoC®

AVR04 PSoC CY8CKIT 050 (Juni 2019).

$config[ads_text] not found
Anonim

Erste Schritte mit PSoC®


Einführung in PSoC®

PSoC® Programmable-System-on-Chip ist die programmierbare Design- und Testumgebung von Cypress Semiconductor für Embedded-Systeme. Die PSoC-Familie umfasst PSoC1, PSoC3, PSoC4 und PSoC5, die sich in ihren Fähigkeiten, Mikrocontrollern, der Menge und Art des verfügbaren Speichers und den Arten der enthaltenen Schnittstellen unterscheiden. Die PSoC-Umgebung enthält eine IDE zum Erstellen, Erstellen und Debuggen von Projekten, einen Programmierer zum Laden von Firmware und einen Emulator. Entwicklungskits für jede PSoC-Familie sind verfügbar und enthalten alles, um loszulegen. Tutorials, Projekte und Informationen sind in der Entwickler-Community, in Foren und im Support-Team von Cypress Semiconductor erhältlich. Ein Dankeschön geht an das PSoC-Marketingteam von Cypress Semiconductor für ihre Unterstützung.

Erforderlich für dieses Projekt:

  • PSoC4 BlueTooth Low Energy (BLE) Entwicklungskit. Jedes PSoC-Kit mit einer LED kann mit entsprechenden Änderungen für die individuelle Komponentenauswahl und Pinbelegung verwendet werden. Eine CR2032 Lithium-Ionen 3V, 250mAh Knopfzelle ist im Lieferumfang enthalten, die auf der Platine installiert wird, um portable Vdd-Stromversorgung bereitzustellen. Cypress Semiconductor empfiehlt, die Batterie bei Nichtgebrauch zu entfernen.
  • Windows-basierter PC, der die Entwicklungsumgebung mit einem Standard-USB-Anschluss unterstützen kann.
  • PSoC Creator 3.2, die IDE zum Entwickeln, Programmieren und Debuggen der PSoC4.
  • Kenntnisse der Programmiersprache c sind hilfreich

Der PSoC Creator ist als kostenloser Download von der Cypress Semiconductor-Website verfügbar, nachdem er ein Konto erstellt hat. Der PSoC Programmer ist auch als separater Download verfügbar, wenn Sie eine andere IDE verwenden. Es gibt auch einen Emulator, CySmart für Windows PCs, sowie für Android Mobile und iOS Mobile Apps

Eingebettete Systeme zu PSoC

Ein eingebettetes System ist Teil eines größeren Systems, das normalerweise die Steuerungs- und Schnittstellenfunktionen bereitstellt. Ein eingebettetes System kann einen Prozessor, Speicher, Datenspeicher, Signalkonditionierung, Anzeigen und Steuerungen enthalten. Das eingebettete System "lebt" innerhalb der Hardware, und seine Funktionen sind nur für Benutzer über bestimmte Schnittstellen wie Schalter oder Knöpfe verfügbar, wenn überhaupt Benutzersteuerelemente vorhanden sind. Das eingebettete System bestand ursprünglich aus diskreten Komponenten auf gedruckten Leiterplatten (PCBs).

Mit der Verbesserung der Fertigungs- und Chiptechnologie könnten einige Komponenten eines eingebetteten Systems auf einem einzigen Chip platziert werden, der als eine einzelne integrierte Schaltung (IC) hergestellt wird. Dies reduziert den Platzbedarf; Datenbewegung war schneller und es ermöglichte kleinere Geräte. Anwendungen, bei denen sich das gesamte System auf einem IC befindet, werden als System-on-Chip (SoC) bezeichnet.

Cypress Semiconductor nahm die Idee hinter programmierbaren Logik- und FPGAs (Field Programmable Gate Arrays) auf und entwickelte ein SoC, in dem bestimmte Elemente programmierbar waren, und führte 2002 das programmierbare System-on-Chip (PSoC®) ein. Mit derselben Platine können unterschiedliche Anwendungen realisiert werden entwickelt mit Hardware- und Softwarekomponenten. Die PSoC-IDE bietet Entwicklern die Möglichkeit, Hardwarekomponenten auszuwählen und zu konfigurieren, erforderliche Software zu kompilieren und zu steuern sowie Projekte aus einem Fenster zu programmieren und zu testen. Durch die Verknüpfung in Datenblättern stehen den Entwicklern bei Bedarf Komponenteninformationen zur Verfügung, die eine leistungsfähige Entwicklungsumgebung bieten.

PSoC Grundlagen

Die grundlegenden Schritte zum Programmieren einer PSoC sind:

Erstellen Sie Ihr Projekt / Programm mit der PSoC IDE. Dies ist ein mehrstufiger Prozess, ähnlich wie einige visuelle Programmiersprachen es Ihnen ermöglichen, GUI-Komponenten auszuwählen und sie so zu programmieren, dass sie auf verschiedene Ereignisse reagieren. Mit der PSoC-IDE können Sie Komponenten aus der Komponentenbibliothek auswählen, sie entsprechend Ihren Anforderungen konfigurieren, Hardwareverbindungen zwischen den Pins des Mikrocontrollers und Ihren Komponenten einrichten und dann bei Bedarf Software schreiben, um verschiedene Ereignisse zu steuern oder darauf zu reagieren. Der PSoC Creator zeigt Indexregisterkarten für das TopDesign, in dem Sie Komponenten auswählen und konfigurieren, die designübergreifende Ressource, in der Sie die Anschlüsse für den Mikrocontroller-Port / Pin einrichten, und die main.c-Datei, in der der ursprüngliche Code beginnt. Der Code kann so einfach wie die in main.c angegebenen Standardwerte für mehrere * .c-Dateien sein, um Firmware für ein komplexes System zu erzeugen.

Erstellen Sie das Projekt. Durch das Erstellen des Projekts wird eine ladbare Zielhex-Datei erstellt, entweder in einer Release- oder einer Debug-Version für ein bestimmtes Gerät. Der Build kompiliert die einzelnen Dateien, erzeugt Objektdateien (* .o Dateien) und listet Dateien auf. Die .o-Dateien werden kombiniert, um eine .ELF-Datei (ausführbare und verknüpfbare Datei) und schließlich eine .hex-Datei zu erstellen, die die Firmware enthält, die auf das Zielgerät migriert werden soll. Während des Builds werden mehrere Softwarekomponenten automatisch von PSoC generiert. Debug-Versionen enthalten zusätzliche Kontroll-Hooks, mit denen das Programm unter Debugger-Kontrolle ausgeführt werden kann. Eine Release-Version enthält keine zusätzlichen Steuerelemente und die Ausführung kann sofort beginnen.

Programmieren Sie die PSoC. Mit dem mitgelieferten USB-Kabel wird die .hex-Datei in den PSoC-Speicher geladen. Die Programmierung des Mikrocontrollers löscht das vorherige Programm und programmiert den Speicher mit der neuen .hex-Datei neu. Wenn er erfolgreich geladen ist, steuert der Mikrocontroller die Ausführung des Programms. Je nach System und Umgebung kann das Programm sofort ausgeführt werden. Debug-Versionen müssen manuell gestartet werden. Wenn der Akku einmal installiert ist, kann der PSoC vom PC getrennt werden und läuft weiter.

Die Projekte

Das PSoC4-BLE-Kit enthält einen ARM Cortex-M0-Mikrocontroller, einen integrierten Kapazitätssensor (CSD) und BLE-Technologie. Das Blockdiagramm von Cypress Semiconductor zeigt die Subsysteme:

Clocks, Timer, analoge und digitale konfigurierbare Elemente und GPIO-Pins (General Purpose I / O) sind enthalten. Application Programming Interfaces (APIs) für jede Komponente ermöglichen Softwarezugriff und -steuerung. Die APIs sind im Datenblatt aufgeführt, das im Komponentenkonfigurationsfenster verfügbar ist. Dieses Projekt verwendet die Pin-, LED-, Takt- und PWM-Komponenten.

Projektideen sind endlos, aber um zu beginnen und die Flexibilität von PSoC einzuführen, wird folgendes behandelt:

1. Ein Nur-Hardware-Projekt, um die Onboard-LED zu beleuchten; es erfordert keine zusätzliche Software.
2. Ein Hardwaresteuerungsprojekt zum Blinken der integrierten LED; Software wird benötigt, um die Hardwarekomponenten zu aktivieren, aber die LED blinkt unter Hardware-Kontrolle.
3. Ein Softwaresteuerungsprojekt zum Blinken der Onboard-LED unter Steuerung eines Softwareprogramms.

1. Zünden Sie die integrierte LED an

Bei diesem ersten Projekt wird der PSoC die rote Onboard-LED anzünden. Es verwendet die Schaltung, die in der PSoC vorgesehen ist: die rote LED-Kathode ist mit P2 (6) mit einer Kupferspur verbunden, so dass alle Verbindungen auf der Platine vorgesehen sind.

HINWEIS: Jedes PSoC-Gerät verfügt über verschiedene LED-Port-Zuweisungen. Die roten, grünen, blauen (RGB) LEDs haben für jede Farbe unterschiedliche Anschlüsse. Informationen zu den entsprechenden Anschlüssen finden Sie im Schaltplan Ihres Kits. Die LED-Anschlüsse werden auch über den Siebdruck auf der Rückseite der Leiterplatte angezeigt. Beim PSoC4-BLE ist die rote LED P2 (6); Grün ist P3 (6) und Blau ist P3 (7).

Öffne den PSoC Creator und beginne ein neues Projekt:

Wählen Sie den Standard für Ihre PSoC. Hier wird PSoC4 BLE mit einem leeren Schaltplan ausgewählt.

Dies öffnet die Registerkarte TopDesign mit einem leeren Schaltplan. Auf der rechten Seite enthält die Komponentenbibliothek Cypress- und Off-Chip-Registerkarten zur Auswahl von Komponenten.

Der PSoC Creator zeigt alle Aspekte Ihres Projekts an und Sie können Ansichten über die Symbolleiste Ansicht-Registerkarte auswählen. Der Arbeitsbereich-Explorer enthält Registerkarten für Quelle, Komponenten, Datenblätter und Ergebnisse. Die Registerkarte Ergebnisse enthält die Listen-, ELF-, Hex- und Map-Dateien, die sich aus dem Build ergeben. Die Komponentenbibliothek zeigt verfügbare Komponenten an. Der Code Explorer zeigt die Dateien und Funktionen an.

Wählen Sie Ihr Zielgerät mit Projekt-> Geräteauswahl.

Wenn Sie die Standardgeräteauswahl vergessen und verwenden, erhalten Sie eine Fehlermeldung, wenn Sie versuchen, Ihr Gerät zu programmieren. Sie können einfach das richtige Gerät auswählen und das Projekt neu erstellen.

Eine einfache Schaltung, um eine LED zu beleuchten, kann die LED, die Stromquelle und den Strombegrenzungswiderstand in Reihe zu Masse einschließen, wie gezeigt:

Um diese Schaltung mit dem PSoC4-BLE zu erstellen, wählen Sie auf der Registerkarte TopDesign eine Komponente für den Digital Output Pin und ziehen Sie sie in den Schaltplan.

Der Pin wird durch Klicken auf das Bild konfiguriert, um das Konfigurationsfenster zu öffnen. Eine HW-Verbindung ist die Standardeinstellung. Sie können das externe Terminal auswählen, um das Terminal anzuzeigen und andere Aspekte des Pins zu konfigurieren. Alle Komponenten können in ihrem Konfigurationsfenster umbenannt werden. Sobald sie umbenannt wurden, spiegeln APIs für die Komponente den ausgewählten Namen wider.

Der Pin stellt eine Verbindung für den Mikrocontroller dar; Es muss über die Registerkarte Design-Wide-Ressourcen verbunden werden. Durch Klicken auf die * .cydwr-Datei in der Projektnavigation wird die Registerkarte "Design Wide Resource" mit den Pinbelegungen des Mikrocontrollers geöffnet.

Verbinden Sie für den PSoC4 Pin_1 mit Port: P2 (6) Pin 43 für die rote LED.

Um die Schaltung zu vervollständigen, wird auf der Registerkarte TopDesign ein logisches Low, 0, mit dem Pin verbunden.

Cypress- und Off-Board-Komponentenauswahl

Nachstehend sind zwei Schaltungsdarstellungen für die LED-Schaltung gezeigt: eine zeigt einen einzigen Stift; eines mit zusätzlichen Komponenten aus der "Off-Chip" -Bibliotheksauswahl. Diese sind identisch mit dem PSoC Creator, aber man ist viel einfacher zu verstehen!

Die schematische Darstellung von Vdd, 10K Widerstand R_1 und LED D_1 sind nur "visuelle Hilfsmittel", das sind sie
1) verfügbar auf der Registerkarte Off-Chip-Bibliothekskomponente
2) blau dargestellt

Diese werden in der PSoC-Programmierung nicht berücksichtigt; Alle Komponenten in blau werden nicht verwendet, wenn der Build aufgerufen wird. Blaue Komponenten können anderen Ingenieuren helfen, die Schaltung zu verstehen, aber sie werden nicht zum Erstellen des Projekts verwendet. Bei beiden Darstellungen muss die Pin-Komponente mit P2 (6) für die rote LED-Schaltung PSoC4_BLE verbunden werden. Die LED-Schaltung wird über den Siebdruck auf der Rückseite der Leiterplatte angezeigt. Alle Komponenten können zur besseren Übersicht umbenannt werden:

In main.c wird keine zusätzliche Software benötigt, die die LED-Schaltung vervollständigt.

Erstellen Sie das Projekt mit der Registerkarte Erstellen oder dem Symbol Erstellen (ganz links). Sie können eine Debug- oder Release-Version auswählen.

Das Ausgabefenster zeigt die Build-Ergebnisse. Bei einem erfolgreichen Build wird eine .hex-Datei erstellt und die Anzahl der verwendeten Flash- und SRAM-Dateien sowie der verfügbare Stack und Heap angezeigt. Als Ergebnis des Builds zeigt ein Zweig "Generated_Source" in der Projektnavigation enthaltene Dateien an. Die Listendateien und die .hex-Datei befinden sich auf der Registerkarte Ergebnisse.

Alle Fehler werden den Build stoppen; Nachrichten, die das Problem identifizieren, werden angezeigt.

Um die PSoC mit der neu erstellten Firmware zu programmieren, verbinden Sie die PSoC-Karte über das USB-Kabel mit dem PC.

Laden Sie das Programm mit Hilfe der Debug-> Programmauswahl oder Programm-Icon (ganz links)

Die verfügbaren Ziele werden angezeigt … Wählen Sie die PSoC 4200 BLE.

Der Programmierstatus wird auch im Ausgabefenster angegeben:

Wenn programmiert, leuchtet die rote LED am PSoC.

2. Blinken Sie die integrierte LED mit einem Pulsweitenmodulator (PWM)

Ein PWM erzeugt ein pulsierendes Signal, das die an elektrische Geräte gelieferte Energie steuern kann. Die PSoC-Komponentenbibliothek enthält eine PWM, die die LED vom Zeilenausgang aus steuern kann. Ein Clock-Eingang bietet Timing. Es wird der gleiche Pin-Anschluss verwendet, wie zuvor mit dem HW-Anschluss-Set an P2 (6) angeschlossen.

Die PWM ist konfigurierbar; Ein Klick auf das Bild öffnet das Konfigurationsfenster:

Das Datenblatt enthält Informationen zur Komponente:

Die PWM und die Uhr sind Systemkomponenten, die in Software gestartet werden müssen. Die Beschreibung der PWM_Start API lautet:

void PWM_Start (void) Beschreibung: Diese Funktion soll den Betrieb der Komponente starten. PWM_Start () setzt die Variable initVar, ruft die Funktion PWM_Init auf und ruft dann die Funktion PWM_Enable auf. Parameter: Keine Rückgabewert: Keine Nebeneffekte: Legt das Aktivierungsbit in den Steuerregistern der PWM fest. Wenn der Aktivierungsmodus auf Nur Hardware eingestellt ist, hat dies keine Auswirkungen auf die PWM. Wenn der Aktivierungsmodus auf Hardware und Software eingestellt ist, aktiviert dies nur den Software-Teil dieses Modus und der Hardware-Eingang muss ebenfalls aktiviert werden, um die PWM endgültig zu aktivieren.

In main.c müssen folgende Funktionen enthalten sein, um die Taktung zu starten:

Uhr_Start ();
PWM_Start ();

Sie werden im Abschnitt initialization / startup code in main.c platziert:

Erstellen Sie das Projekt und programmieren Sie die PSoC. Nach dem Start steuert die PWM die LED. Debug-Versionen erfordern, dass das Programm manuell gestartet wird, da Debug-Versionen die Programmsteuerung auf main.c starten. Die rote LED blinkt wie konfiguriert.

Versuchen Sie, den Blinkzyklus zu ändern, indem Sie die PWM und die Uhr neu konfigurieren.

3. Blinken Sie die integrierte LED mit Software Control

Softwarefunktionen sind verfügbar, um direkt auf Pin-Positionen zuzugreifen. Das Datenblatt der Pin-Komponente listet die verfügbaren APIs auf, einschließlich:

Pin_Read () Liest den physikalischen Port und gibt den aktuellen Wert für alle Pins in der Komponente zurück

Pin_Write () Schreibt den Wert auf die Komponenten-Pins, während andere Pins im physischen Port geschützt werden, wenn sie von mehreren Pins-Komponenten gemeinsam genutzt werden

Pin_1_Write () steuert direkt die rote LED. Schreiben einer 1, um die LED zu aktivieren; 0, um es auszuschalten. Da der ARM so schnell ist, ist eine Systemverzögerung unter Verwendung der Verzögerungs-API CyDelay (500) enthalten; also ist das Blinken sichtbar.

Auf der Registerkarte TopDesign sieht die Schaltung gleich aus, aber der Pin ist nun für Software konfiguriert, indem die HW-Verbindung in der Konfiguration deaktiviert wird. Auf der Registerkarte "Design Wide Resource" wird der Pin wieder mit der roten LED P2 (6) verbunden.

Die Write / Read-Funktionen und die Verzögerung werden innerhalb der for-Schleife zu main.c hinzugefügt. Nach jeder Initialisierung wird der Code innerhalb der for (;;) -Schleife kontinuierlich ausgeführt. Ein einfaches Blinkprogramm kann den inversen Wert der aktuellen LED-Anzeige in die LED schreiben, eine halbe Sekunde verzögern und dann den umgekehrten Wert schreiben:

Das Programm kann komplexer sein und globale Werte zur Verwendung in den Lese- und Schreibfunktionen erstellen.

Wenn Software enthalten ist, ist die Debug-Funktion von PSoC Creator nützlich, um die Programmausführung zu überprüfen. Erstellen Sie mit Debuggen ausgewählt, und verwenden Sie dann die Debug-Registerkarte oder das Symbol (ganz links im Bild), um den Debugger zu starten.

Der Debugger ermöglicht das Setzen von Breakpoints durch Anklicken der Auszugsränder:

Verwenden Sie im Debugger die Debug-Steuerelemente, um die Ausführung fortzusetzen, anzuhalten und zu stoppen, in Funktionen hinein- oder hinauszugehen und alle Haltepunkte und Interrupts zu aktivieren / deaktivieren:

Im Debug-Modus können Sie auch lokale Variablen, Register und Speicher anzeigen, indem Sie die Anzeige auf den Registerkarten am unteren Bildschirmrand auswählen.

Hinweis: Wenn nicht alle Variablen in Ihrem Programm in der lokalen Anzeige angezeigt werden, optimiert der Compiler möglicherweise den Code. Wenn es feststellt, dass eine Variable nicht verwendet wird, kann sie keinen Speicherplatz dafür reservieren.

Verwenden Sie die Tabs Register und Speicher 1, um die Anzeigen anzuzeigen:

Das Ausführen des Programms mit Breakpoints on schaltet die LED ein und aus, wenn die Breakpoints getroffen werden, und die Ausführung wird fortgesetzt. Durch Entfernen der Haltepunkte kann das Programm frei laufen und die rote LED blinkt.

Nach der Programmierung kann der PSoC mit installierter Batterie vom PC entfernt werden und das Programm wird weiterhin unter Mikroprozessorsteuerung ausgeführt; Die LED blinkt weiterhin wie gezeigt. Wenn die Batterie der Zelle entfernt wird, hört das Blinken auf, aber durch erneutes Einsetzen der Batterie wird die Ausführung erneut gestartet und die LED blinkt automatisch.

Versuchen Sie, alle LEDs zu verwenden, um die LEDs nacheinander zu blinken. Sie können komplexere Projekte erstellen, indem Sie Hardware- und Softwarekomponenten verwenden, um die PSoC-Umgebung zu erkunden. Neben dem Erlernen einzelner Komponenten ist PSoC eine hervorragende Möglichkeit, die Fähigkeiten und Systeme des Mikrocontrollers zu erlernen.

Zusammenfassung

PSoC ist ein leistungsfähiges Design- und Testwerkzeug für Embedded-Systeme. Hardwarekomponenten können programmiert werden, um Anforderungen zu entwerfen, Firmware kann getestet und Kompromisse erkundet werden. Die programmierbaren Aspekte des PSoC ermöglichen es den Entwicklern, Systemkomponenten zu modifizieren, ohne dass Boards für Design-Modifikationen erneuert werden müssen. Von sehr einfachen Projekten können Sie zu komplexen Schaltungsentwürfen aufbauen.

Gib diesem Projekt einen Versuch für dich selbst! Holen Sie sich die Stückliste.