dsPIC33CH: Dual-Core mit Master und Slave, ohne Cache und mit Safety-Hardware ab Werk

Embedded Systems Elektronik

Der dsPIC33CH® von Microchip® ist ein Dual-Core-Baustein für sicherheitsgerichtete Regel- und Signalaufgaben. Zwei DSC-Kerne auf einem Chip, fest verdrahtet als Master und Slave, gekoppelt über Mailbox-Register in Hardware, ohne Datencache, mit Safety-Mechanismen für IEC 60730 Class B und ISO 26262 ASIL-B bis C ab Werk. Ein paar dieser Eigenschaften haben wir in der ARM®-Welt zu diesem Preis bisher nicht gefunden, weshalb der dsPIC33CH in bestimmten Nischen bei uns die erste Wahl ist.

Master und Slave statt AMP

Beim dsPIC33CH ist die Rolle im Silizium fest: der Master ist der klassische 16-Bit-DSC-Kern, der die Anwendung, die Kommunikation und den Boot fährt. Der Slave ist ein zweiter DSC-Kern, der den zeitkritischen Regelcode ausführt und vom Master aus geflasht und gestartet wird. Es gibt keine dynamische Rollen-Verhandlung, die Aufgabenteilung ist im Baustein vorgegeben.

Beide Kerne haben eine eigene DSP-Einheit mit MAC-Befehlen, Barrel-Shifter und Sättigungs-Arithmetik. Der Slave läuft bis zu 200 MHz und ist auf Regelaufgaben zugeschnitten, mit eigenem Zugriff auf die schnellen Peripherien (High-Resolution-PWM, ADC-Trigger, Analog-Komparatoren) ohne über den Master zu müssen.

Der Slave startet nicht als eigenständiges System, sondern als vom Master verwaltete Regel-Engine. Der Slave-Code liegt als eigenes Binärimage vor, wird aber am gleichen Chip in einer separaten Programm-RAM-Region ausgeführt. Der Master lädt beim Boot das Slave-Image aus dem Flash in dessen Programm-RAM und startet den Kern. Ein einziger Flash-Vorgang, ein Reset, beide Kerne laufen.

Keine Cache-Kohärenz, weil kein Cache

Der Master und der Slave haben keinen Datencache. Damit fällt die grösste Falle des H7-Ansatzes weg: Schreiben auf einem Kern und Lesen auf dem anderen sind sofort konsistent, ohne MPU-Region als non-cacheable, ohne manuelle Clean/Invalidate-Aufrufe, ohne Bugs am Rand des Puffers, weil jemand die Cache-Line-Grenze vergessen hat.

Für einen erfahrenen H7-Entwickler ist das erst einmal ungewohnt, für ein sicherheitsgerichtetes Design ein Segen. Cache-Bugs sind schwer zu finden, tauchen erst unter Last und mit passendem Timing auf und laufen im Zweifel jahrelang mit, bis sie im Feld zuschlagen. Kein Cache heisst kein Kern-übergreifender Cache-Bug.

Kopplung: Mailbox-Register in Hardware

Statt geteilten RAMs mit Message Buffer und HSEM-Wecksignal koppelt der dsPIC33CH die Kerne über Mailbox-Register, die beide Kerne direkt adressieren können. Konkret gibt es acht Master-to-Slave-Register (MSI) und acht Slave-to-Master-Register (SMI), zusammen mit zwei FIFO-Kanälen für längere Nachrichten.

Der Ablauf ist mechanisch:

Kein RTOS-Konstrukt nötig, kein Speicherbereich zu managen. Für kleine Botschaften (Stellgrössen, Statusflags, Kommandos) reichen die Register direkt. Für längere Streams gibt es die FIFO-Kanäle. Beides ist im Datenblatt sauber beschrieben und in der Microchip-Peripherie-Library als Funktionen verfügbar.

Das ist keine allgemeine Shared-Memory-Architektur wie beim H7. Man kann keine grossen Datenstrukturen zwischen den Kernen teilen, es sei denn man legt sie explizit in beiden Kernen an und synchronisiert per Mailbox. Für Regelaufgaben ist genau das gewünscht: klare Schnittstelle, keine Grauzone.

Sicherheits-Hardware ab Werk

Der eigentliche Grund, warum der dsPIC33CH in sicherheitsgerichteten Projekten oft die erste Wahl ist, liegt in der eingebauten Sicherheits-Hardware. Microchip liefert das nicht als optionalen Baustein oder Zusatzchip, sondern in der Grundspezifikation des Prozessors.

