Programmieren und Steuern von Mikrocontrollern und FPGA mit Laptop (USB-Anschluss)

Früher hatten Laptops serielle und parallele Schnittstellen und es war wirklich einfach, Laptops mit Mikrocontrollern und FPGAs zu verbinden. Aber USB hat sein eigenes Protokoll und es ist nicht so einfach wie Parallelport, verschiedene Verbindungen zu implementieren.

Es gibt einige Möglichkeiten, USB mithilfe von Mikrocontrollern in andere Protokolle zu konvertieren.

Gibt es eine gute Möglichkeit, Protokolle einfach über USB zu haben? Stellen Programmierer spezifische Kabel und USB-Konverter für jedes einzelne Protokoll her?

Schauen Sie sich den Buspirat an .

Antworten (4)

Wenn Sie nach einer Lösung suchen, um Ihren eingebetteten Controller an einen Computer mit nur USB-Anschlüssen anzuschließen, kann ich Ihnen einen USB-zu-RS232-Bridge-Chip wärmstens empfehlen. Ich verwende in meinen Embedded Systemen den FT232 Chip von FTDI . FTDI liefert nicht nur den Chip, sondern auch einen Treiber dafür. In Ihrem Computer wird der Chip als guter alter COM-Port erkannt, genau wie die alten mit all dem Handshaking usw. Am Controller-Ende gibt der Chip je nach Chipwahl TTL RS232, SPI oder I2C aus.

Wenn Sie nach parallelem Zugriff suchen, hat FTDI auch einen USB-zu-Parallel-Chip .

Der Treiber kann auf Wunsch auch angepasst werden und ist kostenlos. Es funktioniert unter Windows, MAC, Linux und Windows CE.

Wenn Sie nur einen herkömmlichen 9-Pin-COM-Anschluss haben möchten, gibt es mehrere USB-zu-RS232- Konverter .

In Bezug auf die Programmierung sind Sie durch das Angebot Ihres Anbieters oder eines Drittanbieters eingeschränkt.

Wenn Sie an die Steuerung denken, bietet Ihnen USB großartige neue Möglichkeiten. Nur ein kurzes Beispiel: Mit einem AT32UC3B-Controller und seinen integrierten USB-Funktionen kann ich dieses Gerät völlig treiberlos an jedes Windows 8.1-Gerät (sowohl X86 als auch ARM wie das Surface RT) anschließen. Ich verwende das HID-Protokoll, für das ein USB-Klassentreiber existiert und das ich einfach verwenden kann. Diese bietet unter anderem eine automatische Fehlerkorrektur. Natürlich können Sie auch Linux mit seinem eingebauten HID-Klassentreiber verwenden.

Bitte haben Sie Verständnis dafür, dass Windows Store-Anwendungen keine seriellen Ports mehr unterstützen (was ich für eine gute Sache halte).

Sowohl Ja als auch Nein. Sie unterstützen den USB CDC, wenn sie als Endpunkt vom Typ SerialPort verwendet werden. Für Windows Store-Apps gibt es jedoch keine Unterstützung für die klassische serielle FT232-Schnittstelle. Bei Windows 8.0/8.1 Desktop-Apps hat sich nichts geändert, sodass FT232 und ähnliches wie zuvor funktionieren. Oder anders gesagt: Sie können in Windows Store Apps kein SerialPort sp = new SerialPort("COM4") machen.

Einige ICs von Atmel an Microchip ( PIC18F2550 ) haben die USB-Anschlüsse nativ. Es ist also nur Plug and Play.

Diese Seite enthält einige gute Beispiele für die Verwendung von ATtiny mit dem V USB, einer reinen Softwareimplementierung eines Low-Speed-USB-Geräts für Atmels AVR®-Mikrocontroller, die es ermöglicht, USB-Hardware mit fast jedem AVR®-Mikrocontroller zu erstellen, ohne dass eine benötigt wird zusätzlicher Chip.

Und dieses hier mit PICs, die das HID (Human Interface Device) verwenden.

Atmel hat verschiedene USB-fähige AVR-Mikrocontroller, aber ATtiny2313 ist keiner von ihnen.
@jippie Du hattest Recht, behoben!

Für die Programmierung eines FPGA über USB würde ich dringend empfehlen, ein gefälschtes JTAG-Kabel von ebay zu kaufen. Sie können ein Xilinx-kompatibles Gerät für etwa 40 US-Dollar erwerben. Ich habe selbst ein paar davon und sie funktionieren großartig. Sie sollten auch Altera-kompatible Kabel erhalten können.

Hinsichtlich der Kommunikation mit einem FPGA oder Mikrocontroller gibt es mehrere Möglichkeiten. Wenn Sie nur eine Kommunikation mit wirklich niedriger Bandbreite benötigen, ist ein Seriell-auf-USB-Chip, wie er von FTDI oder Exar hergestellt wird, ziemlich gut. Allerdings geht es mit einer seriellen Schnittstelle nicht so schnell.

Wenn Sie eine höhere Bandbreite benötigen, sollten Sie sich einen Mikrocontroller mit integriertem USB-Controller zulegen. Für ein FPGA können Sie USB-PHY-Chips erhalten, die das USB-Signal nehmen und es in einen parallelen Bus umwandeln. Mit dieser Art von Setup können Sie die gesamte Bandbreite nutzen, die USB bietet.

Eine andere Möglichkeit besteht darin, einen FTDI-FIFO-Chip zu verwenden. Das sieht aus wie eine serielle Schnittstelle, aber der Chip enthält keinen UART, er nimmt die Daten nur auf einem parallelen Bus heraus. Dies ist bei der Nutzung der Verbindungsbandbreite weitaus effizienter als ein UART. Dies kann entweder mit einem FPGA oder einem Mikrocontroller verwendet werden.