[Xiaohei Embedded System Lektion 7] PSoC® 5LP-Entwicklungskit (CY8CKIT-050B) – Implementierung des PSoC® 5LP-Hauptchips, des I/O-Systems und der GPIO-Steuerung von LED-Lauflichtern

Vorherige Lektion:
[Xiaohei Embedded System Lektion 6] Grundlagen des Softwaredesigns eingebetteter Systeme – eine kurze Einführung in die C-Sprache, Programmspezifikationen, Multitask-Programmierung, Zustandsmaschinenmodellierung ( FSM), modulares Design, Ereignisauslösung, Zeitauslösung
Nächste Lektion:
[Xiaohei Embedded System Lektion 8] Anfänger verstehen PSoC Creator™-Entwicklung – Über PSoC Creator & ; Herunterladen, Projekte erstellen, Hallo Welt im Mikrocontroller (eine LED leuchten lassen)



Fügen Sie hier eine Bildbeschreibung ein


1. PSoC® 5LP-Hauptchip

  • PSoC 5LP ist ein echtes programmierbares eingebettetes System-on-Chip, das benutzerdefinierte analoge und digitale Peripheriefunktionen, Speicher und eine ARM Cortex-M3-CPU auf demselben Chip integriert.
    • Mit DMA-Controller mit bis zu 80 MHz, digitalem Filterprozessor und 32-Bit-ARM-Cortex-M3-Kern
    • Extrem niedriger Stromverbrauch und der größte Spannungsbereich der Branche
    • Mit benutzerdefinierbaren, programmierbaren digitalen und analogen Peripheriegeräten
    • Flexibles Routing aller analogen oder digitalen Peripheriegeräte an jeden Pin

Fügen Sie hier eine Bildbeschreibung ein


  • PSoC 5LP verfügt über umfangreiche Funktionen, darunter ein CPU- und Speichersubsystem, ein digitales Subsystem, ein analoges Subsystem und alle Systemressourcen.

Fügen Sie hier eine Bildbeschreibung ein


  • Leistung
    • Betriebsfrequenz von DC bis 80 MHz
    • 32-Bit-ARM-Cortex-M3-CPU, 32 Interrupts
    • 24-Kanal-DMA-Controller (Direct Memory Access).
    • 24-Bit-64-Tap-Digitalfilterprozessor (DFB)

  • Erinnerung
    • Die maximale Größe des Programm-Flash-Speichers beträgt 256 KB
    • Darüber hinaus stehen bis zu 32 KB Flash-Speicher für Fehlerkorrekturcode (ECC) zur Verfügung.
    • SRAM-Speicherplatz bis zu 64 KB
    • Die EEPROM-Kapazität beträgt 2 KB

  • digitales Subsystem
    • 4 16-Bit-Timer-, Zähler- und PWM-Module (TCPWM).
    • I2C mit einer Busgeschwindigkeit von 1 Mbit/s
    • Zertifiziertes Full-Speed ​​(FS) USB 2.0 mit 12 Mbit/s
    • Full-Speed-CAN-2.0b-Schnittstelle, 16 Rx-Puffer, 8 Tx-Puffer
    • 20 bis 24 Universal Digital Modules (UDB). Durch die Konfiguration des UDB-Moduls kann eine begrenzte Anzahl der folgenden Funktionsmodule erstellt werden:
      • 8-, 16-, 24- und 32-Bit-Timer, Zähler und PWM
      • I2C-, UART-, SPI-, I2S- und LIN 2.0-Schnittstellen
      • Zyklische Redundanzprüfung (CRC)
      • Generator für Pseudozufallssequenzen (PRS).
      • Orthogonaler Decoder
      • Schwellenwert-Logikfunktion

  • Simulationssubsystem
    • Konfigurierbarer Delta-Sigma-Analog-Digital-Wandler mit 8 bis 20 Bit Auflösung
    • Unterstützt bis zu zwei 12-Bit-SAR-Analog-Digital-Wandler (ADCs)
    • Vier 8-Bit-Analog-Analog-Wandler (DACs)
    • vier Komparatoren
    • Vier Operationsverstärker (Opamps)
    • Vier programmierbare Simulationsmodule zur Erstellung von:
      • Verstärker mit programmierbarer Verstärkung (PGA)
      • Transimpedanzverstärker (TIA)
      • Rührgerät
      • Sample-and-Hold-Schaltung (S/H).
      • CapSense®-Unterstützung, bis zu 62 Sensoren
      • 1,024 V ± 0,1 % interne Referenzspannung

  • Multifunktionales I/O-System
    • 46 bis 72 I/O-Pins – bis zu 62 Allzweck-I/O (GPIO)
    • Bis zu 8 Sonderfunktions-I/O-Pins (SIO).
      • 25 mA Senkenstrom
      • Programmierbare Eingangs-/Ausgangsspannungsschwellen
      • Kann als universeller analoger Spannungskomparator verwendet werden
      • Wärmeaustauschfähigkeit und Überspannungstoleranz
    • Zwei USBIO-Pins als GPIO verfügbar
    • Verbinden Sie jedes digitale oder analoge Peripheriegerät mit jedem GPIO
    • Jeder GPIO verfügt über eine LCD-Direkttreiberfunktion, die bis zu 46 × 16 Leitungen ansteuert
    • CapSense-Unterstützung ist auf jedem GPIO verfügbar
    • 1,2 V bis 5,5 V Schnittstellenspannung, bis zu 4 Spannungsbereiche

  • programmierbare Uhr
    • Der Frequenzbereich des internen Oszillators beträgt 3 bis 74 MHz mit einer Genauigkeit von 1 % bei 3 MHz
    • Frequenzbereich des externen Quarzoszillators: 4 bis 25 MHz
    • Interner PLL, der Takte bis zu 80 MHz erzeugen kann
    • Interner Oszillator mit geringem Stromverbrauch bei 1 kHz, 33 kHz und 100 kHz
    • Die Frequenz des externen Taktquarzes beträgt 32,768 kHz
    • 12 Taktteiler, die an jedes Peripheriegerät oder jeden I/O weitergeleitet werden können

