Frage:
Wie kann ich die Anzahl der Hardware-UARTs in einem Design mit einer einzelnen UART-MCU erhöhen?
CodePoet
2011-10-30 18:53:33 UTC
view on stackexchange narkive permalink

Ich verwende eine TI CC430-MCU, da sie ein eingebettetes CC1101-Radio-Frontend enthält. Ich würde wirklich gerne bei dieser MCU bleiben. Ich muss jedoch gleichzeitig mit einem separaten seriellen Radio, einem FTDI (uart-> USB) und einem RS232-GPS interagieren. Es wäre also schön, 3 separate UARTS auf der MCU zu haben.

Welche Optionen habe ich, um die Anzahl der UARTs zu erhöhen? Ich habe überlegt, eine CPLD hinzuzufügen und den einzelnen UART auf 3 Ausgänge zu muxen, aber ich mag diesen Ansatz wirklich nicht, weil es nicht wirklich 3 gleichzeitige Verbindungen gibt.

Drei antworten:
Hans
2011-10-30 19:27:56 UTC
view on stackexchange narkive permalink

Sie können einen zusätzlichen UART über SPI oder I2C hinzufügen. Diese enthalten interne FIFO-Puffer, sodass Sie sie regelmäßig auf Inhalt überprüfen und sie etwas puffern lassen. NXP, TI, Maxim bieten diese Teile wahrscheinlich an. MAX3100, SC16IS752 usw. Sie können auch eine zweite MCU hinzufügen, um dies zu tun. Da Sie jedoch bereits einen recht einfachen Mikrocontroller mit 1 UART verwenden und sich daran halten möchten, scheint dies übertrieben.

Sie könnten Verwenden Sie auch einen Multiplexer, um zwischen dem UART zu wählen, mit dem Ihr Mikro spricht. Da die von Ihnen angegebenen Daten gleichzeitig übertragen werden, funktioniert dies nicht.

Die serielle Software könnte Ihre letzte Option sein, aber es kann sehr ärgerlich sein, damit umzugehen, wenn Ihr Mikrocontroller auch andere Aufgaben ausführt.

Danke für den Hinweis. Ich habe einen externen UART in Betracht gezogen, aber ich habe keine Erfahrung mit ihnen. Irgendwelche Ratschläge zu Fallstricken bei diesem Ansatz?
Ich habe in der Vergangenheit überlegt, sie für einige Projekte zu verwenden, aber am Ende habe ich mich für einen größeren Mikrocontroller entschieden. Mein Wissen geht also nur bis zu ihrer Existenz und Funktionsbeschreibung.
Majenko
2011-10-30 19:25:39 UTC
view on stackexchange narkive permalink

Wenn Sie über die Pins verfügen, können Sie "Bit Blast" oder "Software Serial" ausführen.

Hier programmieren Sie die MCU so, dass sie eine serielle Verbindung mit einfachen GPIO-Leitungen emuliert.

Der Code ist zeitkritisch, daher muss beim Schreiben vorsichtig vorgegangen werden. Es gibt verschiedene Online-Tutorials zum Schreiben, aber ich habe es noch nie auf einem MSP430-Chip versucht, daher kenne ich die Vor- und Nachteile nicht.

Die andere Option wäre: Verwenden Sie ein externes serielles Gerät, das über ein anderes System wie SPI oder I²C mit der MCU verbunden ist. Ich weiß nicht, was an dieser Front verfügbar ist - vielleicht würde eine andere MCU, die als SPI-Slave-Gerät ausgeführt wird, die Aufgabe übernehmen?

supercat
2011-10-31 01:36:19 UTC
view on stackexchange narkive permalink

Die parallele Version des FTDI-Chips ist möglicherweise nützlicher, selbst wenn Sie Schieberegister oder eine CPLD verwenden müssen, um Ihre E / A-Anforderungen zu reduzieren. In einer meiner Anwendungen habe ich eine CPLD verwendet, um einen FTDI-Chip und einige andere Dinge an einen 3-Draht-Bus anzuschließen (clk, mcu-data-out und mcu-data-in). Alle Kabel sind im Leerlauf niedrig. Zwei ansteigende Flanken beim mcu-Datenausgang bei niedrigem Takt setzen den Bus zurück. Wenn clk niedrig ist und beide Daten niedrig sind, zeigt mcu-data-in an, ob etwas vorhanden ist, das die Aufmerksamkeit der CPU erfordert. Wenn clk niedrig und mcu-data hoch ist, zeigt mcu-data-in an, ob die letzte Operation erfolgreich war. Wenn clk hoch ist, liefert mcu-data-in Daten, wie von einem SPI-Tranceiver erwartet.

Ein Vorteil der Verwendung der parallelen Version des FTDI-Chips auf diese Weise besteht darin, dass Sie Ihre CPU aufwecken können wenn Daten verfügbar werden, und lesen Sie die Daten dann schnell aus. Mit der seriellen Version des FTDI-Chips müssen Sie bereit sein, Daten zu empfangen, wenn CTS aktiviert wird. Sie werden jedoch nicht feststellen, dass Daten verfügbar sind, wenn CTS deaktiviert ist. Ich frage mich, wessen Ohr ich FTDI zuflüstern müsste, damit sie der seriellen Version ihres Chips eine solche Funktion hinzufügen oder einen Modus hinzufügen, der dem Drei-Draht-Modus ähnelt.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...