Microchip Harmony : Demo USB CDC

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à la navigationAller à la recherche

Universal Serial Bus (USB)

Le microcontrôleur P32MX695F512L sur la carte chipKIT WF32 contient un contrôleur USB 2.0, Full Speed et On-The-Go (OTG). Ce contrôleur offre les fonctionnalités suivantes:

  • Prise en charge de l'hôte et du périphérique USB à pleine vitesse.
  • Support d'hôte à faible vitesse.
  • Prise en charge USB OTG.
  • Mise en mémoire tampon de point final n'importe où dans la RAM système.
  • DMA intégré pour accéder à la RAM du système et à la mémoire Flash.

Introduction à l'USB


Démo d'une liaison série par USB (CDC) sur la carte chipKIT™ WF32™

Configuration du matériel

Modifier la configuration du jumper "VU SELECT" (J15- Power Select Jumper) afin d'alimenter la carte depuis le connecteur micro USB (ce dernier est placer sous le connecteur USB A à droite de la carte), placez le cavalier sur la position "USB".

Ouvrir le projet Harmony

C:\microchip\harmony\v2_01b\apps\usb\device\cdc_com_port_single\firmware

--> ne pas oublier de sélectionner la carte "chipkit_wf32" depuis la liste "Set Project Configuration"

Tester le programme

Une fois la carte connecté au PC via un câble USB micro USB et le projet chargé sur la carte :

  • le firmware se comportera de manière identique à ce que nous avions réalisé précédemment
  • et une action sur le bouton "BTN3" enverra sur le terminal le message "\r\nPUSH BUTTON PRESSED"


Vous pouvez également utiliser la fonction printf() dans votre programme. Pour cela il vous faut associer l'UART à la sortie standard STDOUT de la librairie stdio.h, voir (XC32) How do I instruct printf to output to UART1 or other UART channels instead of UART2?


Partir d'un projet existant pour réaliser son propre projet

Voir "Migrating a Harmony Project to New Hardware Platform".

Afin de visualiser une courbe sur le moniteur série en Python, nous vous proposons d'implémenter la génération d'un signal en dans de scie à partir du Timer 2.

La période du Timer sera dans un premier temps de 100 ms (la fréquence du microcontrôleur est de 80 MHz pour FSYS et PBCLK) et les données transmises au PC seront comprise entre 0 et 1023.

Chaque nombre, composé de plusieurs chiffres codés en ASCII, se terminera par un caractère '\n' afin de séparer chaque valeur numérique.

Exemple : ..., "1022\n", "1023\n", "0\n", "1\n", ...


Avant de modifier un projet existant dans les exemples fournit, il est préférable de travailler sur une copie de celui-ci sans modifier l'emplacement du dossier dans l'arborescence.



Copier le nom de la fonction "DRV_TMR0_Start" :

Puis coller celui-ci dans le fichier "app.c" ;


Numéro de série pour votre périphérique USB CDC

Ajouter un identifiant dans les propriétés du pilote USB à votre carte électronique afin qu'elle soit toujours reconnu sous le même numéro de port COM.

Voir "Formation PIC -annexe- Serial Number for USB CDC".