2. PSoC 5LP I/O-System

(1) Eigenschaften des E/A-Systems

  • Das I/O-System stellt eine Schnittstelle zur Außenwelt für den CPU-Kern und die On-Chip-Peripheriegeräte bereit. Der I/O des PSoC ist sehr flexibel und kann (im Allgemeinen) jedes On-Chip-Signal mit jedem Pin verbinden, was das Schaltungsdesign und das Platinenlayout erheblich vereinfacht.

  • Jedes PSoC-Gerät verfügt über zwei Arten von I/O-Pins:General Purpose I/O (GPIO),. USBIO. Geräte mit USB-Funktionalität bieten auch eine dritte Kategorie von PinsSpezielle E/A (SIO)

  • GPIO und SIO bieten ähnliche digitale Funktionen, ihre Hauptunterschiede sind analoge Fähigkeiten und Fahrfähigkeiten. Geräte mit USB-Funktionalität bieten außerdem zwei USBIO-Pins zur Unterstützung spezieller USB-Funktionalität und einiger GPIO-Funktionalität.

Alle I/O-Pins können von der CPU und den digitalen Peripheriegeräten auf dem Chip als digitale Ein- und Ausgänge verwendet werden, und alle I/O-Pins können Interrupts erzeugen.

Alle GPIO-Pins können als Analogeingang, CapSense (kapazitive Erfassung) und LCD-Segmenttreiber verwendet werden.

Der SIO-Pin kann verwendet werden, um den Vdda-Spannungswert (die höchste Versorgungsspannung des Geräts) zu überschreiten und eine programmierbare Ausgangsspannung zu erzeugen oder eine programmierbare Eingangsschwellenspannung einzustellen.

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Strukturblockdiagramm eines GPIO-Pins:
Fügen Sie hier eine Bildbeschreibung ein
Strukturblockdiagramm eines SIO-Pins:

Fügen Sie hier eine Bildbeschreibung ein

Strukturelles Blockdiagramm eines USBIO-Pins:

Fügen Sie hier eine Bildbeschreibung ein


(2) Wie funktioniert das I/O-System?

Das I/O-System von PSoC bietet folgende Funktionen:

  • Digitale Eingangserkennung
  • Digitaler Ausgangstreiber
  • Pin unterbrechen
  • Analoge Ein- und Ausgangsanschlüsse
  • LCD-Segmenttreiber, externe Speicherschnittstelle (EMIF)-Verbindung
  • Zugriff auf On-Chip und On-Chip-Peripheriegeräte:
    (1) Direkte Verbindung über angegebenen Port
    (2) Über Universal Digital Block ( UDB) Digital Systems Interconnect (DSI)-Verbindung

