Inhaltsverzeichnis:

Machen Sie den USB-Port von SAMD21-basierten Boards zu einem seriellen Hardware-Port! - Gunook
Machen Sie den USB-Port von SAMD21-basierten Boards zu einem seriellen Hardware-Port! - Gunook

Video: Machen Sie den USB-Port von SAMD21-basierten Boards zu einem seriellen Hardware-Port! - Gunook

Video: Machen Sie den USB-Port von SAMD21-basierten Boards zu einem seriellen Hardware-Port! - Gunook
Video: #1 Say NO to ARDUINO! New ARM Microcontroller Programming and Circuit Building Series 2024, Juli
Anonim
Image
Image
Serielles Gerät mit USB-Anschluss erstellen
Serielles Gerät mit USB-Anschluss erstellen

Es ist heutzutage Standard, einen USB-Port eines Arduino (oder eines anderen kompatiblen) Boards als emulierten seriellen Port zu verwenden. Dies ist sehr nützlich zum Debuggen, Senden und Empfangen von Daten von unseren liebenswerten Boards.

Ich habe an uChip gearbeitet, als ich das Datenblatt seiner MCU (SAMD21) durchgesehen habe, bemerkte ich, dass die USB gpio PORTA 24 und 25 (die D-/D+ sind) auch als SERCOM (PAD 2 und 3) verwendet werden können.

Nachdem ich dies im Datenblatt bemerkt hatte, dachte ich, es wäre manchmal ziemlich nützlich, ein serielles Hardwaregerät direkt an den USB-Port anzuschließen, anstatt fliegende Drähte an einem Steckbrett anzubringen oder direkt an das Board zu löten.

Daher ist hier ein kurzes Tutorial, das Ihnen zeigt, wie Sie Ihr Board so einstellen, dass Sie seinen USB als seriellen Hardware-Port verwenden können.

In diesem speziellen Tutorial ist das angeschlossene serielle Gerät ein serieller Bluetooth HC-06-Adapter. Sie können den Code jedoch an jedes andere serielle Gerät anpassen, solange Sie einen USB-Kabeladapter an das serielle Gerät anlöten.

Stückliste

uChipx 1

Micro-USB-auf-USB/A-Adapter x 1 (Link)

HC-06 BT-Modul x 1

Recyceltes USB-Kabel x 1

Batterie (3V3 < VBAT < 5) x 1

Schritt 1: Erstellen Sie ein serielles Gerät mit USB-Anschluss

Ziehen Sie das USB-Kabel ab und löten Sie seine Drähte an das serielle Gerät, wie im Schema gezeigt und unten beschrieben.

- USB-Kabel schwarz -> GND

- USB-Kabel rot -> VCC (Power)

- USB-Kabel (D-) weiß -> RX

- USB-Kabel (D+) grün -> TX

Schritt 2: UChip programmieren

UChip programmieren
UChip programmieren

Verbinden Sie uChip mit Ihrem Computer und laden Sie die Skizze „HWSerialUSB.ino“in das Board. Trennen Sie dann den uChip, um mit den nächsten Schritten fortzufahren.

TIPP: Wie funktioniert der Code? Warum ist mein USB-Port jetzt anders?

Hier ist zusammenfassend der Trick beschrieben, den ich im Code mache.

Grundsätzlich erstelle ich eine neue " SerialUSB_HW "-Instanz unter Verwendung der GPIO, die derzeit als D- und D + zugewiesen sind.

Im Setup() aktiviere ich die SERCOM-Funktionalität für die USB-Pins, indem ich die Funktion „pinPeripherial()“verwende, die im Header „wiring_private.h“am Anfang des Codes enthalten ist.

Jetzt kann ich die " SerialUSB_HW "-Instanz ebenso wie die standardmäßige Serial oder SerialUSB verwenden, um Daten zu meinem seriellen HC-06-Gerät zu empfangen und zu senden.

Schritt 3: Zusammenbauen - Verbinden - Experimentieren

Zusammenbauen – Verbinden – Experimentieren
Zusammenbauen – Verbinden – Experimentieren

Verbinden Sie die Batterie mit dem uChip

- pin_8 -> VBAT--

- pin_16 -> VBAT+

Stecken Sie den OTG-Adapter und dann das serielle Gerät mit seinem brandneuen USB-Anschluss ein und … das ist alles, die Hardware ist fertig!

Verbinden Sie sich nach dem Pairing mit dem HC-06-Modul (Standardkennwort ist 1234) über Ihr Telefon oder die BT-Schnittstelle mit dem BT-Gerät. Sie sollten nun den Status der On-Board-LED erhalten.

Senden Sie das Zeichen 'o', um die LED einzuschalten, oder ein anderes Zeichen, um sie auszuschalten.

Experimentieren Sie und probieren Sie andere serielle Geräte aus. Jetzt wissen Sie, wie Sie den USB-Port als seriellen Hardware-Port verwenden!

TIPP: Der Code enthält ein #define, mit dem Sie zwischen der Verwendung des USB-Ports als emulierte Seriell oder als Hardwareseriell wechseln können. Experimentieren Sie und stellen Sie sicher, dass das angeschlossene serielle Gerät (HC-06) nicht kommuniziert, es sei denn, wir zwingen den USB, als Hardware-Seriell zu arbeiten!

Empfohlen: