Eine neue Familie der Systeme von Microchip mit konfigurierbaren Logikblöcken

Mikrocontroller der neuen Familie PIC16F131xx von Microchip sind eine Antwort auf die Evolution und stetig fortschreitende Miniaturisierung elektronischer Geräte. Ihre Funktionalität ermöglicht Ihnen ein sparsames Energiemanagement und den Bau von Steuerungen mit vorhersehbaren Reaktionszeiten.

Eine der wichtigsten Anforderungen an Designer moderner eingebetteter Systeme (d.h.embedded) besteht darin, ein zeitlich vorhersagbares Verhalten der Schaltung zu erhalten. In der Praxis läuft dies darauf hinaus, die Reaktionszeit auf Änderungen in den verwalteten Prozessen zu verkürzen, d.h. es geht um sofortige Reaktion auf Eingabedaten von Sensoren, Kommunikationsanschlüssen oder Benutzeroberflächen. Dieser Effekt kann durch eine Erhöhung der Rechenleistung der Systeme erreicht werden, ist jedoch eine suboptimale Methode, da dadurch große Energiemengen verschwendet werden. Um die Softwareverarbeitung grundlegender Prozesse zu vermeiden, verwendet Microchip kernunabhängige Peripheriegeräte in seinen Mikrocontrollern (Core Independent Peripherals) Das Neue an dieser Technologie ist ein programmierbares Logikgattersystem (Configurable Logic Block), das in die neue Familie der 8-Bit-Mikrocontroller des Herstellers – die Systeme PIC16F131xx – integriert wurde.
 

Parameter und Peripheriegeräte

Im folgenden Teil des Tests geht es um CIP- und CLB-Lösungen und wie sie es ermöglichen, die Rechenleistung der Systeme für das Anwendungsmanagement beizubehalten, während sie einfachere Aufgaben (Bedienung von Tasten und einigen Anzeigen, Konvertierung der von Wandlern empfangenen Werte). Zunächst lohnt sich jedoch ein Blick auf die Spezifikation und Struktur der Mikrocontroller PIC16F131xx.

Die besprochenen Systeme basieren auf der klassischen 8-Bit-Harvard-Architektur. Sie sind in den Formaten für die Durchsteckmontage (THT) und Oberflächenmontage (SMD) und in den Gehäusen DIP, DFN, SSOP, TSSOP, SOIC und VQFN erhältlich – mit 6, 12 oder 18 E/A-Pins. Ein großer Vorteil der Systeme ist ein großer Bereich akzeptabler Versorgungsspannungen: von 1,8 V bis 5,5 V DC. Die Uhr wird mit einem Signal mit einer Frequenz von32 MHz getaktet und die minimale Befehlsausführungszeit beträgt 125 ns. Die Systeme umfassen von 256 B bis 1024 B SRAM und bis zu 14 kB Programmspeicher (FLASH).

Entwicklern steht eine große Auswahl an Hardware-Peripheriegeräten zur Verfügung, wie z.B. PWM-Signalgeneratoren, 8- und 16-Bit-Zähler/Timer, Controller des seriellen Busses EUSART, MSSP-Port (Host

Synchronous Serial Port), der im I2 C- oder SPI-Schnittstellenmodus betrieben werden kann, konfigurierbare Komparatoren mit verkürzter Reaktionszeit (50 ns), 8-Bit-Digital-Analog-Wandler (DAC) und 10-Bit-Analog/Digital-Wandler mit der Möglichkeit der Berechnung (ADCC), d. h. Hardware-Verarbeitung der heruntergeladenen Werte. An dieser Stelle sollten Sie auf die in den vorgestellten Systemen enthaltene CIP-Peripherie achten.

Core Independent Peripherals

Peripheriegeräte, die unabhängig vom Kern arbeiten, d.h. CIP (eng. Core Indpendent Peripherals) sind seit langem in Microchip-Produkten enthalten, sowohl in der Familie PIC® als auch in der AVR®. Sie ermöglichen es, bestimmte Aufgaben (z. B. Kommunikation mit Sensoren) im Hintergrund auszuführen, ohne die Rechenleistung des Prozessors zu nutzen, die vollständig für die Ausführung des Hauptprogramms zur Verfügung steht, was zu einem reduzierten Energieverbrauch und einer Vereinfachung des Programms selbst führt. Dedizierte Peripheriegeräte können für die Datenübertragung (I2C, CAN, USB), die Zeitmessung (Timer), die Erzeugung von PWM-Signalen oder die Arbeit mit analogen Signalen (ADC, OP-AMP, DAC) verwendet werden.
 
 

CLB-Peripherie

Die wichtigste Innovation der Mikrocontroller PIC16F131xx ist die Einbeziehung unabhängiger, konfigurierbarer Logikelemente in ihre Struktur (aufgrund ihrer Funktionsweise wird dieses System als CIP-Peripheriegerät klassifiziert). Diese Technologie wird als CLB vom Ausdruck Configurable Logic Block bezeichnet. Ihr Ziel ist es, funktionale Sicherheit und sofortige Reaktionszeit zu gewährleisten. CLB basiert auf den von FPGA-Systemen bekannten Strukturen, bietet also die möglich kürzeste Eingangssignalverarbeitungszeit. CLB arbeitet mit einfachen Logikgattern, die vom Designer frei konfiguriert werden können, um den Anforderungen einer bestimmten Anwendung gerecht zu werden. Darüber hinaus kann man die Zielgeräte miniaturisieren, indem externe Komponenten ausgeschlossen und die Leiterplattenabmessungen reduziert werden. Ein wesentlicher Vorteil von CLB ist die Möglichkeit, die Zeit, in der die Aufgaben erledigt werden, genau zu bestimmen. Denn selbst wenn es sich bei diesen Aufgaben um relativ komplexe Prozeduren handelt, werden sie immer in Hardware umgesetzt.

Verfügbare Arten von Logikgattern

In den Mikrocontrollern PIC16F131xx besteht die CLB-Struktur aus diskreten Komponenten, die 32 identische Zellen bilden, von denen jede ein sogenanntes grundlegendes Logikelement (kurz BLE von eng. Basic Logic Element) darstellt. Alle werden durch die steigende Flanke des CLBCLK-Signals getaktet. Je nach Bedarf simuliert die Zelle einen logischen Schaltkreis, der in der Programmierphase festgelegt wurde. Es könnten Folgende sein:
 
  • AND-Gatter (max. 4 Eingänge);
  • NAND-Gatter (2 Eingänge);
  • OR-Gatter (max. 4 Eingänge);
  • NOR-Gatter (2 Eingänge);
  • XOR-Gatter (max. 4 Eingänge);
  • XNOR-Gatter (2 Eingänge);
  • Negator oder Puffer (1 Eingang und Ausgang);
  • D- oder JK-Flip-Flop;
  • konfigurierbare LUT (Lookup Table, bis zu 4 Eingängen).
Wichtig: Dem Anwender steht eine große Auswahl an Ein- und Ausgangssignalen zur Verfügung. Die Konditionierungswerte können aus einem 32-Bit-Register stammen, das im Programm verfügbar ist, den Zustand auf den I/O-Leitungen des Mikrocontrollers darstellen und auch von einem PWM-Generator, Timer/Zähler oder sogar einem Puffer des seriellen Busses SPI stammen. Gleiches gilt für die Pins konfigurierter Gates, die in der Programmierphase mit den Wandler-, Timer- und physischen Ausgangsleitungen (Pins) des Systems verbunden werden können. Optional kann jede der 4 Zellgruppen einen vom Programm unterstützten Interrupt erzeugen. Erwähnenswert ist auch, dass die Ausgänge der BLE-Zellen drei Zustände haben.
 
Verfügbare Zellkonfigurationen der CLB-Struktur
Zusammenfassend, erhält der Designer eine vollständig konfigurierbare FPGA-ähnliche Struktur, die in einem modernen 8-Bit-Mikrocontroller implementiert ist. Für die Speicherung der Einstellungen stehen 102 Byte interner Speicher zur Verfügung. Es bleibt also die Frage: Wie erfolgt die Konfiguration?

Konfiguration und Programmierung

Die Konfiguration von FPGA-Systemen wird oft als enge Spezialisierung angesehen, die umfassende Kenntnisse erfordert. Werkzeuge für die Arbeit mit den Produkten PIC16F131xx wurden so vorbereitet, dass deren Verwendung keine größeren Schwierigkeiten bereitet. Auch unerfahrene Programmierer können in kurzer Zeit die Grundlagen erlernen und die gewünschten Ergebnisse erzielen.

Zunächst wird der CLB-Konfigurationsprozess mithilfe einer speziellen Software namens CLB Synthetizer durchgeführt, die auf einer grafischen Oberfläche basiert. Seine Verwendung kommt der Erstellung eines Blockdiagramms gleich, wodurch das Programm auch für Personen lesbar bleibt, die mit der vollständigen Funktionalität der Umgebung nicht vertraut sind.

Das Programm ist in Form eines Plugins für die proprietäre IDE von Microchip, d. h. MPLAB® X, verfügbar. Man kann das Tool auch in einem normalen Browser verwenden, da es als Webanwendung verfügbar ist. Das Ergebnis der Arbeit im CLB Synthetizer ist eine Konfigurationsdatei, die dann in das Projekt importiert werden muss, oder eine Quelldatei in der Sprache VERILOG (Erweiterung .clb).
 
