Innehållsförteckning:

Gör SAMD21-baserade kort USB-port till en hårdvaruseriell port !: 3 steg
Gör SAMD21-baserade kort USB-port till en hårdvaruseriell port !: 3 steg

Video: Gör SAMD21-baserade kort USB-port till en hårdvaruseriell port !: 3 steg

Video: Gör SAMD21-baserade kort USB-port till en hårdvaruseriell port !: 3 steg
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Juli
Anonim
Image
Image
Skapa seriell enhet med USB -kontakt
Skapa seriell enhet med USB -kontakt

Det är standard idag att använda en Arduino (eller någon annan kompatibel) USB -port som en emulerad seriell port. Detta är mycket användbart för att felsöka, skicka och ta emot data från våra älskvärda kort.

Jag arbetade med uChip när jag gick igenom databladet för dess MCU (SAMD21), märkte jag att USB gpio PORTA 24 och 25 (som är D-/D+) också kan användas som SERCOM (PAD 2 och 3).

Efter att ha märkt detta i databladet, tänkte jag att det skulle vara ganska användbart ibland att ansluta en hårdvaruseriell enhet direkt till USB -porten snarare än genom att fästa flygande trådar på ett brödbräda eller lödda det direkt på brädet.

Så här är det en snabb handledning som visar dig hur du ställer in ditt kort så att du kan använda dess USB som en hårdvaruserialport.

I denna specifika handledning är den anslutna seriella enheten en Bluetooth HC-06 seriell adapter. Du kan dock anpassa koden till valfri annan seriell enhet, så länge du lödar en USB -kabeladapter till den seriella enheten.

Materialförteckning

uChipx 1

micro-USB till USB/A-adapter x 1 (länk)

HC-06 BT-modul x 1

Återvunnen USB -kabel x 1

Batteri (3V3 <VBAT <5) x 1

Steg 1: Skapa en seriell enhet med USB -kontakt

Dra av USB -kabeln och löd dess kablar till den seriella enheten som visas i schemat och skrivs nedan.

- USB -kabel svart -> GND

- USB -kabel röd -> VCC (ström)

-USB -kabel (D-) vit -> RX

- USB -kabel (D+) grön -> TX

Steg 2: Program UChip

Program UChip
Program UChip

Anslut uChip till din dator och ladda skissen “HWSerialUSB.ino” i kortet. Koppla sedan bort uChip för att fortsätta med nästa steg.

TIPS: Hur fungerar koden? Varför är min USB -port annorlunda nu?

Här beskrivs i sammandrag tricket som jag gör i koden.

I grund och botten skapar jag en ny "SerialUSB_HW" -instans med GPIO som för närvarande är tilldelade att fungera som D- och D+.

I Setup () aktiverar jag SERCOM -funktionen för USB -stiften, med funktionen "pinPeripherial ()" som anges i rubriken "wiring_private.h" som finns i början av koden.

Nu kan jag använda instansen "SerialUSB_HW" på samma sätt som standard Serial eller SerialUSB, ta emot och skicka data till min HC-06 seriella enhet.

Steg 3: Montera - Anslut - Experiment

Montera - Anslut - Experiment
Montera - Anslut - Experiment

Anslut batteriet till uChip

-pin_8-> VBAT--

- pin_16 -> VBAT+

Sätt i OTG -adaptern och sedan den seriella enheten med sin helt nya USB -port och … det är allt, hårdvaran är klar!

Efter parning med HC-06-modulen (standardlösenordet är 1234) ansluter du till BT-enheten med din telefon eller BT-gränssnitt. Du bör nu få status för den inbyggda lysdioden.

Skicka teckenfönstret ‘o’ för att slå på lysdioden, eller någon annan tecken för att stänga av den.

Testa och testa andra seriella enheter. Nu vet du hur du använder USB -porten som en hårdvaruseriell port!

TIPS: Det finns en #define i koden, som låter dig växla mellan att använda USB -porten som Emulated serial eller som Hardware serial. Experimentera och verifiera att den anslutna seriella enheten (HC-06) inte kommunicerar om vi inte tvingar USB-enheten att fungera som hårdvara!

Rekommenderad: