PSoC

Einige PSoC Beispiele

Bei PSoC (Programmable System on Chip) handelt es sich um 3 verschiedene 8 Bit und 32-bit Mikrocontrollerfamilien, die von der Firma Cypress Semiconductor hergestellt werden. Seit 2001 sind die ersten Produkte auf dem Markt erhältlich, seit 2010 gibt es den PSoC 3 und seit 2011 den auf einem Arm Cortex-M3 basierenden PSoC 5. Inzwischen sind alle 3 Familien ausgebaut worden und es gibt weit über 100 verschiedene PSoC-Bausteine. Neben dem von Cypress Semiconductor entwickelten „M8C“-Prozessorkern, kommen im PSoC 3 ein Einzelzyklus-8051 und im PSoC 5 ein Arm Cortex-M3 zum Einsatz. Diese Kerne kommen auch in vielen Varianten bei den USB-Controllern von Cypress Semiconductor zum Einsatz.

Die Stärke der PSoC gegenüber typischen Mikrocontrollern liegt darin, dass die individuell benötigten Ressourcen in der Peripherie entsprechend dem Bedarf erzeugt und angepasst werden können. So kann die Hardware des Controllers z. B. einfach von einer UART auf Pulsweitenmodulation, oder umgekehrt, umkonfiguriert werden. Dies gilt sowohl für digitale als auch für analoge Funktionen. Außerdem können die Ein/Ausgänge der Peripherals nahezu beliebig den Pins zugeordnet werden. Diese Flexibilität ermöglicht es Platinen zu fertigen ohne die endgültigen Spezifikationen zu haben.

Grundsätzliches

Die zwei Hauptbestandteile eines PSoC bestehen zunächst aus einem Standard Mikrocontroller mit dem Rechenwerk, Flash-Speicher, RAM, verschiedenen onChip-RC-Oszillatoren mit PLL, Watchdog, Spannungsreferenz, I/O-Ports und einigem mehr sowie bei neueren Modellen auch mit integrierten Peripherien wie I²C oder USB. Des Weiteren befinden sich auf den PSoC sogenannte digitale und analoge „Blöcke“, welche individuell vom Entwickler mit Peripheriefunktionen belegt werden können. Die PSoC werden mit Flash-Speicher von 2 bis 256 KByte, RAM-Speicher von 128 Byte bis 32 KByte, sowie in Chip-Gehäusen von 8 Pins bis 100 Pins angeboten.

Microcontroller Familien

Cypress hat bis heute fünf Familien des PSoC Microcontrollers entwickelt:

Die verschiedenen Familien sind dabei:

Speicheraufteilung

Die Speicheraufteilung ist nach der Harvard-Architektur ausgeführt, d. h. Programm- und Datenspeicher werden über getrennte Busse angesprochen.

Der Zugriff auf den Datenspeicher, das RAM, ist bei den PSoC 1 nur bis 256 Byte RAM direkt möglich, Zugriffe auf höhere Speicheradressen müssen über Banking erfolgen. PSoC 3 bietet zwischen 2–8 KB RAM / 16–64 KB Flash und PSoC 5 zwischen 16–64 KB RAM / 64–256 KB Flash.

Peripherie in den Blöcken

PSoC Blockschaltbild mit animierter Blockstruktur

Die ‚Blöcke‘ in den PSoC sind kleine, in sich getrennte, Arrays. Diese Arrays werden bei der Programmentwicklung vorkonfiguriert, können aber auch während des Betriebs andere Funktionen bekommen; dies ist leicht durch Ändern einiger Register vom Programm zu erledigen. Neben der Hauptunterscheidung Analog und Digital gibt es weitere kleine Unterscheidungsmerkmale.

Bei den CY8C20x34 hat man auf die Blöcke ganz verzichtet, hier ist nur noch die Möglichkeit der seriellen Kommunikation mittels I²C oder SPI in Hardware und die Anbindung von CapSense möglich.

CapSense