Beispielkonfiguration mit der CLB-Synthesizer-Umgebung.
Das Schema wird erstellt, indem symbolische Blöcke gezogen und miteinander sowie mit vordefinierten Ein-/Ausgabeleitungen verbunden werden. Die Arbeit in MPLAB® kann in sieben Schritten beschrieben werden:
  1. Einstellen der Timing-(Takt-)Signale.
  2. Setzen digitaler Blöcke wie UART, I2C, TMR und andere.
  3. Hinzufügen analoger Peripheriegeräte wie ADCC, DAC.
  4. Hinzufügen eines CLB-Peripheriegeräts zum Projekt durch Erstellen eines Blockdiagramms mit den Komponenten der BLE-Zellen und Definition der Verbindungen zwischen ihnen und den Eingangssignalen.
  5. Durchführung der Synthese (Erstellung der Konfigurationsdatei)
  6. Zum Schluss soll die Funktionalität definiert und die Funktionalität der im Projekt verwendeten Ein-/Ausgänge des Mikrocontrollers zugewiesen werden.
  7. Abschließend wird der Melody-Code generiert.
Hervorzuheben ist, dass Microchip zu Bildungszwecken eine Reihe praktischer Beispiele für die Verwendung von CLB zur Umsetzung verschiedener Aufgaben vorbereitet hat. Diese beinhalten:
 
  • Unterstützung für verschiebbare Register programmierbarer LEDs WS2812;
  • Hardware- Debouncing der Tastensignale;
  • Kodierung/Dekodierung der Manchester-Modulation;
  • Multiplexen eines 4-Bit-Werts in Signale, die eine 7-Segment-Anzeige steuern;
  • Frequenzumwandlung.
Eine dieser Anwendungen, die Erstellung eines 7-Segment-LED-Anzeigetreibers, wird im folgenden Video gezeigt. Und es sollte hier betont werden, dass der Effekt einer solchen CLB-Konfiguration ein Programm ist, das völlig unabhängig vom Mikrocontroller-Kern arbeitet. In der Praxis würde es ein dediziertes Steuerungssystem ersetzen, wodurch der Schaltkreis des entworfenen Geräts vereinfacht und reduziert sowie dessen Energiebedarf gesenkt würde.
 
 

Entwicklungskit Curiosity Nano

Die Plattform Curiosity Nano wurde geschaffen, um Microchip-Kunden Zugang zu Entwicklungskits zu bieten, die die Fähigkeiten der neuesten Mikrocontroller des Herstellers präsentieren. Die Platinen sind in einem praktischen Format vorbereitet: mit integriertem Debugger, Programmiergerät und Zugriff auf die Mikrocontroller-Pins. Dies macht sie zu einem hervorragenden Trainings- und Lehrmittel. Natürlich wurde auch für die Familie PIC16F131xx eine spezielle Platine Curiosity Nano entwickelt.
 
Mithilfe von Pin-Anschlüssen kann die Platine mit der Prototypenschaltung verbunden werden.
Das Modell EV06M52A ist ein Entwicklungskit, das mit einem Mikrocontroller PIC16F13145 ausgestattet ist. Die Schaltung umfasst einen USB-C-Anschluss zur Stromversorgung und Programmierung. Die dem Mikrocontroller zugeführte Spannung kommt vom Stabilisator LDO MIC5353. Optional kann ein Quarzresonator für die RTC-Uhr (32,768 kHz) in die Schaltung eingefügt werden. Der Stromversorgungs- und Programmierstatus wird durch eine grüne LED angezeigt. Eine weitere, gelbe LED ist an einen der Ausgänge des Mikrocontrollers angeschlossen und kann vom Mikrocontroller angesteuert werden. Es gibt auch eine Taste auf der Platine.
 
Komponentenanordnung und Pinbelegungsbeschreibung der Platine EV06M52A.

Adapter

Die Funktionalität des Entwicklungskits kann durch die Verwendung der speziell für die Platinen Curiosity Nano entwickelten Adapter erweitert werden.

Die oben genannten Produkte verfügen über einen universellen Pin-Anschluss (weiblich) zur Montage der Platine Curiosity Nano. Im Fall von AC164162 ist die Schaltung mit mehreren interessanten Elementen ausgestattet, wie zum Beispiel 3 Anschlüssen, die mit dem Standard mikroBUS™ kompatibel sind, der in Click-Modulen von Mikroe verwendet wird. Es ist hier erwähnenswert, dass im Katalog von TME über tausend verschiedene Modelle solcher Platinen erhältlich sind. Auf der Platine befindet sich außerdem ein Anschluss der Erweiterungen Xplained Pro. Darüber hinaus kann das Ganze mit Batterien betrieben werden, denn der Adapter verfügt über ein integriertes Lade- und Power-Management-System, das  mit Lithium-Ionen- und Lithium-Polymer-Zellen kompatibel ist.
 
Adapter AC164162
Der Text wurde von Transfer Multisort Elektronik Sp. z o.o. verfasst.
https://www.tme.eu/de/news/about-product/page/60236/mikrocontroller-pic16-mit-fpga-funktionalitaet/