Als nächstes werden wir hauptsächlich die grundlegenden Betriebsmethoden von GPIO vorstellen.

Geräte der PSoC 5LP-Serie enthalten46~72 I/O-Pins. Um die Verwaltung zahlreicher I/O-Pins zu erleichtern, haben sie sind in Ports organisiert, die jeweils bis zu 8 Pins enthalten.

Einige I/O-Pins sind Multifunktions-Multiplexing-Pins (neben allgemeinen Funktionen verfügen sie auch über spezielle Funktionen wie USB, Debug-Port oder Quarzkristalloszillator), und ihre speziellen Funktionen werden über relevante Steuerregister wie This aktiviert Der I/O-Pin kann als Quarzkristall-Oszillatorfunktion verwendet werden, indem das Quarzkristall-Oszillator-Steuerregister eingestellt wird.

Fügen Sie hier eine Bildbeschreibung ein

Pins mit mehreren Namen sind Mehrzweck-Pins.

Im Pin-Namen gibt ein Name wie P1[2] an, dass es sich bei dem Pin um Pin 2 (Pin2) in Port 1 (Port 1) handelt. Bei PSoC enthält ein Port bis zu 8 Pins.


1. E/A-Laufwerksmodus

Der I/O-Treibermodus ist eines der Hauptattribute eines Pins

Jeder GPIO- oder SIO-Pin kann unabhängig für einen von 8 Antriebsmodi konfiguriert werden.

Fügen Sie hier eine Bildbeschreibung ein

  • Das Signal 'Out' wird vom Datenregister DR (wenn das Attribut „Hardwareverbindung“ des Pins deaktiviert ist) oder von gesteuert Andere digitale Systemschaltungen werden direkt angesteuert.
  • Das Signal ‘In‘ steuert das Pin-Statusregister PS und andere digitale Systemschaltkreise.
  • Das Signal ‘An‘ ist mit der analogen Systemschaltung verbunden.
  1. Analog mit hohem Widerstand

Der standardmäßige Reset-Status schaltet alle Ausgangstreiber und digitalen Eingangspuffer aus. Dadurch wird vermieden, dass aufgrund der schwebenden Spannung Strom in den digitalen Eingangspuffer fließt. Dieser Zustand wird für Pins empfohlen, die schwebend bleiben oder analoge Spannungen unterstützen.

Die hochohmigen Analogpins sind mit dedizierten Routing-Pfaden verbunden, die rauscharm und störungsfrei sind und keine digitale Eingangsfunktionalität bieten.

  1. Digital mit hohem Widerstand

Eingangspuffer für digitale Signaleingabe aktivieren. Dies ist ein häufig verwendeter hochohmiger Zustand, der für digitale Eingänge empfohlen wird.

3. Widerstands-Pull-up oder Widerstands-Pull-down

Pull-Up oder Pull-Down sorgen jeweils für einen Serienwiderstand in einem Datenzustand und eine starke Ansteuerung im anderen Datenzustand. In diesem Modus können die Pins für den digitalen Ein-/Ausgang verwendet werden. Diese Modi kommen häufig bei der Verbindung mechanischer Schalter vor.

4. Offener Abfluss, hoher Antrieb, offener Abfluss, niedriger Antrieb

Der Open-Drain-Modus-Pin ist in einem Datenzustand hochohmig und sorgt in einem anderen Datenzustand für starken Antrieb. Pins können für den digitalen Ein-/Ausgang verwendet werden.
Eine typische Anwendung ist die Ansteuerung von Signalleitungen auf dem I2C-Bus.

5. Kraftbewegung

Bietet einen starken CMOS-Ausgangsantrieb sowohl im hohen als auch im niedrigen Ausgangszustand. Dies ist der häufig verwendete Ausgabemodus des Pins. Normalerweise sollten starke Treibermodus-Pins nicht als Eingänge verwendet werden. Dieser Modus wird typischerweise zum Ansteuern digitaler Ausgangssignale oder externer FETs verwendet.

6. Widerstand hochziehen und herunterziehen

Ähnlich dem Widerstands-Pull-Up- oder Pull-Down-Modus, außer dass immer ein Vorwiderstand vorhanden ist. Es handelt sich um einen Pull-up im Zustand mit hoher Ausgangsleistung und einen Pull-down im Zustand mit niedriger Ausgangsleistung.

Dieser Modus wird häufig verwendet, wenn andere Signale den Bus ansteuern, die einen Kurzschluss verursachen können.

Wenn der I/O-Pin den Bypass-Modus (Standardmodus) auswählt, wird die tatsächliche Spannung am I/O-Pin durch den Wert des Portdatenregisters (DR), den Pin-Ansteuermodus und die an den Pin angeschlossene Last bestimmt. Der Pin-Level-Status kann aus dem Port-Status-Register (PS) abgerufen werden.

Jeder I/O-Pin verfügt über drei Antriebsmodus-Konfigurationsbits (DM[2:0]), die sich in einem Satz von PRTx_DM[2:0]-Registern befinden. Zum Beispiel die jeweiligen Bit-y-Bits der Register PRTx_DM2, PRTx_DM1 und PRTx_DM0. Diese drei Bits werden verwendet, um den Antriebsmodus des Piny-Pins von Portx festzulegen (d. h. die Px[y ]-Pin).

I/O-Pin-Antriebsmodus

Fügen Sie hier eine Bildbeschreibung ein


2. I/O-Port-Konfigurationsregister

Es gibt zwei Möglichkeiten, den I/O-Pin-Ansteuermodus und andere Funktionseinstellungen des Pins zu konfigurieren:

  • Portkonfigurationsregister – alle Pins eines Ports konfigurieren
  • Pin-Konfigurationsregister – Konfigurieren Sie individuell einen Pin eines Ports

Die CPU kann durch Schreiben in das Port-Datenregister (PRTx_DR) dafür sorgen, dass der Pin hohe und niedrige Pegel (oder einen hohen Impedanzzustand) ausgibt. Den tatsächlichen Pegelstatus des Pins kann die CPU durch Lesen des Pin-Statusregisters (PRTx_PS) ermitteln.

Port-Konfigurationsregister:Konfigurieren Sie alle Pins eines Ports. Jedes Register konfiguriert eine Funktion. Die Funktionseinstellungen jedes Pins können gleich oder unterschiedlich sein.
Fügen Sie hier eine Bildbeschreibung ein
Jedes in der Tabelle aufgeführte Register ist ein Satz von Registern. Beispielsweise bedeutet PRT[0…11]_DR, dass es 12 Register gibt, nämlich PRT0_DR ~ PRT11_DR. Die Zahlen in den Registernamen stellen die Portnummern dar (d. h. die Datenregister, die jeweils Port0 ~ Port11 entsprechen). Jedes Register besteht aus 8 Bits, und jedes Bit des Registers entspricht einem Pin des Ports. Beispielsweise entspricht Bit0 des PRT0_DR-Registers Pin0 von Port0 (d. h. dem Pin P0[0]).


PRT[0…11]_PRT-Konfigurationsregister (schreibgeschützt):
Konfigurieren Sie alle Pins eines Ports im gleichen Modus und schließen Sie alle Funktionskonfigurationen gleichzeitig ab.

Fügen Sie hier eine Bildbeschreibung ein

Verwenden Sie das PRTx_PRT-Register, um eine einmalig identische Konfiguration aller Pins von Port x zu erreichen


Port-Pin-Konfigurationsregister (PRTx_PC0 ~ PRTx_PC7): Wird für den Zugriff auf die Konfigurations- oder Statusbits eines einzelnen E/A-Port-Pins verwendet. Die folgende Abbildung zeigt das Strukturdiagramm für den Zugriff auf das P3[2]-Pinkonfigurationsregister.

Fügen Sie hier eine Bildbeschreibung ein
Alle Port-Pin-Konfigurationsregister sind vereinfacht als PRT[0…14]_PC[0…7] und enthalten bis zu 15x8 Register.

Die Nummer vor dem Registernamen ist die Portnummer und die folgende Nummer ist die Pin-Nummer. Beispielsweise ist das Register PRT3_PC2 das Pin-Konfigurationsregister Pin2 (dh P3 [2] Pin) von Port3.


