DE112019007402T5 - Virtuelle ports zum anschluss von kern-unabhängigen peripherievorrichtungen - Google Patents

Virtuelle ports zum anschluss von kern-unabhängigen peripherievorrichtungen Download PDF

Info

Publication number
DE112019007402T5
DE112019007402T5 DE112019007402.4T DE112019007402T DE112019007402T5 DE 112019007402 T5 DE112019007402 T5 DE 112019007402T5 DE 112019007402 T DE112019007402 T DE 112019007402T DE 112019007402 T5 DE112019007402 T5 DE 112019007402T5
Authority
DE
Germany
Prior art keywords
port
microcontroller
circuit
port bit
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019007402.4T
Other languages
English (en)
Inventor
Keith Edwin Curtis
Stephen Matthew Cowden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112019007402T5 publication Critical patent/DE112019007402T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Microcomputers (AREA)

Abstract

Ein Mikrocontroller (102) weist eine zentrale Verarbeitungseinheit (120) und eine Vielzahl von Peripherieeinheiten (130) und eine Vielzahl von Port-Bit-Schaltungen (106) auf, die durch zumindest einen Eingangs-/Ausgangs-Port (108) bereitgestellt werden. Mindestens eine Port-Bit-Schaltung (106) der Vielzahl von Port-Bit-Schaltungen ist nicht mit einem externen Pin (112, 114) verbunden und die zumindest eine Port-Bit-Schaltung ist konfigurierbar, um ein an der Port-Bit-Schaltung empfangenes Signal an eine ausgewählte Peripherievorrichtung (130) des Mikrocontrollers zu leiten (119).

Description

  • VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität vor der vorläufigen US-Patentanmeldung Nr. 62/857 036 , eingereicht am 4. Juni 2019, deren Inhalt hiermit vollständig repräsentiert wird.
  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die vorliegende Offenbarung betrifft Mikrocontroller mit I/O-Ports und kemunabhängigen Peripherievorrichtungen (CIPs) und insbesondere deren Verbindung.
  • HINTERGRUND DER ERFINDUNG
  • Ein Mikrocontroller weist im Allgemeinen eine zentrale Verarbeitungseinheit (CPU), einen Programm- und Datenspeicher, Eingabe-Ausgabe-(I/O)-Ports und eine Vielzahl von Peripherievorrichtungen auf, die auf einem integrierten Schaltungs-(IC)-Chip („Chip“) hergestellt sind. Einige dieser Peripherievorrichtungen können kernunabhängige Peripherievorrichtungen (CIPs) sein, die als Peripherievorrichtungen definiert sind, die ohne Eingabe der CPU arbeiten können. Der IC-Chip kann in einem IC-Gehäuse mit Verbindungsanschlüssen („Pins“) eingeschlossen (eingekapselt) sein, an die externe Schaltungen mit dem IC-Chip verbunden werden können. Elektrische Verbindungspunkte auf dem IC-Chip können „Pads“ sein und können mit Bonddrähten mit den Pins des IC-Gehäuses verbunden sein. Die meisten der externen Verbindungspins sind einem I/O-Port des Mikrocontrollers zugeordnet, wobei jeder I/O-Port-Pin fest einem Bit eines I/O-Ports zugeordnet ist. Für diese I/O-Ports werden entsprechende IC-Chip-Pads verwendet und mit den entsprechenden externen Pins drahtgebondet. Andere externe Pins liefern Gleichstrom und Masse für den IC-Chip. Die I/O-Port-Pins sind oft sogenannte Multifunktions-Pins und können programmgesteuert mit einer Peripherievorrichtung geteilt werden. Zu diesem Zweck können für jeden Pin bestimmte vordefinierte Zuordnungen existieren oder eine sogenannte Peripherieport-Auswahllogik (PPS) kann die Auswahl einer Vielzahl von zuweisbaren Peripheriefunktionen ermöglichen.
  • Kernunabhängige Peripherievorrichtungen (CIP) sind dafür ausgelegt, ihre Aufgaben ohne Codeausführung durch oder Überwachung durch eine Zentraleinheit (CPU) zu bewältigen, um deren Betrieb aufrechtzuerhalten. Dadurch vereinfachen sie die Implementierung komplexer Steuerungssysteme und geben Designern die Flexibilität für Innovationen. CIPs sind intern integriert und empfangen Eingaben von internen und externen Quellen und können Ausgaben für interne und externe Ziele bereitstellen, wie beispielsweise andere integrierte Peripherievorrichtungen oder externe Komponenten. Jedoch stellen nicht alle kernunabhängigen Peripherievorrichtungen (CIPs) alle ihre Eingangs- und/oder Ausgangsverbindungen für jedes andere CIP zur Verfügung, aber sie können eine oder mehrere Verbindungen aufweisen, die nur für jeweilige externe Pins verfügbar sind. Um Verbindungen zwischen verschiedenen CIPs herzustellen, die nicht innerhalb der normalen internen Auswahlmöglichkeiten liegen, muss diese Verbindung über einen externen Port-Pin hergestellt werden. Bei Vorrichtungen mit niedriger Pinanzahl kann dies problematisch sein, da dies zu einer Sperre/Reduzierung der verfügbaren Port-Pins führen kann. Daher muss eine größere Vorrichtung mit einer entsprechenden Anzahl zusätzlicher Port-Pins verwendet werden. Die Hauptnachteile sind Kosten und Größe der größeren Vorrichtung. Die andere Möglichkeit besteht darin, das Verbindungsauswahlregister und die zugehörige Multiplexerschaltung für alle CIPs signifikant zu erhöhen, um die Auswahl irgendeines der anderen CIPs zur Verbindung damit zu ermöglichen, was in den meisten Fällen keine praktikable Option ist.
  • Wie oben erwähnt, werden I/O-Ports für externe digitale I/O eines Mikrocontrollers verwendet. Sie sind einem externen Pin fest zugeordnet. Je nach Anzahl der verfügbaren externen Pins kann eine entsprechende Anzahl von I/O-Ports realisiert werden. Diese I/O-Ports werden im Allgemeinen nicht als Peripherievorrichtungen betrachtet, sondern stellen eher eine externe digitale Schnittstelle bereit, die direkt von der CPU gesteuert wird. Diese Beschreibung unterscheidet den Begriff „I/O-Port“ als nicht äquivalent zu irgendeiner Peripherievorrichtung oder einem Modul innerhalb eines Mikrocontrollers. Ihre primäre Port-I/O-Funktion kann in einem Konfigurationsprozess außer Kraft gesetzt werden, sodass der zugehörige externe Pin dann von einer ausgewählten Peripherievorrichtung gesteuert wird. Die Peripherievorrichtung(en) kann/können beispielsweise, ohne darauf beschränkt zu sein, ein PWM-Modul, ein Zeitgeber, ein Digital-Analog-Wandler (DAC) oder ein Analog-Digital-Wandler (ADC) anstelle des I/O-Ports sein. Beispielsweise kann der Pin nach der Neuzuweisung nun als analoger Eingangspin für einen ADC oder als Ausgangspin für eine serielle Schnittstelle dienen. Ports sind oft als 8-Pin- oder 16-Pin-Ports verfügbar, die als Port A, B, C usw. bezeichnet werden, jedoch kann insbesondere bei Low-Pin-Vorrichtungen jeder Port oder nur ein einzelner Port weniger einzelne Bits aufweisen und kann bei anderen Vorrichtungen auch mehr einzelne Bits aufweisen. Zum Beispiel kann ein 6-Pin-Mikrocontroller nur einen einzigen Port mit 4 Bit aufweisen, z.B. PORTA0, PORTA1, PORTA2 und PORTA3 und ein 14-Pin-Mikrocontroller kann nur zwei Ports aufweisen, zum Beispiel PORT A und PORT C mit einzelnen Bits PORTA0-PORTA5 und PORTC0-PORTC5. Andere Konfigurationen sind möglich.
  • ZUSAMMENFASSUNG
  • Daher wird insbesondere bei Mikrocontrollern mit einer geringen Anzahl externer Pins die Möglichkeit benötigt, Signale intern zu routen, ohne die Multiplexer-Schaltung wesentlich zu vergrößern.
  • Gemäß einer Ausführungsform weist ein Mikrocontroller eine Zentraleinheit und eine Vielzahl von Peripherieeinheiten und eine Vielzahl von Port-Bit-Schaltungen auf, die durch zumindest einen Eingangs-/Ausgangs-Port bereitgestellt werden, wobei zumindest eine Port-Bit-Schaltung der Vielzahl von Port-Bit-Schaltungen nicht mit einem externen Pin verbunden ist und wobei die zumindest eine Port-Bit-Schaltung konfigurierbar ist, um ein an der Port-Bit-Schaltung empfangenes Signal zu einer ausgewählten Peripherievorrichtung des Mikrocontrollers zu leiten.
  • Gemäß einer weiteren Ausführungsform kann jedes Port-Bit, das nicht mit einem externen Pin verbunden ist, zunächst deaktiviert und durch Konfiguration wieder aktiviert werden. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller eine konfigurierbare Sicherung zum erneuten Aktivieren eines Port-Bits aufweisen. Gemäß einer weiteren Ausführungsform kann das zumindest eine Port-Bit mit einem Chip-Pad verbunden sein. Gemäß einer weiteren Ausführungsform kann das Eingangssignal von einem Bit eines Bitregister-Latch bereitgestellt werden. Gemäß einer weiteren Ausführungsform kann die zumindest eine Port-Bit-Schaltung einen ersten Multiplexer aufweisen, der ausgebildet ist, um das Signal auszuwählen. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller weiterhin eine Auswahlschaltung aufweisen, die einen Multiplexer aufweist, der von einem ersten Register gesteuert wird und ausgebildet ist, um das Signal auszuwählen. Gemäß einer weiteren Ausführungsform kann die zumindest eine Port-Bit-Schaltung einen zweiten Multiplexer aufweisen, der ausgebildet ist, um ein Ziel für das Signal auszuwählen. Gemäß einer weiteren Ausführungsform ist der zweite Multiplexer durch ein zweites Register steuerbar und ist konfigurierbar, um die zumindest eine Port-Bitschaltung einer ausgewählten Peripherievorrichtung des Mikrocontrollers zuzuordnen. Gemäß einer weiteren Ausführungsform kann der Mikrocontroller weiterhin zumindest eine weitere I/O-Port-Schaltung aufweisen, die mehrere Bits aufweist, wobei zumindest einige der mehreren Bits externen Pins des Mikrocontrollers zugewiesen sind.
  • Gemäß einer anderen Ausführungsform weist ein Verfahren zum Betreiben eines Mikrocontrollers eine zentrale Verarbeitungseinheit und eine Vielzahl von Peripherieeinheiten und eine Vielzahl von Port-Bit-Schaltungen auf, die durch zumindest einen Eingangs-/Ausgangs-Port bereitgestellt werden, wobei zumindest eine Port-Bit-Schaltung der Vielzahl von Port-Bit-Schaltungen nicht mit einem externen Pin verbunden ist, und kann aufweisen: Auswählen einer Signalquelle für die zumindest eine Port-Bit-Schaltung; Auswählen eines Ziels für die zumindest eine Port-Bit-Schaltung, wobei die zumindest eine Port-Bit-Schaltung ein Signal von der ausgewählten Signalquelle, das an der zumindest einen Port-Bit-Schaltung empfangen wird, zu einer ausgewählten Peripherievorrichtung des Mikrocontrollers leitet.
  • Gemäß einer weiteren Ausführungsform des obigen Verfahrens kann jedes Port-Bit, das nicht mit einem externen Pin verbunden ist, zunächst deaktiviert werden, wobei das Verfahren weiterhin aufweist: Konfigurieren des Mikrocontrollers durch zumindest ein Konfigurationsregister, um den zumindest einen Eingangs-/Ausgangs-Port zu aktivieren. Gemäß einer weiteren Ausführungsform des obigen Verfahrens kann die ausgewählte Eingangssignalquelle ein Port-Latch der zumindest einen Port-Bit-Schaltung sein, wobei das Verfahren weiterhin aufweist: Schreiben eines Werts in den Port-Latch durch die Zentraleinheit, um ein Eingabesignal für die ausgewählte Ausgangsquelle bereitzustellen. Gemäß einer weiteren Ausführungsform des obigen Verfahrens kann das Auswählen der Eingangsquelle und/oder das Auswählen des Ziels durch Programmieren von Registern durchgeführt werden, wobei die Register einen ersten Multiplexer steuern, der die Signalquelle auswählt, und einen zweiten Multiplexer, der das Ziel auswählt. Gemäß einer weiteren Ausführungsform des obigen Verfahrens kann der Mikrocontroller eine Programmier-/Fehlerbeseitigungsschnittstelle aufweisen, die mit der zumindest einen Port-Bitschaltung gekoppelt ist, wobei das Verfahren weiterhin aufweist: Koppeln einer schaltungsinternen Emulator-/Fehlerbehebungsvorrichtung an die Programmier-/Fehlerbeseitigungsschnittstelle der Mikrocontroller; Erfassen von logischen Zuständen des Signals innerhalb der zumindest einen Port-Bit-Schaltung; und Weiterleiten der logischen Zustände an die schaltungsinterne Emulator/Debugger-Vorrichtung.
  • Gemäß noch einer anderen Ausführungsform kann ein Mikrocontroller eine zentrale Verarbeitungseinheit, eine Vielzahl von Peripherievorrichtungen und eine Vielzahl von Eingangs-/Ausgangs-Ports aufweisen, wobei zumindest einer der Eingangs-/Ausgangs-Ports eine Vielzahl von Bits aufweist, die mit externen Pins des Mikrocontrollers verbunden sind, und wobei zumindest eine Port-Bit-Schaltung der Vielzahl von Eingangs-/Ausgangs-Ports nicht mit einem externen Pin verbunden ist und wobei die zumindest eine Port-Bit-Schaltung konfigurierbar ist, um ein an der Port-Bit-Schaltung empfangenes Signal an eine ausgewählte Peripherievorrichtung des Mikrocontrollers zu leiten, wobei jedes Port-Bit, das nicht mit einem externen Pin verbunden ist, zunächst deaktiviert ist und durch Konfiguration wieder aktiviert werden kann, wobei die zumindest eine Port-Bit-Schaltung einen ersten Multiplexer aufweist, der ausgebildet ist, um das Signal auszuwählen, und wobei der erste Multiplexer mit einem Bit eines Port-Latch-Registers und mit Ausgängen einer Vielzahl von Peripherievorrichtungen des Mikrocontrollers gekoppelt ist.
  • Gemäß einer weiteren Ausführungsform kann der Mikrocontroller eine konfigurierbare Sicherung zum erneuten Aktivieren eines Port-Bits aufweisen. Gemäß einer weiteren Ausführungsform ist das zumindest eine Port-Bit mit einem Chip-Pad verbindbar. Gemäß einer weiteren Ausführungsform kann der erste Multiplexer von einem Konfigurationsregister gesteuert und konfiguriert werden, um das Eingangssignal bereitzustellen. Gemäß einer weiteren Ausführungsform kann die zumindest eine Port-Bit-Schaltung einen zweiten Multiplexer aufweisen, der ausgebildet ist, um ein Ziel für das Eingangssignal auszuwählen.
  • Figurenliste
  • Ein vollständigeres Verständnis der vorliegenden Offenbarung kann durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen erlangt werden, wobei:
    • 1 eine schematische Draufsicht eines Chips einer integrierten Schaltung in einem Gehäuse einer integrierten Schaltung gemäß den Lehren dieser Offenbarung veranschaulicht;
    • 1a detaillierter logische Schaltungen zum Aktivieren/Deaktivieren eines ungenutzten I/O-Ports zeigt.
    • 2 ein schematisches Blockdiagramm eines CIP-Ports veranschaulicht, der mit einem Hardware-Eingabe-Ausgabe-Pad gekoppelt ist.
    • 3 ein schematisches Blockdiagramm eines virtuellen CIP-Ports gemäß bestimmten beispielhaften Ausführungsformen dieser Offenbarung veranschaulicht.
    • 4 eine Schaltung mit einem herkömmlichen Low-Pin-Mikrocontroller veranschaulicht.
    • 5 eine erste Ausführungsform eines Mikrocontrollers veranschaulicht, der in einer ähnlichen Schaltung wie in 4 gezeigt verwendet wird.
    • 6 eine zweite Ausführungsform eines Mikrocontrollers veranschaulicht, der in einer ähnlichen Schaltung wie in 4 gezeigt verwendet wird;
    • 7 eine Ausführungsform eines Mikrocontrollers gemäß der vorliegenden Beschreibung zeigt, der mit einem In-Circuit-Emulator und einem Host-Computer gekoppelt ist; und
    • 8 ein Flussdiagramm des Hochfahrens eines Mikrocontrollers gemäß verschiedenen Ausführungsformen zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Mikrocontroller mit kleiner oder niedriger Pinzahl, z. B. 6- oder 8-Pin-Mikrocontroller, werden typischerweise unter Verwendung des gleichen IC-Chips gebaut, der in Vorrichtungen mit höherer Pinzahl verwendet wird, z. B. 14 Pins, was bedeutet, dass ungenutzte Portlogik vorhanden, aber zunächst deaktiviert ist. Die Deaktivierung solcher ungenutzter Ports kann durch internes Drahtbonden oder durch Sicherungen oder jedes andere geeignete Mittel erreicht werden. Gemäß verschiedenen Ausführungsformen kann eine solche Deaktivierung während der Herstellung überschrieben oder nicht eingerichtet werden, so dass diese Ports, während sie extern nicht verbunden sind, noch aktiv sind. Andere Ausführungsformen der vorliegenden Offenbarung ermöglichen ein aktives Überschreiben der Deaktivierung, wodurch es diesen ungenutzten Ports ermöglicht wird, interne Verbindungen zwischen internen Peripherievorrichtungen bereitzustellen, die ansonsten nicht möglich sind. Die Aktivierung eines solchen ungenutzten Ports („virtueller Port“) kann mit einem Fuse-Bit in einem Konfigurationsregister erfolgen, das beispielsweise den typischen Drahtbond-Deaktivierungsmechanismus im Chip außer Kraft setzt und die Erzeugung virtueller Verbindungsports innerhalb der Vorrichtung auch für interne Verbindungen und virtuelle Testpunkte herstellen. Der Begriff „virtueller Port“, wie er hierin für diese Offenbarung verwendet wird, ist als ein Port definiert, auf den außerhalb des IC-Gehäuses nicht zugegriffen werden kann. Ein „virtueller Port“ kann typischerweise 8 Port-Bits aufweisen und entsprechende Eingabe/Ausgabe-Schaltungen können implementiert werden, wie unten ausführlicher erläutert wird. Ein „virtueller Port“ kann jedoch so ausgelegt sein, dass er nur ein einzelnes Port-Bit oder mehr als 8 Bit aufweist. Im Folgenden bezeichnet eine Port-Bit-Schaltung eine Eingabe/Ausgabe-Schaltung für ein Bit eines I/O-Ports oder „virtuellen Ports“.
  • Ausführungsformen der vorliegenden Offenbarung können einen Satz von beispielsweise, aber nicht beschränkt auf, 8 bis 24 Verbindungspunkte (Port-Bits) aufweisen, die verwendet werden können, um Peripherievorrichtungen oder CIPs zu verbinden, insbesondere in Vorrichtungen mit niedriger Pinanzahl. Darüber hinaus sind diese Ports durch einen Schaltungsemulator oder einen In-Circuit-Debugger (ICD) zugänglich, was die Anzeige von Daten in einer Logikanalysatorfunktion ermöglichen würde, die beispielsweise in die integrierte Entwicklungsumgebung (IDE) MPLAB® X des Anmelders der vorliegenden Patentanmeldung integriert ist. Dies ermöglicht auch die softwaregesteuerte Erstellung von Override- und Treibereingängen für Peripherie-/CIP-Konfigurationen.
  • Vorteile der Verwendung von „virtuellen Ports“ können eine verringerte Datengröße für die Übertragung über den herkömmlichen Eingangsauswahl-Multiplexer, eine Erhöhung der Anzahl möglicher Peripherie- oder CIP-Verbindungen, die Möglichkeit der Softwareeingabe von Signalen in die Peripherievorrichtungen oder CIPs sein, wenn ein Logikanalysator verwendet wird, um diese Signale anzuzeigen, und die Chipgröße kann im Wesentlichen gleich bleiben.
  • Gegenwärtig werden, wie oben erwähnt, ungenutzte Ports deaktiviert, indem beispielsweise eine Bonding-Option verwendet wird, wenn der Chip in das integrierte Schaltungsgehäuse montiert wird, wie unten ausführlicher erläutert wird. Gemäß bestimmten beispielhaften Ausführungsformen dieser Offenbarung können eine oder mehrere Sicherungen in den Konfigurationswörtern verwendet werden, um diese Deaktivierung aufzuheben, alle verfügbaren Ports wieder zu aktivieren oder einzelne deaktivierte Port-Bitschaltungen wieder zu aktivieren. Diese Sicherungen sind rücksetzbar und werden bei einer Programmierung der Vorrichtung, beispielsweise unter Verwendung von Konfigurationsregistern, programmiert. Es sind nur geringe oder keine zusätzlichen Kosten erforderlich, da die Hardware in diesen Ausführungsformen auf dem Chip vorhanden ist. Es kann ein zusätzliches Konfigurationsbit und die zugehörige Logik verwenden, um den gewünschten Port-Pin wieder zu aktivieren. Es kann auch eine Modifikation der Assembler- und Compiler-Tools verwenden, um die Port-, Pin- und Registeraliase wieder zu aktivieren.
  • Wie hier verwendet, kann ein Port-Bit mit einem internen Verbindungspad auf einem integrierten Schaltungschip verbunden sein, der eine Vielzahl von Peripherievorrichtungen oder CIPs und eine CPU aufweist. Ein Port-Bit kann mit einem externen integrierten Schaltungspin verbunden sein, um eine weitere Verbindung mit Schaltungen außerhalb des integrierten Schaltungsgehäuses herzustellen. Gemäß der vorliegenden Beschreibung wird ein Port oder Port-Bit auch als „virtueller Port“ oder „virtuelles Port-Bit“ angesehen, wenn er/es nicht mit einem externen Pin verbunden ist.
  • Nun auf die Zeichnungen Bezug nehmend, werden die Details von beispielhaften Ausführungsformen schematisch dargestellt. Gleiche Elemente in den Zeichnungen werden durch gleiche Zahlen dargestellt, und ähnliche Elemente werden durch gleiche Zahlen mit einem anderen Kleinbuchstaben-Suffix dargestellt.
  • Unter Bezugnahme auf 1 ist eine schematische Draufsicht eines Chips einer integrierten Schaltung in einem Gehäuse einer integrierten Schaltung gemäß den Lehren dieser Offenbarung dargestellt. Ein Chip 104 einer integrierten Schaltung (IC) weist eine Zentraleinheit (CPU) 120 und eine Vielzahl von Peripherievorrichtungen 130 sowie einen Speicher 125 und eine Vielzahl von I/O-Ports auf, die einen Mikrocontroller bilden. Der IC-Chip 104 weist eine Vielzahl von Verbindungspads 106, 112, 114 darauf auf, die als Ports, eine dedizierte Funktion oder Stromversorgung konfiguriert sein können. Diese Ports können so programmiert sein, dass sie an ausgewählte IC-Chip-Schaltungen gekoppelt sind, z. B. Peripherievorrichtungen 130, wobei die Peripherievorrichtung 130 CIPs sein kann. Einige der Pads 106 werden verwendet, um eine Verbindung mit Strom (VDD) und Masse (VSS) herzustellen, die für die IC-Chip-Schaltungen erforderlich sind. Einige der Pads 106 können mit Bonddrähten 110 mit externen Pins 108 auf einem IC-Gehäuse 102 verbunden sein. Typischerweise gibt es mehr Pads 106 als externe Pins 108 in einem Low-Pin-Mikrocontroller. Bestimmte Ausführungsformen können jedoch die gleiche Anzahl von Pads wie externe Pins aufweisen. In solchen Vorrichtungen können „virtuelle Ports“ implementiert sein, weisen aber kein zugehöriges Pad auf dem IC-Chip auf, wie unten ausführlicher erläutert wird.
  • 1 zeigt eine Vielzahl von Pads 106, die nicht mit externen Pins verbunden sind. Diese extern nicht verbundenen Pads 106 können intern mit entsprechenden I/O-Ports zur Verwendung in Gehäusen mit höherer Anzahl von Pins verbunden sein, wie oben erläutert. In einer Ausführungsform, die eine Möglichkeit des Drahtbondens zum Deaktivieren der ungenutzten Ports verwendet, zeigt 1 zusätzliche erste und zweite Pads 112 und 114. Der Chip 104 kann gespeicherte Daten enthalten, die definieren, welche Pads in verschiedenen Gehäuseoptionen nicht verwendet werden. Das erste Pad 112 kann eine Decodierlogik 118 aufweisen, die unter Verwendung eines Pull-up-Widerstands verbunden ist, und das zweite Pad 114 kann mit Masse verbunden sein. Eine Drahtverbindung 116 verbindet die ersten und zweiten Pads 112 und 114, als Ergebnis kann das erste Pad 112 auf Masse gezogen werden und die Decodierlogik 118 deaktiviert als Reaktion diese I/O-Ports, die gemäß der gespeicherte Daten den nicht verbundenen Pads 106 zugeordnet sind. Es können mehrere Pads 112 und zugehörige Deaktivierungsdaten vorhanden sein, die die zu deaktivierenden I/O-Ports definieren, um zu ermöglichen, dass eine Vielzahl vordefinierter Ports gemäß unterschiedlichen Variationen des jeweiligen Mikrocontrollers deaktiviert werden. Die Deaktivierung durch Drahtbonden, wie in 1 gezeigt, ist nur eine Möglichkeit, andere Deaktivierungsmittel wie etwa Sicherungen 119, die durch die gestrichelten Linien angezeigt sind, können verwendet werden. Zum Beispiel kann die Sicherung zwischen die Pads 112 und 114 gekoppelt sein, um dieselbe Funktion wie der Draht 116 zu erfüllen. Die Sicherungen 119 können gemäß einer vordefinierten Definition gesetzt oder zurückgesetzt werden. Alternativ kann die Decodierlogik 118 für jedes potentiell nicht verbundene Pad 106 implementiert werden, das einem I/O-Port zugeordnet ist, wie in 1 durch die gestrichelte Linie zwischen einem unbenutzten Pad 106 und der Logik 118 angezeigt. Eine derartige Lösung würde jedoch erfordern, dass Bonddrähte zwischen jedem unbenutzten Pad und einem Massepad angewendet werden. Alternativ kann jedes potenziell ungenutzte Pad eine zugehörige Sicherung zum Deaktivieren des zugehörigen I/O-Ports aufweisen, wie durch die gestrichelte Linie zwischen einem ungenutzten Pad 106 und der Sicherung 119 angezeigt. Die eine oder mehreren Sicherungen 119 können zurückgesetzt werden und werden normalerweise während der Konfiguration der Vorrichtung gesetzt. Die einzige Voraussetzung zum Deaktivieren der Ports gemäß verschiedenen Ausführungsformen besteht darin, dass eine solche Deaktivierung überschrieben werden kann und daher nicht dauerhaft ist.
  • 1a zeigt ein detaillierteres Blockschaltbild der Aktivierungsschaltung. Es sind nur drei extern nicht verbundene Pads 106 gezeigt. Jedes Pad 106 ist mit einer zugehörigen I/O-Bit-Port-Schaltung 160 gekoppelt, wie unten ausführlicher erläutert wird. Die Logikschaltung 150 ist so konfiguriert, dass sie jede I/O-Port-Schaltung 160 in Abhängigkeit von von der Decodierlogik 118 empfangenen Logiksignalen aktiviert oder deaktiviert. Die Deaktivierung kann dadurch erreicht werden, dass die jeweilige I/O-Bit-Port-Schaltung einfach nicht mit Strom versorgt wird. Es können jedoch Ausführungen der Deaktivierung bereitgestellt werden, wie beispielsweise das Blockieren jeglicher Steuer- und Datensignale. Das Abschalten des Stroms für die Schaltungen 160 vermeidet jedoch einen unnötigen Stromverbrauch. Die Logikschaltung 150 kann Konfigurationsregister aufweisen, um eine erneute Aktivierung eines deaktivierten I/O-Ports 160 zu ermöglichen. Zum Beispiel kann die Logikschaltung 150 gemäß einer Ausführungsform Spezialfunktionsregister 155 aufweisen, die speichern, welche der I/O-Port-Schaltungen zunächst deaktiviert sind. Die CPU 120 kann programmiert sein, um diese in den Registern 155 gespeicherte Anfangseinstellung zu überschreiben. Alternativ können dedizierte Anweisungen verwendet werden, um die zuvor deaktivierten I/O-Portschaltungen 160 wieder zu aktivieren.
  • Bezugnehmend auf 2 ist ein schematisches Blockdiagramm eines I/O-Ports dargestellt, der mit einem Hardware-Eingabe-Ausgabe-Pad 106 und einem externen Pin 108 gekoppelt ist. Das I/O-Pad 106 kann als digitaler Eingang oder Ausgang konfiguriert sein, als analoger Eingang oder Ausgang und kann Tristate, Open Collector oder ein analoger Treiber sein. Der Ausgangsabschnitt ist im unteren Teil von 2 dargestellt, während der Eingangsabschnitt einer Port-Bit-Schaltung in der oberen Hälfte dargestellt ist. In 2 ist nur ein Bit gezeigt, wie jedoch zuvor erläutert kann ein Port mehr als ein Bit aufweisen und weist typischerweise 8 oder 16 Bits auf und kann in Low-Pin-Vorrichtungen eine beliebige Anzahl von Bits aufweisen. Somit werden die Begriffe „Port“ und „Port-Bit“ in dieser Beschreibung austauschbar verwendet, da ein Port so ausgelegt sein kann, dass er nur ein einzelnes Bit aufweist. Die Konfiguration der grundlegenden digitalen I/O-Funktion des I/O-Pad 106 und des Pins 108 kann durch Signale von einem Konfigurationsregister 260 ausgewählt werden. Das Konfigurationsregister 260 kann separate oder kombinierte Register zum Steuern des Tri-State (im Registersatz 260 als Register TRIS angezeigt), Up- und/oder Down-Pull-Funktion, Analogeingangsauswahl, Ausgangs- und Eingangswerte (im Registersatz 260 angegeben als Register LAT bzw. PORT) und andere Konfigurationsparameter aufweisen. Das Tristate-Signalsteuersignal TRISx kann durch ein zugeordnetes Bit des Registers TRIS erzeugt und der Logikschaltung 224 zugeführt werden, die die Treiber für die Ausgangsstufe 240 aufweist und Steuersignale für die Transistoren 232 und 234 erzeugt. Die Logikschaltung 224 kann steuerbare Treiber für die Transistoren 232 und 234 aufweisen und das Signal TRIS kann verwendet werden, um diese Treiber zu deaktivieren, wodurch eine Tristate-Funktion der Treiberstufe 240 gesteuert wird. Wenn als ein Ausgangsport programmiert ist, stellt der Bitregister-Latch 208 die grundlegende digitale Ausgangsfunktion für die CPU für ein Bit bereit, das auf einem Datenbus an den D-Eingang des Bitregister-Latch 208 bereitgestellt wird. Der Multiplexer 210 wird dann durch das Signal Sel auf Eingang 0 gesetzt. Der Multiplexer 210 umfasst herkömmlicherweise nur wenige, beispielsweise wie in 2 gezeigt, drei vordefinierte Eingänge, die es ermöglichen, den Pin 108 als einen Multifunktionspin zu betreiben. Pin 108 kann zum Beispiel als digitaler I/O-Pin, serieller Datenausgangspin einer ersten Peripherievorrichtung PerA, Zeitgeberausgangspin für zweite Peripherievorrichtung PerB oder als analoger Eingangspin arbeiten, was normalerweise die Standardeinstellung ist. Mehr oder weniger Kombinationen können möglich sein, jedoch sind herkömmliche Entwürfe normalerweise in der Anzahl der möglichen vordefinierten Auswahlen begrenzt. Jeder Multifunktionspin 108 weist normalerweise einen anderen vordefinierten Auswahlsatz auf. Die Auswahl erfolgt in der Regel automatisch bei der Konfiguration der jeweiligen Peripherievorrichtung per Software. Wenn beispielsweise eine Peripherievorrichtung mit seriellem Port aktiviert ist, wird die I/O-Port-Schaltung eines jeweiligen zugeordneten Multifunktionspins 108 durch das Signal Sel gesteuert, um den jeweiligen Eingang auszuwählen, der der jeweiligen Peripherievorrichtung zugeordnet ist.
  • Gemäß einigen Ausführungsformen erweitert eine erste Peripherie-Pin-Auswahleinheit (PPS) 212 die Funktionalität eines solchen herkömmlichen Multiplexers und ermöglicht die Zuweisung verschiedener anderer Ausgänge verschiedener Peripherievorrichtungen zur Verwendung mit Pin 108 zum Beispiel über n Eingangsleitungen 211. Die Konfiguration des PPS wird jedoch nicht automatisch durchgeführt, vielmehr weist das erste PPS 212 programmierbare Register auf, wie in 3 genauer erläutert wird, die es ermöglichen, eine vordefinierte Anzahl von Ausgangssignalen von verschiedenen Peripherievorrichtungen auszuwählen, die an Pin 108 geleitet werden sollen. Eine vollständigere Beschreibung eines PPS ist in Abschnitt 10.4 von „dsPIC33E/PIC24E Family Ref. Manual, Sect. 10 /I/O Ports“, 2009-2013, erhältlich von Microchip Technology Inc., verfügbar, die hiermit in ihrer Gesamtheit durch Bezugnahme aufgenommen wird.
  • Wie oben erwähnt, bietet der erste PPS 212 über die Leitungen 211 mehr Ausgangswahlmöglichkeiten aus einer Vielzahl von Peripherievorrichtungen als ein herkömmlicher Multiplexer, der normalerweise auf nur wenige Wahlmöglichkeiten beschränkt ist. Eine Peripherie-Pin-Auswahleinheit kann auch eine zusätzliche Eingangsauswahl bereitstellen, wie unten ausführlicher in Bezug auf den Multiplexer 202 erklärt wird, der ein zweites PPS bildet. Ein PPS wie der erste PPS 212 kann einfach als ein erweiterter Multiplexer interpretiert werden, der von Konfigurationsregistern (nicht gezeigt) gesteuert wird. Sein Hauptzweck ist der gleiche wie der des Multiplexers 210, nämlich verschiedene interne Ausgangssignale zur Treiberstufe 240 zu leiten. 2 zeigt nur eine Ausführungsform einer I/O-Port-Schaltung. Andere mehr oder weniger komplexe I/O-Port-Schaltungen können verwendet werden, um die I/O-Funktion eines externen Pins 108 zu steuern.
  • Gemäß einer Ausführungsform leitet der Multiplexer 210 das Ausgangssignal des Bitregister-Latch 208 durch die Logik 224 an die Ausgangstreiberstufe 240, die ein Paar von Treiber-MOSFETs 232 und 234 aufweisen kann, die angeordnet sind, um die Kontaktstelle 106 und den externen Pin 108 auf logisch hoch oder niedrig zu steuern. Die Logik 224 kann in der Treiberstufe enthalten sein oder kann optional implementiert werden, um weiterhin beispielsweise eine Open-Drain-Funktion zu ermöglichen und/oder für schwache oder starke Pull-Up- und/oder Pull-Down-Widerstände dieses Ports bereitzustellen, entsprechend einer Einstellung in den Konfigurationsregistern 260 durch das Steuersignal 238. Die Ausgangstreiberstufe 240 kann optional ein oder mehrere analoge Durchgangsgatter 236 bereitstellen, um eine zusätzliche analoge Ausgangsfunktion für das Pad 106/Pin 108 bereitzustellen. Wie in 2 gezeigt, kann der Multiplexer 210 gemäß einer Ausführungsform zwei zusätzliche Eingänge aufweisen, die mit einer Peripherievorrichtung PerA und PerB gekoppelt sind, was jeweils einen grundlegenden Multifunktions-Pin ermöglicht. Abhängig von dem durch die Peripherievorrichtungen bereitgestellten Steuersignal SEL wählt der Multiplexer 210 entweder das Bitregister-Latch 208 oder einen der anderen Eingänge aus, um eine Ausgabesteuerung einer Peripherievorrichtung zu ermöglichen. Der erste PPS 212 kann optional implementiert werden, was eine weitere Auswahl verschiedener peripherer Ausgabefunktionen ermöglicht, die durch Multiplexen der Ausgabe des Multiplexers 210 mit den zusätzlichen Signalen 211 ausgewählt werden. Der erste PPS 212 wird durch das Signal 228 gesteuert, das durch Logik (nicht gezeigt) erzeugt wird, die eine Einstellung in den zugehörigen Konfigurationsregistern (in 2 nicht gezeigt) dekodiert.
  • Die Eingangsfunktionalität/der Eingangsabschnitt wird durch die Treiber 204, 216, 218 und die Multiplexer 202 und/oder 270 und 214 gesteuert. Das Signal ANSELx deaktiviert die Treiber 216 und 218, um die Kontaktstelle 106/Pin 108 als einen analogen Eingangsanschluss zu betreiben. Der Multiplexer 214 wählt zwischen dem Schmidt-Triggertreiber 216 und dem TTL-Treiber 218 als Reaktion auf ein Steuersignal INLVLx aus, das als Reaktion auf den ausgewählten der Treiber 216, 218 eine TTL- oder eine Schmidt-Triggereingabe bereitstellen kann. Gemäß verschiedenen Ausführungsformen ist nur einer dieser Treiber implementiert. Der Multiplexer 202 bildet einen Teil eines zweiten PPS und reagiert auf ein Steuersignal PPSin, das durch eine Vielzahl von Eingangszuweisungsregistern (in 2 nicht gezeigt) bereitgestellt wird, und kann bereitgestellt werden, um die Verwendung von Pad 106/Pin 108 als Eingangspin für eine größere Auswahl an spezifischen Peripherievorrichtungen ähnlich dem ersten PPS zu ermöglichen. Der Multiplexer 202 stellt Eingänge für eine Vielzahl anderer Pads und die zugehörige IO/Port-Schaltung bereit und liefert ein einzelnes Ausgangssignal für eine Peripherievorrichtung PerE. Abhängig von der Anzahl von Peripherievorrichtungen, die möglicherweise ein Eingangssignal benötigen, können mehrere solcher Multiplexer 202 in dem zweiten PPS implementiert werden. Alternativ oder zusätzlich kann, wie durch die gestrichelte Linie gezeigt, ein herkömmlicher Multiplexer 270 implementiert werden, der es ermöglicht, ähnlich dem Multiplexer 210 das Eingangssignal von Pad 106/Pin 108 zu einer ausgewählten Peripherievorrichtung zu leiten. Eine komplexere Beschreibung des Eingangs-PPS ist im oben erwähnten Dokument „dsPIC33E/PIC24E Family Ref. Manual, Sect. 10 /I/O Ports“ verfügbar. Der Multiplexer 270 kann durch das Signal 275 gesteuert werden, das einen seiner vielfachen Ausgänge zur Kopplung mit seinem Eingang auswählt, der entweder mit dem Ausgang des Multiplexers 214 oder direkt mit Pad 106/Pin 108 verbunden ist. Ähnlich dem Multiplexer 210 wird dieser Multiplexer 260 durch das Signal 275 gesteuert, das durch die Peripherievorrichtungen PerC und PerD bereitgestellt wird, wenn eine ausgewählte Peripherievorrichtung PerC oder PerD, die dem Multifunktionspin 108 zugewiesen ist, konfiguriert ist.
  • Die grundlegende digitale Eingangsfunktion für die CPU wird durch den Treiber 204 bereitgestellt, der seinen Ausgang als Reaktion auf ein empfangenes Lese-PORTx-Steuersignal auf den Datenbus steuert. Außerdem kann ein Benutzer auch die Ausgabe des Bitregister-Latch 208 über den Treiber 206 lesen, der ähnlich angeordnet ist, um ansprechend auf ein empfangenes Lese-LATx-Steuersignal seine Ausgabe auf den Datenbus zu treiben. 2 zeigt eine Vielzahl von Portfunktionen und -konfigurationen. Trotz der grundlegenden digitalen I/O-Funktion, die von dem Bitregister-Latch 208 und dem Treiber 204 sowie der Basistreiberstufe 240 bereitgestellt wird, können andere Funktionen in Abhängigkeit von der Implementierung und den gewünschten Multifunktionen des jeweiligen Ports individuell hinzugefügt oder weggelassen werden. Die Ausgangsstufe 240 kann auch einen ESD-Schutz bereitstellen, wie in 2 gezeigt. Der Port kann weiterhin optional eine Interrupt-bei-Änderungs-Funktionalität durch die Detektionsschaltung 250 bereitstellen, die einen Interrupt INT an die CPU erzeugen kann.
  • Unter Bezugnahme auf 3 ist ein schematisches Blockdiagramm einer „virtuellen Port“-Schaltung gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung für ein einzelnes Bit dargestellt, die beispielsweise die Schaltung 160 in 1a darstellt. Das allgemeine Port-Design kann jedoch auch mit dem in 2 gezeigten Port-Design identisch sein, mit der Ausnahme, dass kein externer Pin über das Pad 106 verbunden ist. 3 zeigt bestimmte Teile der Port-Bit-Schaltung, die verwendet werden können, wenn dieser Port als „virtueller Port“ aktiviert wird. In einigen Ausführungsformen kann, wie durch die gestrichelte Verbindungslinie angezeigt, kein Pad 106 physisch mit der Ausgangs-/Eingangsleitung 318 (als 318a und 318b gezeigt) verbunden sein. Die in 3 gezeigte „virtuelle Port“-Schaltung kann daher nicht physikalisch mit einem I/O-Pad 106 gekoppelt sein, hat aber immer noch die Funktionalität, mit einem „virtuellen Port“ verbunden zu sein. Die „virtuelle Port“-Schaltung wird, obwohl sie nicht mit einem externen Pin verbunden ist, als Routing-Mittel verwendet, um interne Signale an Peripherievorrichtungen zu schalten, die ansonsten intern nicht verfügbar sind. Somit können in einer „virtuellen Portschaltung“ nun Ausgangssignale als Eingangssignale und Eingangssignale als Ausgangssignale betrachtet werden. Die durch das Signal 316 gesteuerte Signalaufbereitungslogik 314 kann gemäß einigen Ausführungsformen auch weggelassen werden. Falls vorhanden, kann die Signalaufbereitungslogik 314 permanent konfiguriert sein, um eine Standardausgangsfunktion bereitzustellen, wie beispielsweise eine Anstiegssteuerung, Pull-Up-, Pull-Down-, Open-Drain-Funktionalität. Jedoch kann die Konfiguration der Signalaufbereitungslogik 314 zum Bereitstellen einer Pull-Up-, Pull-Down- und Open-Drain-Funktionalität für den „virtuellen Port“ gemäß einigen Ausführungsformen ähnlich der Logikschaltung 224 in 2 verwendet werden. In anderen Ausführungsformen sind Analogsignal-, Tristate- und Pull-up-Steuerung, die von der Signalkonditionierungslogik 314 bereitgestellt werden, möglicherweise nicht erforderlich, noch sind Porttreiber und TTL/Schmidt-Trigger, wie in 2 verwendet, erforderlich. Wenn diese vorhanden sind, kann ihre Funktionalität daher deaktiviert oder die am besten geeignete ausgewählt werden. Wenn ein Mikrocontroller-Design einer bestimmten Anzahl externer Pins gewidmet ist, sind möglicherweise keine ungenutzten Ports vorhanden und eine Mindestkonfiguration eines „virtuellen Ports“ kann mit oder ohne Pad 106 implementiert werden, wobei die Schaltungen weggelassen werden, die nur erforderlich sind, wenn ein tatsächlicher externer Pin mit dem Port verbunden ist.
  • Gemäß einer Ausführungsform können Multiplexer 310, 330 verwendet werden, um verschiedene Peripherievorrichtungen miteinander zu verbinden. Ein erster Multiplexer 330 entspricht dem Multiplexer 270 in 2 und ein zweiter Multiplexer 310 entspricht dem Multiplexer 210. Auch hier werden diese Multiplexer 330, 310 automatisch von einer Logikschaltung 311 gesteuert, um Eingangs- oder Ausgangssignale auszuwählen, wenn die jeweiligen Peripherievorrichtungen wie oben erläutert konfiguriert sind. 3 zeigt, dass die Logikschaltung 311 Konfigurationssteuerdaten von einer entsprechenden Peripherievorrichtung empfängt, die der spezifischen Schaltung „virtueller Port“ zugeordnet ist.
  • Stattdessen oder zusätzlich kann ein PPS, wie mit dem ersten und zweiten PPS 212, 202 in 2 gezeigt, eine erweiterte Auswahl von Peripherievorrichtungen bereitstellen, die ein Signal bereitstellen, und Peripherievorrichtungen zum Empfangen des ausgewählten Signals.
  • Insbesondere kann ein PPS das bevorzugte Verfahren zum Leiten von Signalen durch einen „virtuellen Port“ intern zwischen verschiedenen Peripherievorrichtungen sein, da seine Konfiguration durch Register gesteuert wird, anstatt eine automatische Steuerung durch Konfiguration einer Peripherievorrichtung.
  • Zu diesem Zweck zeigt 3 ein erstes PPS 302 mit mehreren Multiplexern 302a..n, die jeweils einen Ausgang aufweisen, der mit einer anderen Peripherievorrichtung gekoppelt ist. Die Multiplexer 302a..n werden durch eine Logikschaltung 303 gesteuert, die ausgebildet ist, um eine Einstellung von Ausgangszuweisungsregistern 360 zu decodieren. Jeder Multiplexer 302a..n kann einem zugeordnet sein oder ein Ausgangszuweisungsregister 360 kann konfiguriert sein Einstellinformationen für mehrere Multiplexer 302a..n bereitzustellen. Somit wird ein auf Leitung 318a,b empfangenes Signal durch die Multiplexer 302a..n zu einem Eingang einer ausgewählten Peripherievorrichtung geleitet.
  • Falls gewünscht, können ein Bitregister-Latch 308 und Treiber 304, 306 für die Softwareeingabe von Steuersignalen in die ausgewählte Peripherievorrichtung implementiert werden. Gemäß einigen Ausführungsformen sind der Bitregister-Latch 308 und die Treiber 304, 306 möglicherweise nicht implementiert. Außerdem kann ein von der Schaltung 320 bereitgestellte Port-Interrupt bei Änderung gemäß den Lehren dieser Offenbarung ein gewünschtes Merkmal sein. Jede der gewünschten Funktionalitäten kann gemäß verschiedenen Ausführungsformen implementiert werden. Wenn also ein Port bereits verfügbar ist und in einer herkömmlichen Vorrichtung deaktiviert wäre, kann die erneute Aktivierung eines solchen Ports jede Funktion verwenden, die er zum Leiten von Signalen zu einer Peripherievorrichtung unterstützt.
  • 3 zeigt die Stromversorgungsschaltung 301, die den verschiedenen Komponenten der „virtuellen Port“-Schaltung Strom liefert. Dadurch kann jedes Bit eines „virtuellen Ports“ einzeln deaktiviert werden, indem die jeweilige Stromversorgung gesteuert wird. Die Stromversorgungsschaltung 301 empfängt ein oder mehrere Signale von der Logikschaltung 150 (in 1a gezeigt). Das Deaktivieren und erneute Aktivieren der verschiedenen „virtuellen Port“-Schaltungen ist optional. Gemäß einer Ausführungsform sind alle I/O-Portschaltungen, die nicht mit einem externen Pin verbunden sind, zunächst deaktiviert, beispielsweise indem ihnen keine Energie zugeführt wird, und können durch die Logikschaltung 150 wie oben erläutert wieder aktiviert werden. Gemäß einigen Ausführungsformen sind alle I/O-Ports zunächst aktiviert und können durch Software deaktiviert werden, zum Beispiel wenn sie in einer bestimmten Anwendung nicht benötigt werden. Gemäß anderen Ausführungsformen sind alle I/O-Port-Schaltungen immer aktiviert.
  • Zumindest würde eine „virtuelle Port“-Schaltung einen Multiplexer 330 oder einen PPS 302 verwenden, um das „virtuelle Port“-Signal auszuwählen, das auf Leitung 318a, b bereitgestellt wird. Zur Auswahl des Signals „virtueller Port“ ist zumindest entweder ein Bitregister-Latch 308 und/oder eine andere Multiplexerschaltung vorgesehen. Diese Multiplexerschaltung weist entweder den Multiplexer 310 und/oder PPS 312 auf. Wiederum wird der Multiplexer 311 durch die Steuerlogik 311 gesteuert, die Konfigurationsdaten von zugewiesenen Peripherievorrichtungen empfängt, um automatisch eine entsprechende Peripherievorrichtung auszuwählen, wenn dies konfiguriert wurde. PPS 312 weist einen Multiplexer auf, der von einer Logikschaltung 313 gesteuert wird, die ein entsprechendes Ausgangszuweisungsregister 370 decodiert. Das Ausgangszuweisungsregister 370 ist der spezifischen „virtuellen Portschaltung“ zugeordnet, und seine gespeicherten Informationen definieren, welches Ausgangssignal welche Peripherievorrichtung von dem Multiplexer des PPS 312 ausgewählt werden soll. Die Treiber 304 und/oder 306 können zum Debuggen verwendet werden, insbesondere zum Bereitstellen einer Logikanalysatorfunktion durch die integrierte Programmier-/Debugging-Schnittstelle. Zum Beispiel ermöglicht der Treiber 304 das Lesen eines logischen Zustands der Leitung 318a,b und der Treiber 306 ermöglicht das Lesen eines aktuellen logischen Ausgangszustands des Latch 308.
  • 3 zeigt auch einige beispielhafte weitere Steuerregister 380 und 390 zum Steuern des „virtuellen Ports“ direkt über die CPU. Jedes Bit des Logiksteuerregisters 380 und des Zwischenspeicherregisters 390 kann ein anderes Bit des „virtuellen Ports“ steuern. Zum Beispiel entspricht ein einzelnes Bit im Latch-Register 390 dem Bit-Register-Latch 308. In einer Ausführungsform, bei der die Logikschaltung 316 verwendet wird und zum Beispiel eine Pull-Up-Funktion steuert, steuert ein einzelnes Bit des Registers 380 diese Funktion direkt durch Leitung 316. Die jeweiligen anderen Bits in den Registern 380, 390 steuern jeweils andere Portschaltungen. Das Ausgangszuweisungsregister 360 und das Eingangszuweisungsregister 370, wie oben erläutert, sind keine Bit-organisierten Register wie die Register 380, 390. Sie sind typischerweise Register der Vielzahl von Konfigurationsregistern der peripheren Pin-Auswahlschaltungen 302 und 312 und sind daher unterschiedlich organisiert. Wie oben erwähnt, kann das Eingangszuweisungsregister 370 konfiguriert sein, um eine ausgewählte Eingangssignalquelle zu definieren, indem ein entsprechendes Codewort in das Register 370 geschrieben wird. Zum Beispiel kann eine von 16 verschiedenen Eingangssignalquellen, die zum Multiplexer des PPS 312 geleitet werden, definiert werden wenn 4 Bit verwendet werden. Somit werden diese vier Bits an die jeweilige Logik 313 geleitet, die den PPS 312 steuert. Ein 8-Bit-Register kann dem jeweiligen Port-Bit eine von 256 verschiedenen Eingangsquellen zuweisen. Das Eingangszuweisungsregister 370 kann somit abhängig von der Anzahl verfügbarer Eingangssignale ausgelegt werden.
  • Das Ausgangszuweisungsregister 360 kann so ausgelegt sein, dass es einem einzelnen Peripherieeingang zugeordnet ist, und somit kann ein in einem solchen Register gespeicherter Wert die jeweilige Port-Bitschaltung definieren. Gemäß einer Ausführungsform können 16 Multiplexer 302a..n in dem Eingangs-PPS 302 vorhanden sein, wie in 3 gezeigt, wobei jeder einen Ausgang für eine andere Peripherievorrichtung aufweist. Dieses Register 360 steuert somit beispielsweise durch eine Vier-Bit-Logik 303, die den jeweiligen der Vielzahl von Multiplexern 302a ..n steuert, um das auf Leitung 318a, b bereitgestellte Signal als ein Eingangssignal für die jeweilige Peripherievorrichtung auszuwählen. Bei den Multiplexern 302a..n kann einer ihrer mehreren Eingänge nicht verbunden sein, um eine Vorgabeeinstellung zu ermöglichen, bei der kein Signal durch den Multiplexer 302a..n zu der jeweiligen Peripherievorrichtung geleitet wird. Auch hier kann die Anzahl der zum Codieren einer solchen Zuweisung verwendeten Bits in Abhängigkeit von der Anzahl der verfügbaren Peripherieeingänge variieren.
  • Abhängig von den implementierten Funktionen, wie beispielsweise der Signalaufbereitungslogik 314 und/oder der Unterbrechungsschaltung 320, können mehr oder weniger weitere Steuerregister für eine Schaltung „virtueller Port“ bereitgestellt werden.
  • 4 zeigt einen herkömmlichen Mikrocontroller 410, wie zuvor in 1 gezeigt, mit 8 externen Stromversorgungspins 420, 430 und Multifunktionspins 440a..f, der ein bestimmtes Ausgangssignal nur über den externen Pin 440b bereitstellt. Eine andere Peripherievorrichtung kann dieses Signal an einer ihrer Eingänge erfordern, der auch so konfiguriert werden kann, dass er über den externen Pin 440d angeschlossen wird. Somit muss eine externe Schaltung eine Signalverbindung 450 bereitstellen, um die Pins 440b und 440d zu verbinden. Ein Benutzer verliert jetzt 2 externe Pins, die für andere Funktionen verfügbar gewesen wären. Falls diese zusätzlichen 2 externen Pins für andere Zwecke benötigt werden, muss ein Benutzer seine Schaltung mit einem anderen Mikrocontroller mit einer höheren Anzahl externer Pins entwerfen.
  • 5 zeigt eine erste Ausführungsform eines Mikrocontrollers 500 gemäß der vorliegenden Beschreibung. Dieser Mikrocontroller weist mehrere Port-Bits auf, die zu Chippads geleitet werden, die nicht mit einem externen Pin verbunden sind. Diese Pads 510 werden normalerweise deaktiviert, beispielsweise indem dem Ausgabeabschnitt 520 und dem Eingabeabschnitt 540 der jeweiligen I/O-Port-Schaltung kein Strom zugeführt wird. Während der Konfiguration der Vorrichtung wird das zugehörige Port-Bit des Pads 510 wieder freigegeben, indem diese Abschnitte 520, 540 mit Strom versorgt werden und nun als „virtuelle Port“-Schaltung arbeiten. Der Ausgabeabschnitt 520 und der Eingabeabschnitt 540 des Port-Bits sind daher mit dem Pad 510 gekoppelt und können nun als Schalttafel zum Bereitstellen interner Verbindungen verwendet werden. 5 zeigt auch beispielhafte Multiplexer oder PPS-Schaltungen 530 und 550 zum Auswählen und Stummschalten des Eingangssignals, das von der Peripherievorrichtung 560 an eine jeweilige ausgewählte Peripherievorrichtung 570 bereitgestellt wird, wie durch die gestrichelten internen Verbindungslinien angezeigt.
  • 6 zeigt ein weiteres Beispiel, bei dem ein dedizierter Entwurf eines Mikrocontrollers 600 mit einer geringen Anzahl externer Pins gemäß verschiedenen Ausführungsformen mit einem „virtuellen Port“ verbessert wird. Dieses Design besteht nur aus der notwendigen Anzahl von Pads, d.h. es gibt genau die gleiche Anzahl von Pads und externen Pins. Einige Designs können jedoch aus anderen Gründen mehr Pads aufweisen. Das Design des Chips des Mikrocontrollers 600 weist jedoch nur die Anzahl von Ports auf, die der Anzahl verfügbarer externer Pins entspricht, in diesem Beispiel 6 Port-Bits und zugehörige I/O-Portschaltungen (nicht gezeigt). Gemäß einer Ausführungsform wird dieses Design verbessert, indem zumindest eine zusätzliche Port-Bit-Schaltung bereitgestellt wird, die nicht mit einem Chip-Pad und einem externen Pin verbunden ist. Die Port-Bit-Schaltung weist einen Eingangsabschnitt 640 und einen Ausgangsabschnitt 620 sowie zugehörige Multiplexer 630 und 650 des jeweiligen virtuellen Ports auf. Die Multiplexer 630 und 650 sind wiederum vorzugsweise Teil eines jeweiligen PPS.
  • Beide Ausführungsformen von 5 und 6 können wie oben mit Bezug auf 2 und 3 erläutert konfiguriert werden, insbesondere in Bezug auf die Mindestanforderungen an ein Port-Bit-Design der Ausführungsform von 6. Beide Ausführungsformen können nun die Signale intern leiten, die in der in 4 gezeigten Schaltung extern geleitet werden und daher zwei zusätzliche externe Pins aktivieren, während sie nur eine zusätzliche Port-Bit-Schaltung benötigen. Eine vordefinierte Anzahl dieser zusätzlichen Port-Bits, die einen „virtuellen Port“ bilden können, kann gemäß verschiedenen Ausführungsformen implementiert werden. Obwohl sie für Mikrocontroller mit niedriger Pinzahl besonders vorteilhaft sind, können die verschiedenen offenbarten Ausführungsformen auch in Vorrichtungen mit hoher Pinzahl implementiert werden, die keine interne Stummschaltung für alle Eingangs- und/oder Ausgangssignale verschiedener Peripherievorrichtungen, insbesondere kernunabhängiger Peripherievorrichtungen, bereitstellen. Ein „virtueller Port“ fungiert somit als interne Schaltplatine für interne Signale eines Mikrocontrollers. Die Verwendung von „virtuellen Ports“ kann weiterhin eine Verringerung der Größe des herkömmlichen internen Eingangsauswahl-Multiplexers ermöglichen, beispielsweise der in 2 gezeigten Multiplexer 210 und 270, die ansonsten erforderlich wären, wie im Abschnitt Hintergrund erläutert. Diese herkömmlichen Eingangsmultiplexer müssen möglicherweise nicht für jede mögliche Verbindung ausgelegt sein und weisen daher eine reduzierte Größe auf, da die „virtuellen Ports“ zusätzliche Verbindungsmöglichkeiten bereitstellen.
  • 7 zeigt eine andere Ausführungsform eines Mikrocontrollers 700, der in Kombination mit einem schaltungsinternen Emulator oder Programmierer/Debugger verwendet wird. Der Mikrocontroller kann ein beliebiger Mikrocontroller gemäß der vorliegenden Beschreibung sein. Hier ist eine 12-Pin-Vorrichtung mit einem beispielhaften „virtuellen Port“ 710 und einer integrierten Programmier-/Debugger-Schaltung 720 gezeigt. Die Programmier-/Debugger-Schaltung 720 stellt Debugging-Fähigkeiten für den Chip bereit, wie sie aus dem Stand der Technik bekannt sind, zum Beispiel durch eine dedizierte Schnittstelle 770 unter Verwendung der Multifunktionspins 780 und 790. Die Debugger-Schaltung 720 hat Zugriff auf die „virtuelle Port“-Schaltung 710 und kann in Echtzeit logische Zustände der durch den „virtuellen Port“ 710 gerouteten Eingangs-/Ausgangssignale an den Eingang von Schaltungsemulator/Debugger 760 übertragen. Somit kann die schaltungsinterne Emulator/Debugger-Vorrichtung 760 diese logischen Zustände empfangen und sie an eine integrierte Entwicklungsumgebung (IDE) zu leiten, wie beispielsweise MPLAB X, hergestellt durch den Anmelder der vorliegenden Patentanmeldung. Die IDE läuft auf einem Host 750 und kann nun beispielsweise eine Logikanalysatorfunktion der Signale bereitstellen, die durch die verschiedenen „virtuellen Port“-Schaltungen geleitet werden.
  • 8 zeigt ein Flussdiagramm des Hochfahrens eines Mikrocontrollers gemäß verschiedenen Ausführungsformen. In Schritt 810 empfängt ein Mikrocontroller über externe Pins eine Versorgungsspannung Vdd, Vss. Während des Schritts 810 kann der Mikrocontroller abhängig von seinem Design verschiedene Schaltungen einschalten. Der Mikrocontroller kann ein Mikrocontroller 102 sein, wie in 1 gezeigt, der eine Vielzahl von extern nicht verbundenen Pads 106 aufweist, die mit jeweiligen I/O-Port-Schaltkreisen 160 gekoppelt sind, sowie Bonddraht 116 zwischen den Pads 112 und 114, wie in 1a gezeigt. In Schritt 820 wird die Decodierlogikschaltung 118 eingeschaltet und decodiert den Logikzustand von Pad 112 als auf Masse gezogen und sendet daher ein Signal an die Logikschaltung 150, das die jeweilige I/O-Schaltung 160 deaktiviert, die mit Pads 106 gekoppelt ist, die keine externe Verbindung aufweisen. Das Deaktivieren der nicht verbundenen I/O-Ports wird vorzugsweise durchgeführt, indem den I/O-Port-Schaltungen 160 keine Versorgungsspannung zugeführt wird.
  • Eine andere Konfiguration des Mikrocontrollers 102 kann vor oder nach Schritt 820 durchgeführt werden. Wenn ein Benutzer die ungenutzten I/O-Ports, die interne Signale wie oben beschrieben leiten, nicht benötigt, kann das Hochfahren enden und die Firmware, wie im Mikrocontroller programmiert, kann ausgeführt werden. Wenn ein Benutzer jedoch eine bestimmte I/O-Port-Schaltung 160 verwenden möchte, um interne Signale zu routen, dann kann die Firmware zuerst Schritt 830 ausführen. Dieser Schritt weist Anweisungen auf, die eine erneute Freigabe eines vordefinierten Satzes von deaktivierten I/O-Ports bewirken. Zu diesem Zweck kann die Logikschaltung 150 Einstellregister 155 aufweisen, die von der CPU programmiert werden können, um die zuvor deaktivierten I/O-Ports wieder freizugeben. Alternativ können dedizierte Befehle ausgeführt werden, die definieren, welche der deaktivierten I/O-Ports wieder aktiviert werden. Die Firmware 840 kann dann weiterhin Anweisungen aufweisen, die die virtuellen Ports konfigurieren, um Signale intern nach Wunsch zu leiten.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/857036 [0001]

