Table des matières:

Transformer le port USB des cartes basées sur SAMD21 en un port série matériel ! : 3 étapes
Transformer le port USB des cartes basées sur SAMD21 en un port série matériel ! : 3 étapes

Vidéo: Transformer le port USB des cartes basées sur SAMD21 en un port série matériel ! : 3 étapes

Vidéo: Transformer le port USB des cartes basées sur SAMD21 en un port série matériel ! : 3 étapes
Vidéo: Arduino firmware on ATmega328p or SAMD21 2024, Novembre
Anonim
Image
Image
Créer un périphérique série avec un connecteur USB
Créer un périphérique série avec un connecteur USB

De nos jours, il est standard d'utiliser un port USB de carte Arduino (ou tout autre compatible) comme port série émulé. Ceci est très utile pour déboguer, envoyer et recevoir des données de nos adorables cartes.

Je travaillais sur uChipquand, en parcourant la fiche technique de son MCU (SAMD21), j'ai remarqué que les USB gpio PORTA 24 et 25 (qui sont respectivement D-/D+) peuvent également être utilisés comme SERCOM (PAD 2 et 3).

Après avoir remarqué cela dans la fiche technique, j'ai pensé qu'il serait parfois très utile de connecter un périphérique série directement au port USB plutôt que de connecter des fils volants sur une maquette ou de le souder directement à la carte.

Ainsi, voici un tutoriel rapide vous montrant comment configurer votre carte de manière à pouvoir utiliser son USB comme port série matériel.

Dans ce didacticiel spécifique, le périphérique série connecté est un adaptateur série Bluetooth HC-06. Cependant, vous pouvez adapter le code à n'importe quel autre périphérique série, à condition de souder un adaptateur de câble USB au périphérique série.

Nomenclature

uChipx 1

Adaptateur micro-USB vers USB/A x 1 (lien)

Module HC-06 BT x 1

Câble USB recyclé x 1

Batterie (3V3 < VBAT < 5) x 1

Étape 1: Créer un périphérique série avec un connecteur USB

Détachez le câble USB et soudez ses fils au périphérique série comme indiqué sur le schéma et écrit ci-dessous.

- Câble USB noir -> GND

- Câble USB rouge -> VCC (Alimentation)

- Câble USB (D-) blanc -> RX

- Câble USB (D+) vert -> TX

Étape 2: programmer UChip

Programme UChip
Programme UChip

Connectez uChip à votre ordinateur et chargez le croquis "HWSerialUSB.ino" dans le tableau. Ensuite, déconnectez uChip pour passer aux étapes suivantes.

CONSEIL: Comment fonctionne le code ? Pourquoi mon port USB est-il différent maintenant ?

Voici décrit en résumé l'astuce que je fais dans le code.

Fondamentalement, je crée une nouvelle instance « SerialUSB_HW » en utilisant le GPIO qui est actuellement affecté pour fonctionner en tant que D- et D+.

Dans le Setup(), j'active la fonctionnalité SERCOM pour les broches USB, en utilisant la fonction " pinPeripherial() " donnée dans l'en-tête " wire_private.h " inclus au début du code.

Maintenant, je peux utiliser l'instance " SerialUSB_HW " de la même manière que le Serial ou SerialUSB standard, en recevant et en envoyant des données à mon périphérique série HC-06.

Étape 3: Assembler - Connecter - Expérimenter

Assembler - Connecter - Expérimenter
Assembler - Connecter - Expérimenter

Connectez la batterie à uChip

- pin_8 -> VBAT--

- pin_16 -> VBAT+

Insérez l'adaptateur OTG puis le périphérique Serial avec son tout nouveau port USB et… c'est tout, le matériel est prêt !

Après l'appairage avec le module HC-06 (le mot de passe standard est 1234), connectez-vous à l'appareil BT à l'aide de votre téléphone ou de l'interface BT. Vous devriez maintenant recevoir l'état de la LED intégrée.

Envoyez le caractère « o » pour allumer la LED, ou tout autre caractère pour l'éteindre.

Expérimentez et essayez d'autres périphériques série. Vous savez maintenant utiliser le port USB comme port série matériel !

ASTUCE: Il y a un #define dans le code, qui vous permet de basculer entre l'utilisation du port USB comme série émulée ou comme série matérielle. Expérimentez et vérifiez que le périphérique série connecté (HC-06) ne communique pas à moins que nous forcions l'USB à fonctionner en tant que série matérielle !

Conseillé: