Startseite

UART mit MCP2221

Bei der Entwicklung einer Microcontroller-Schaltung ist es häufig sinnvoll, einen seriellen Port vorzusehen. Über den seriellen Port kann der Microcontroller mit einem PC kommunizieren.

Die meisten Microcontroller stellen dazu eine asynchrone serielle Schnittstelle bereit (UART), die im Wesentlichen kompatibel zu den seriellen Schnittstellen ist, die es früher in jedem Desktop-PC gab. Dazu benötigte man nur einen Pegelwandler, der häufig mit dem IC MAX232 realisiert war.

Serieller Port mit MAX232

Der MAX232 setzt den Pegel des Microcontrollers (also 5V/0V) auf den RS232-Peger (also +12V/-12V) der seriellen Schnittstelle um.

Heute hat kaum noch ein PC eine serielle Schnittstelle. Man kann sie aber über einen externen USB-Adapter anbinden. Solche USB-Adapter sind häufig um den IC FTDI232 aufgebaut.

Ich verwende dafür häufig den IC MCP2221. Dieser kann den 5V-Pegel des Microcontrollers unmittelbar verarbeiten. Er braucht keinen Pegelwandler.

Der MCP2221 braucht er nur eine minimale externe Beschaltung und kann daher gut auf die Platine des Microcontrollers mit aufgelötet werden. Statt den 5 Tantal-Elektrolytkondensatoren des MAX232 braucht der MCP2221 nur einen keramischen Kondensator. Die Schaltung dazu sieht so aus.

Serieller Port mit MCP2221

MCP2221-Treiber

Wenn man den MCP2221 auf Windows ansprechen will, dann benötigt man einen speziellen Treiber, den man sich auf der Homepage des Herstellers herunterladen kann. Für Linux ist alles im Betriebssystem integriert. Der MCP2221 funktioniert out-of-the-box.

Wenn unter Windows der Treiber installiert wurde, dann erscheint ein neuer COM-Port, sobald der MCP2221 über USB verbunden wird.

Unter Linux taucht ein neues Terminal-Gerät mit dem Präfix ttyACM auf. ACM steht hier für “Abstract Control Model”.

Der MCP2221 stellt dann einen seriellen Port zur Verfügung. Diesen kann man unter dem erkannten Gerätenamen ansprechen. Ich benutze dafür gerne das freie Terminal-Programm hterm. Das ist sowohl unter Windows als auch unter Linux verfügbar.