Claims (17)

  1. Mikrocontroller, der eine Zentraleinheit und eine Vielzahl von Peripherieeinheiten und eine Vielzahl von Port-Bit-Schaltungen aufweist, die durch zumindest einen Eingangs-/Ausgangs-Port bereitgestellt werden, wobei zumindest eine Port-Bit-Schaltung der Vielzahl von Port-Bit-Schaltungen nicht mit einen externen Pin verbunden ist und wobei die zumindest eine Port-Bit-Schaltung konfigurierbar ist, um ein an der Port-Bit-Schaltung empfangenes Signal an eine ausgewählte Peripherievorrichtung des Mikrocontrollers zu leiten.
  2. Mikrocontroller, der eine Zentraleinheit, eine Vielzahl von Peripherievorrichtungen und eine Vielzahl von Eingabe-/Ausgabe-Ports aufweist, wobei zumindest einer der Eingabe-/Ausgabe-Ports eine Vielzahl von Bits aufweist, die mit externen Pins des Mikrocontrollers verbunden sind, und wobei zumindest eine Port-Bit-Schaltung der Vielzahl von Eingangs-/Ausgangs-Ports nicht mit einem externen Pin verbunden ist und wobei die zumindest eine Port-Bit-Schaltung konfigurierbar ist, um ein an der Port-Bit-Schaltung empfangenes Signal an eine ausgewählte Peripherievorrichtung des Mikrocontrollers zu leiten, wobei jedes Port-Bit, das nicht mit einem externen Pin verbunden ist, zunächst deaktiviert ist und durch Konfiguration wieder aktiviert werden kann, wobei die zumindest eine Port-Bit-Schaltung einen ersten Multiplexer aufweist, der ausgebildet ist, um das Signal auszuwählen, und wobei der erste Multiplexer mit einem Bit eines Port-Latch-Registers und mit Ausgängen einer Vielzahl von Peripherievorrichtungen des Mikrocontrollers gekoppelt ist.
  3. Mikrocontroller gemäß Anspruch 1, wobei jedes Port-Bit, das nicht mit einem externen Pin verbunden ist, zunächst deaktiviert ist und durch Konfiguration wieder aktiviert werden kann.
  4. Mikrocontroller gemäß einem der Ansprüche 1 bis 3, der eine konfigurierbare Sicherung zum erneuten Aktivieren eines Port-Bits aufweist.
  5. Mikrocontroller gemäß einem der Ansprüche 1 bis 4, wobei das zumindest eine Port-Bit mit einem Chip-Pad verbunden ist.
  6. Mikrocontroller gemäß einem der Ansprüche 1 bis 5, wobei das Eingangssignal von einem Bit eines Bit-Register-Latch bereitgestellt wird.
  7. Mikrocontroller gemäß einem der Ansprüche 1 bis 6, wobei die zumindest eine Port-Bit-Schaltung einen ersten Multiplexer aufweist, der ausgebildet ist, um das Signal auszuwählen.
  8. Mikrocontroller gemäß einem der Ansprüche 1 bis 7, der weiterhin eine Auswahlschaltung aufweist, die einen Multiplexer aufweist, der von einem ersten Register gesteuert wird und ausgebildet ist, um das Signal auszuwählen.
  9. Mikrocontroller gemäß einem der Ansprüche 1 bis 8, wobei die zumindest eine Port-Bit-Schaltung einen zweiten Multiplexer aufweist, der ausgebildet ist, um ein Ziel für das Signal auszuwählen.
  10. Mikrocontroller gemäß Anspruch 9, wobei der zweite Multiplexer von einem zweiten Register gesteuert wird und konfigurierbar ist, um die zumindest eine Port-Bit-Schaltung einer ausgewählten Peripherievorrichtung des Mikrocontrollers zuzuordnen.
  11. Mikrocontroller gemäß einem der Ansprüche 1 bis 10, der weiterhin zumindest eine weitere I/O-Port-Schaltung mit einer Vielzahl von Bits aufweist, wobei zumindest einige der Vielzahl von Bits externen Pins des Mikrocontrollers zugeordnet sind.
  12. Mikrocontroller gemäß einem der Ansprüche 1 bis 11, wobei der erste Multiplexer von einem Konfigurationsregister gesteuert wird und ausgebildet ist, um das Eingangssignal bereitzustellen.
  13. Verfahren zum Betreiben eines Mikrocontrollers, der eine Zentraleinheit und eine Vielzahl von Peripherieeinheiten und eine Vielzahl von Port-Bit-Schaltungen aufweist, die durch zumindest einen Eingangs-/Ausgangs-Port bereitgestellt werden, wobei zumindest eine Port-Bit-Schaltung der Vielzahl von Port-Bit-Schaltungen nicht mit einem externen Pin verbunden ist, wobei das Verfahren aufweist: Auswählen einer Signalquelle für die zumindest eine Port-Bit-Schaltung; Auswählen eines Ziels für die zumindest eine Port-Bit-Schaltung, wodurch die zumindest eine Port-Bit-Schaltung ein Signal von der ausgewählten Signalquelle, das an der zumindest einen Port-Bit-Schaltung empfangen wird, zu einer ausgewählten Peripherievorrichtung des Mikrocontrollers leitet.
  14. Verfahren gemäß Anspruch 13, wobei jedes Port-Bit, das nicht mit einem externen Pin verbunden ist, zunächst deaktiviert wird, wobei das Verfahren weiterhin aufweist: Konfigurieren des Mikrocontrollers durch zumindest ein Konfigurationsregister, um den zumindest einen Eingangs-/Ausgangs-Port zu aktivieren.
  15. Verfahren gemäß einem der Ansprüche 13 bis 14, wobei die ausgewählte Eingangssignalquelle ein Port-Latch der zumindest einen Port-Bit-Schaltung ist, wobei das Verfahren weiterhin aufweist: Schreiben eines Wertes in den Port-Latch durch die zentrale Verarbeitungseinheit, um ein Eingangssignal für die ausgewählte Ausgangsquelle bereitzustellen.
  16. Verfahren gemäß einem der Ansprüche 13 bis 15, wobei das Auswählen der Eingangsquelle und/oder das Auswählen des Ziels durch Programmieren von Registern durchgeführt wird, wobei die Register einen ersten Multiplexer steuern, der die Signalquelle auswählt, und einen zweiten Multiplexer, der das Ziel auswählt.
  17. Verfahren gemäß einem der Ansprüche 13 bis 16, wobei der Mikrocontroller eine Programmier-/Debugging-Schnittstelle aufweist, die mit der zumindest einen Port-Bit-Schaltung gekoppelt ist, wobei das Verfahren weiterhin aufweist: Koppeln einer schaltungsinternen Emulator-/Fehlerbehebungsvorrichtung an die Programmier-/Fehlerbeseitigungsschnittstelle der Mikrocontroller; Erfassen von logischen Zuständen des Signals innerhalb der zumindest einen Port-Bit-Schaltung; und Weiterleiten der logischen Zustände an die schaltungsinterne Emulator/Debugger-Vorrichtung.