Was mitkommt:

Das deckt die Anforderungen von IEC 60730 Class B (Haushaltsgeräte) und IEC 60335 (elektrische Sicherheit) grösstenteils in Hardware ab. Microchip liefert dazu eine zertifizierte Class-B/Y-Bibliothek, die genau diese Mechanismen orchestriert, mit dokumentierter Deckung der geforderten Diagnosen. Für ISO 26262 ASIL-B und ASIL-C (Automotive) ist der dsPIC33C separat dokumentiert, mit Safety-Manual und FMEDA. Auf der Bauteilebene sind die relevanten Varianten nach AEC-Q100 qualifiziert (Grade 1 bis Grade 0 je nach Typ), damit sind sowohl die Zuverlässigkeits- als auch die Temperaturanforderungen der Automotive-Kunden ab Werk erfüllt. Damit erspart der Baustein einen erheblichen Teil der Software-Diagnostik und der zugehörigen Zertifizierungsarbeit, weil die geforderten Mechanismen ab Werk vorhanden und dokumentiert sind.

Motor-Control-Peripherie

Der Slave-Kern ist explizit auf hochwertige Regelaufgaben ausgelegt. Was dafür mitgebracht wird:

Microchip liefert dazu die motorBench-Umgebung und die motor control application framework (MCAF), fertig für Feldorientierte Regelung (FOC) auf BLDC- und PMSM-Maschinen. Die schwere Regelmathematik ist damit weitgehend fertig, der Slave-Kern führt sie im 20 kHz PWM-Zyklus deterministisch aus.

Konkreter Baustein: dsPIC33CH512MP508

Als Referenz die konkreten Zahlen eines mittleren Vertreters der Familie:

Für Aufgaben, die keine 480 MHz M7-Rechenleistung brauchen und wo Safety und Kosten dominieren, ist das eine schwer zu schlagende Kombination.

Toolchain und Boot

Entwickelt wird in MPLAB X mit dem XC-DSC-Compiler. Ein Solution-Projekt enthält zwei Sub-Projekte: eines für den Master, eines für den Slave. Beim Build entsteht ein Master-Hex, das das Slave-Image als eingebettete Sektion enthält.

Der Master programmiert beim Boot das Slave-Programm-RAM, hebt den Slave-Reset auf und der Slave läuft. Das ist ein einziger Flash-Vorgang für das ganze System, kein separates Slave-Flashing nötig. Debugging beider Kerne läuft parallel mit einem einzigen ICD-Programmer.

Fallen, ehrlich

Wann er passt

Der dsPIC33CH spielt seine Stärken in einem konkreten Segment aus:

Wo er nicht passt: reine Rechenlast im dreistelligen MHz-Bereich mit FPU, grosse Datenpuffer, Grafik-HMI oder mehrere komplexe Kommunikations-Stacks parallel. Dort führt an einer 32-Bit-Architektur mit ausreichend RAM kein Weg vorbei.

Lehre

Der dsPIC33CH ist der leisere Dual-Core. Kein Cache heisst weniger Fallen. Feste Rollen heissen weniger Freiheitsgrade und weniger Bugs. Mailbox-Register statt Shared RAM heissen weniger Middleware. Safety-Hardware ab Werk heisst weniger Aufwand bei der Zertifizierung.

Was er nicht ist: ein Rechenmonster. Für hohe Rechenlast mit FPU und grossen Datenpuffern gibt es passendere Bausteine. Wer eine sicherheitsgerichtete Regelung sauber und bezahlbar durchbekommen will, hat mit dem dsPIC33CH einen Baustein, der die schwierigen Teile der Aufgabe im Silizium erledigt.

Schlüsselwörter: dsPIC33CH, Microchip Dual-Core, Master Slave DSC, IEC 60730 Class B, IEC 60335, ISO 26262 ASIL-B, ISO 26262 ASIL-C, AEC-Q100 Automotive, funktionale Sicherheit Embedded, Motor Control MCAF, motorBench FOC, CAN-FD, High Resolution PWM, MPLAB X XC-DSC, Embedded Consulting Schweiz, swissEmbedded Firmware Entwicklung Aargau

Sicherheitsgerichtete Regelung mit Zertifizierungspflicht? Wir bauen die Kette aus dsPIC33CH, Class-B-/Safety-Bibliothek, Motor-Control-Framework und Test-Bench auf, mit dokumentierter Diagnose-Deckung und einem Baustein, der die Cache-Frage gar nicht erst stellt.

Kontaktieren Sie uns →