CY3212-CapSense Demoboard

Dies ist eine spezielle, neue Funktion bei mehreren Familien der PSoC. Unterstützt wird CapSense bei den Standard Micros CY8C21x34, den speziell dafür ausgelegten CY8C20x34 und bei den Micros mit USB, den CY8C24x94. Mit CapSense kann man auf einfache Weise Tasten, eindimensionale Schieberegler (Slider) oder zweidimensionale Eingabefelder (Touchpad) realisieren, dabei bestehen die Eingabeelemente aus reinen Leiterbahnflächen auf einer Platine, wobei keine weiteren Hardwareelemente, wie Kondensatoren oder ähnliches, benötigt werden. Der Entwickler wird hierbei durch einen ‚Wizard‘ im PSoC-Designer unterstützt. Auf der Platine kann dann, je nach Ausführung, auch noch eine Folie oder Glas angebracht werden, um den Anwender der Schaltung bzw. des Gerätes nicht mit der Platine direkt in Berührung zu bringen.

Programmentwicklung

ICE-Cube, Emulator

Um den Mikrocontroller in einer Anwendung einsetzen zu können, muss zuerst vom Entwickler ein Programm entwickelt werden. Die Programmentwicklung kann mittels Assembler oder einer Hochsprache, z. B. C geschehen. Bei den PSoC kommt in der Industrie heute zumeist C zum Einsatz, da der Programmcode später damit besser zu pflegen ist. Cypress stellt für die Entwicklung die kostenlose Software ‚PSoC-Designer‘ auf ihrer Homepage zur Verfügung, der Designer beinhaltet eine grafische Oberfläche zum Einbinden und Konfigurieren von den gewünschten Peripherie Modulen, den Assembler und einen C-Compiler. Mit dem ebenfalls von Cypress kostenlos erhältlichen PSoC-Express ist die Programmentwicklung auch komplett auf grafischer Ebene möglich, dies eignet sich besonders für die Abschätzung auf Machbarkeit, sogenannte Machbarkeitsstudien, oder auch für Neueinsteiger in der Elektronikentwicklung, die keine oder nur wenig Erfahrung mit Programmiersprachen haben.

Von Cypress ist ein kostenloser, in den PSoC-Designer integrierter, C-Compiler erhältlich, welcher von Image-Craft lizenziert wurde.
Zum Debuggen kann man auf den Emulator von Cypress, den ICE-Cube, zurückgreifen. Mit dem ICE-Cube kann man auch die Chips programmieren.
Dieser Vorgang wird auch als Brennen bezeichnet. Dies bedeutet, dass Informationen (z. B. ein kompiliertes Programm, auch Firmware genannt) auf dem internen Flash-Speicher des Bausteins gespeichert werden. Hierzu bieten die PSoC-Mikrocontroller eine serielle Programmier-Schnittstelle, die auch noch zur Übertragung des Maschinencode benutzt werden kann, wenn der Chip bereits in die Schaltung eingebaut wurde. Dieser Vorgang kann dann mit einem Programmiergerät, durchgeführt werden. Besonders günstige Programmiertools gibt es von Cypress unter der Bezeichnung ‚CY3210-MiniEval1‘ oder ‚CY3210-PSoCEval1‘.
Die kostenlose Software zur Programmierung von PSoC 3 und PSoC 5 bietet deutlich mehr Komfort, weil sie z. B. automatisches Routing macht, und das ist bei der höheren Komplexität der Chips sehr notwendig. Zum Debugging ist der GNU Dugger (GDB) in PSoC Creator integriert. Als Compiler kommen Keil für PSoC 3 und GNU für PSoC 5 zum Einsatz.

Literatur

Einzelnachweise

  1. ↑ https://www.electronicdesign.com/technologies/microcontrollers/article/21796262/custom-peripherals-surround-cortexm0-platform
  2. ↑ https://www.digikey.de/en/product-highlight/c/cypress/psoc-6-cy8ckit-062-pioneer-kit