DE112019007402.4T 2019-06-04 2019-09-25 Virtuelle ports zum anschluss von kern-unabhängigen peripherievorrichtungen Pending DE112019007402T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962857036P 2019-06-04 2019-06-04
US62/857,036 2019-06-04
US16/550,648 US11379398B2 (en) 2019-06-04 2019-08-26 Virtual ports for connecting core independent peripherals
US16/550,648 2019-08-26
PCT/US2019/052826 WO2020247008A1 (en) 2019-06-04 2019-09-25 Virtual ports for connecting core independent peripherals

Publications (1)

Publication Number Publication Date
DE112019007402T5 true DE112019007402T5 (de) 2022-03-10

Family

ID=73650639

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007402.4T Pending DE112019007402T5 (de) 2019-06-04 2019-09-25 Virtuelle ports zum anschluss von kern-unabhängigen peripherievorrichtungen

Country Status (4)

Country Link
US (1) US11379398B2 (de)
CN (1) CN113906401A (de)
DE (1) DE112019007402T5 (de)
WO (1) WO2020247008A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI765543B (zh) * 2021-01-26 2022-05-21 創惟科技股份有限公司 用於車載主機系統的通用序列埠匯流排切換器之切換方法
US11886722B2 (en) * 2021-03-31 2024-01-30 Lenovo (Singapore) Pte. Ltd. Smart inclusion of technology at time of build
US11847077B2 (en) * 2021-12-06 2023-12-19 Himax Technologies Limited Serial peripheral interface integrated circuit and operation method thereof

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795448B1 (en) * 2000-03-02 2004-09-21 Intel Corporation IP packet ready PBX expansion circuit for a conventional personal computer with expandable, distributed DSP architecture
US8160864B1 (en) * 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US7076420B1 (en) * 2000-10-26 2006-07-11 Cypress Semiconductor Corp. Emulator chip/board architecture and interface
US6829727B1 (en) * 2001-01-12 2004-12-07 Metalink Corp. In-circuit emulation of single chip microcontrollers
US7185138B1 (en) * 2004-05-14 2007-02-27 Peter Galicki Multi-dimensional data routing fabric
US7406550B2 (en) * 2005-01-27 2008-07-29 Innovasic, Inc Deterministic microcontroller with configurable input/output interface
US7634596B2 (en) 2006-06-02 2009-12-15 Microchip Technology Incorporated Dynamic peripheral function remapping to external input-output connections of an integrated circuit device
JP4940064B2 (ja) * 2007-08-28 2012-05-30 ルネサスエレクトロニクス株式会社 半導体装置
US20100228926A1 (en) * 2009-03-09 2010-09-09 Cypress Semiconductor Corporation Multi-port memory devices and methods
US8269622B2 (en) * 2009-03-17 2012-09-18 Jetlun Corporation Method and system for intelligent energy network management control system
US8553466B2 (en) * 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8751729B2 (en) * 2010-12-23 2014-06-10 Samsung Electronics Co., Ltd. Flash memory device and memory system including the same
US9164679B2 (en) * 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9318166B2 (en) * 2011-07-22 2016-04-19 SanDisk Technologies, Inc. Systems and methods of storing data
US9904646B2 (en) * 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
EP2856692A4 (de) * 2012-05-31 2016-01-06 Intel Corp Datenschnittstellensynchronisation
US9009400B2 (en) * 2012-10-16 2015-04-14 Rambus Inc. Semiconductor memory systems with on-die data buffering
US9384822B2 (en) * 2013-03-15 2016-07-05 Gsi Technology, Inc. Systems and methods involving data bus inversion memory circuitry, configuration and/or operation including data signals grouped into 10 bits and/or other features
US20150026545A1 (en) * 2013-07-18 2015-01-22 Verayo, Inc. System and method for generating constellation-based information coding using physical noisy pseudo-random sources
US9245601B2 (en) * 2014-06-04 2016-01-26 Nvidia Corporation High-density latch arrays
US9921982B2 (en) 2014-06-05 2018-03-20 Microchip Technology Incorporated Device and method to assign device pin ownership for multi-processor core devices
US9747245B2 (en) * 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
US10116557B2 (en) * 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network
WO2017049323A1 (en) * 2015-09-17 2017-03-23 Innosys, Inc. Solid state lighting systems
US10872049B2 (en) * 2016-01-29 2020-12-22 Analog Devices, Inc. GPIO-to-GPIO communication on a multi-node daisy-chained network
CN105677616A (zh) * 2016-03-17 2016-06-15 李晓波 处理器实现管脚附加输入/输出功能可配置的方法及装置
US10249597B2 (en) * 2016-09-30 2019-04-02 Intel Corporation Systems, methods, and apparatuses for implementing die recovery in two-level memory (2LM) stacked die subsystems
US9972611B2 (en) * 2016-09-30 2018-05-15 Intel Corporation Stacked semiconductor package having fault detection and a method for identifying a fault in a stacked package
US11153277B2 (en) * 2016-10-24 2021-10-19 Mission Secure, Inc. Security system, device, and method for internet of things networks
US10931329B2 (en) * 2016-12-29 2021-02-23 Intel Corporation High speed interconnect with channel extension
JP7159208B2 (ja) * 2017-05-08 2022-10-24 マシモ・コーポレイション ドングルを使用することによって医療システムをネットワークコントローラとペアリングするためのシステム
US10847214B2 (en) * 2017-09-25 2020-11-24 Taiwan Semiconductor Manufacturing Company Limited Low voltage bit-cell
US10855367B2 (en) * 2017-10-02 2020-12-01 Fisher Controls International Llc Methods and apparatus to bridge communications between devices using low-energy devices
US10324689B2 (en) * 2017-11-21 2019-06-18 Intel IP Corporation Scalable memory-optimized hardware for matrix-solve
US11465631B2 (en) * 2017-12-08 2022-10-11 Tesla, Inc. Personalization system and method for a vehicle based on spatial locations of occupants' body portions
US11666240B2 (en) * 2019-01-03 2023-06-06 Northwestern University Ultra-low power, miniaturized electronic systems for monitoring physical parameters with wireless communication capabilities and applications of same
US11129308B1 (en) * 2020-04-10 2021-09-21 Ablecom Technology Inc. Server with a vibration sensing function
US20200257517A1 (en) * 2020-04-23 2020-08-13 Intel Corporation Firmware update techniques