3. Implementierung der GPIO-Steuerung von LED-Lauflichtern

  • Methode 1 (siehe Beispielprojekt LED_Marquee): Zeichnen Sie den Schaltplan mit der digitalen Ausgangspin-Komponente in der Creator-Komponentenbibliothek, legen Sie seine Zuordnung zum tatsächlichen Pin in der Design-Scope-Ressourcendatei (.cydwr) des Projekts fest und verwenden Sie die API-Funktion der Komponente um den Ausgang des GPIO-Ports zu steuern.

  • Methode 2 (siehe Beispielprojekt LED_Marquee2): Verwenden Sie die cy_boot-Komponente in der Creator-Komponentenbibliothek (diese Komponente ist automatisch in jedem Projekt enthalten und wird nicht im Schaltplan angezeigt). Es ist nicht erforderlich, einen Schaltplan zu zeichnen und einen Pin zu setzen Mapping. Verwenden Sie diese Komponente direkt. API-Funktion zum Konfigurieren des GPIO-Ports und Steuern der Ausgabe des GPIO-Ports.

  • Methode 3 (siehe Beispielprojekt LED_Marquee3): Konfigurieren Sie den GPIO-Port und steuern Sie die Ausgabe des GPIO-Ports direkt über die Register, die sich auf das I/O-System beziehen, ohne ein schematisches Diagramm zu zeichnen und die Pin-Zuordnung festzulegen.

Es wird empfohlen, Methode 1 oder Methode 2 zu verwenden, insbesondere Methode 1. Methode 3 ist nur erforderlich, wenn eine schnelle E/A-Vorgangsgeschwindigkeit erforderlich ist.

Ergänzung: Die Verzögerungsfunktion kann mithilfe der Verzögerungsfunktion CyDelay() implementiert werden, die von der cy_boot-Komponente bereitgestellt wird.


Informationen zum Lesen und Ausführen der einzelnen Beispielprojekte zur GPIO-Steuerung von LED-Lauflichtern:

(1) Öffnen Sie die .cywrk-Datei im Projektverzeichnis. (Der Projektpfad darf kein Chinesisch enthalten.)

(2) Überprüfen Sie dann das schematische Diagramm des Projekts TopDesign.cysch, die Design-Scope-Ressourcendatei des Projekts .cydwr, main.c, GPIO.h (nur für das Beispielprojekt LED_Marquee3);

(3) Laden Sie das Programm auf den PSoC 5LP-Chip herunter (verbinden Sie das USB-Kabel mit dem J1-Anschluss auf der Platine) und beobachten Sie tatsächlich den Laufeffekt.

Hinweise zum Beispielprojekt zur GPIO-Steuerung von LED-Lauflichtern:

(1) Beachten Sie die Kommentare im Beispielprojekt.

(2) Bevor Sie das Programm ausführen, müssen Sie LED1 mit Drähten an die P0[0]-Buchse auf der CY8CKIT-050-Platine anschließen und LED2 an P0[1] anschließen;

(3) Die mit Creator gelieferten Komponenten verfügen alle über Komponentendatenhandbücher (die chinesische Übersetzungsversion muss auf der offiziellen Website von Cypress gesucht und heruntergeladen werden), die detaillierte Beschreibungen der Komponentenfunktionen, verschiedener Konfigurationen, API-Funktionen usw. enthalten.

Fügen Sie hier eine Bildbeschreibung ein

(4) Jedes Projekt enthält automatisch und implizit die Komponente cy_boot, die eine Möglichkeit zum Zugriff auf Chipressourcen bietet und eine große Anzahl direkt verfügbarer API-Funktionen bereitstellt. Alle Beispielprojekte verwenden eine API-Funktion von cy_boot – die Verzögerungsfunktion CyDelay(), und Beispielprojekt 2 verwendet auch seine pinbezogenen API-Funktionen.

So erhalten Sie das Handbuch der cy_boot-Komponente:Fügen Sie hier eine Bildbeschreibung ein

(5) Informationen zu den Funktionen und Nutzungsanweisungen aller Register im PSoC 5LP-Gerät finden Sie im „PSoC 5LP Registers Technical Reference Manual“ (PSoC 5LP Registers TRM).

(6) Das Quellprogramm enthält einige vom Ersteller angepasste Datentypen, z. B. den Typ uint8 in der Datei main.c. Informationen zur Bedeutung dieser benutzerdefinierten Datentypen finden Sie in den Systemreferenzhandbüchern.

おすすめ

転載: blog.csdn.net/Goforyouqp/article/details/134156457