Also Published As

Publication number Publication date
WO2020247008A1 (en) 2020-12-10
US20200387466A1 (en) 2020-12-10
CN113906401A (zh) 2022-01-07
US11379398B2 (en) 2022-07-05

Similar Documents

Publication Publication Date Title
DE602004007503T2 (de) REKONFIGURIERBARE ARCHITEKTUR FÜR SOCs
DE112019007402T5 (de) Virtuelle ports zum anschluss von kern-unabhängigen peripherievorrichtungen
DE69834401T2 (de) Businterfacesystem und verfahren
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE102004053801B4 (de) Dynamische Rekonfiguration von PCI-Expresslinks
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE102006030360A1 (de) Verfahren und Vorrichtung zum selektiven Zugreifen auf und zum Konfigurieren von einzelnen Chips eines Halbleiterwafers
DE102015217933B4 (de) Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung
DE69732889T2 (de) Mikrokontroller mit einer geringeren n-bit-datenbus-breite als anzahl i/o-ausgänge
DE3520003A1 (de) Elektrisch programmierbare verknuepfungsmatrix
DE4103107A1 (de) Einrichtung und verfahren zur steuerung eines mikrocomputers
EP0093947A1 (de) Programmierbare Logikanordnung
DE102013113262A1 (de) Auslöser-Leitwegeinheit
EP1205938B1 (de) Integrierte Schaltung mit Testbetriebsart und Verfahren zum Testen einer Vielzahl solcher integrierter Schaltungen
DE102014217321A1 (de) Mikrocontrollersystem und Verfahren für sicherheitskritische Kraftfahrzeugsysteme sowie deren Verwendung
DE69724575T2 (de) Integrierte Schaltung
DE102019132485A1 (de) Verwaltung von Zugriffsbeschränkungen innerhalb eines System-on-Chip
DE102006002521A1 (de) Signaturidentifikationsschaltung, Halbleiterchip, Mehrchipbauelement und Betriebsverfahren
EP0247502B1 (de) Programmierbare Schaltungsanordnung
DE60207144T2 (de) Schaltungsanordnung einer Rückwandleiterplatte
WO1998021725A2 (de) Zur abarbeitung von softwareprogrammen ausgelegte integrierte schaltung
EP0386296B1 (de) Zusammensetzung eines Mikrokontrollers
DE112019007474T5 (de) Mikrocontroller mit konfigurierbarer logikperipherie
DE2743068A1 (de) Leitungspufferschaltung zum anschluss einer kopplungseinrichtung an einen datenweg
DE102014013519A1 (de) Chipkontaktinseln

Legal Events

Date Code Title Description
R012 Request for examination validly filed