<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.electroniciens.cnrs.fr/index.php?action=history&amp;feed=atom&amp;title=Microchip_Harmony_%3A_Demo_USB_CDC</id>
	<title>Microchip Harmony : Demo USB CDC - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.electroniciens.cnrs.fr/index.php?action=history&amp;feed=atom&amp;title=Microchip_Harmony_%3A_Demo_USB_CDC"/>
	<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Microchip_Harmony_:_Demo_USB_CDC&amp;action=history"/>
	<updated>2026-05-06T03:40:28Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.electroniciens.cnrs.fr/index.php?title=Microchip_Harmony_:_Demo_USB_CDC&amp;diff=3282&amp;oldid=prev</id>
		<title>Arnauld.biganzoli le 1 décembre 2016 à 02:43</title>
		<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Microchip_Harmony_:_Demo_USB_CDC&amp;diff=3282&amp;oldid=prev"/>
		<updated>2016-12-01T02:43:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Universal Serial Bus (USB) =&lt;br /&gt;
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:&lt;br /&gt;
* Prise en charge de l&amp;#039;hôte et du périphérique USB à pleine vitesse.&lt;br /&gt;
* Support d&amp;#039;hôte à faible vitesse.&lt;br /&gt;
* Prise en charge USB OTG.&lt;br /&gt;
* Mise en mémoire tampon de point final n&amp;#039;importe où dans la RAM système.&lt;br /&gt;
* DMA intégré pour accéder à la RAM du système et à la mémoire Flash.&lt;br /&gt;
&lt;br /&gt;
=== Introduction à l&amp;#039;USB ===&lt;br /&gt;
* [http://www.usbmadesimple.co.uk/index.html USB Made Simple] (series of articles on USB)&lt;br /&gt;
* [http://microchip.wikidot.com/usb:start Wiki Microchip sur l&amp;#039;USB]&lt;br /&gt;
** [http://microchip.wikidot.com/usb:development Developing USB Applications with Microchip]&lt;br /&gt;
** [http://microchip.wikidot.com/harmony:usb-device-architecture Harmony USB Device Architecture]&lt;br /&gt;
** [http://microchip.wikidot.com/usb:device-classes USB Device Classes], voir aussi [http://www.usb.org/developers/docs/devclass_docs/ Communications Device Class] ou sur https://en.wikipedia.org/wiki/USB_communications_device_class&lt;br /&gt;
* [http://www.usb.org/developers/tools/usb20_tools/ Tools for USB 2.0]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Démo d&amp;#039;une liaison série par USB (CDC) sur la carte chipKIT™ WF32™ =&lt;br /&gt;
===Configuration du matériel===&lt;br /&gt;
Modifier la configuration du jumper &amp;quot;&amp;#039;&amp;#039;&amp;#039;VU SELECT&amp;#039;&amp;#039;&amp;#039;&amp;quot; (J15- Power Select Jumper) afin d&amp;#039;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 &amp;quot;&amp;#039;&amp;#039;&amp;#039;USB&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Ouvrir le projet Harmony ===&lt;br /&gt;
C:\microchip\harmony\v2_01b\apps\usb\device\cdc_com_port_single\firmware&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; ne pas oublier de sélectionner la carte &amp;quot;&amp;#039;&amp;#039;&amp;#039;chipkit_wf32&amp;#039;&amp;#039;&amp;#039;&amp;quot; depuis la liste &amp;quot;&amp;#039;&amp;#039;&amp;#039;Set Project Configuration&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Tester le programme ===&lt;br /&gt;
Une fois la carte connecté au PC via un câble USB micro USB et le projet chargé sur la carte :&lt;br /&gt;
* le firmware se comportera de manière identique à ce que nous avions réalisé précédemment&lt;br /&gt;
* et une action sur le bouton &amp;quot;&amp;#039;&amp;#039;&amp;#039;BTN3&amp;#039;&amp;#039;&amp;#039;&amp;quot; enverra sur le terminal le message &amp;quot;&amp;#039;&amp;#039;&amp;#039;\r\nPUSH BUTTON PRESSED&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vous pouvez également utiliser la [http://microchip.wikidot.com/tls2101:printf fonction printf()] dans votre programme.&lt;br /&gt;
Pour cela il vous faut associer l&amp;#039;UART à la [https://fr.wikipedia.org/wiki/Flux_standard sortie standard &amp;#039;&amp;#039;&amp;#039;STDOUT&amp;#039;&amp;#039;&amp;#039; de la librairie stdio.h], voir [http://microchip.wikidot.com/faq:81 (XC32) How do I instruct printf to output to UART1 or other UART channels instead of UART2?]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Partir d&amp;#039;un projet existant pour réaliser son propre projet ==&lt;br /&gt;
Voir &amp;quot;[http://microchip.wikidot.com/harmony:migrating-hw-platforms Migrating a Harmony Project to New Hardware Platform]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Afin de visualiser une courbe sur le moniteur série en Python, nous vous proposons d&amp;#039;implémenter la génération d&amp;#039;un signal en dans de scie à partir du Timer 2.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Chaque nombre, composé de plusieurs chiffres codés en ASCII, se terminera par un caractère &amp;#039;\n&amp;#039; afin de séparer chaque valeur numérique.&lt;br /&gt;
&lt;br /&gt;
Exemple : ..., &amp;quot;1022\n&amp;quot;, &amp;quot;1023\n&amp;quot;, &amp;quot;0\n&amp;quot;, &amp;quot;1\n&amp;quot;, ...&lt;br /&gt;
&lt;br /&gt;
[[Fichier:py_traceur_serie.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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&amp;#039;emplacement du dossier dans l&amp;#039;arborescence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_01.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_02.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_03.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_04.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_05.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_06.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_07.png|center|800px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_08.png|center|450px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_09.png|center|1100px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_10.png|center|1100px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_11.png|center|1100px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_12.png|center|1100px|link=|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copier le nom de la fonction &amp;quot;DRV_TMR0_Start&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_13.png|center|850px|link=|]]&lt;br /&gt;
&lt;br /&gt;
Puis coller celui-ci dans le fichier &amp;quot;app.c&amp;quot; ;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_14.png|center|900px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_15.png|center|750px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_16.png|center|1050px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_17.png|center|950px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_18.png|center|1100px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_19.png|center|1000px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_20.png|center|1100px|link=|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Numéro de série pour votre périphérique USB CDC =&lt;br /&gt;
Ajouter un identifiant dans les propriétés du pilote USB à votre carte électronique afin qu&amp;#039;elle soit toujours reconnu sous le même numéro de port COM.&lt;br /&gt;
&lt;br /&gt;
Voir &amp;quot;[https://docs.google.com/document/d/14Z67J3TCfngOUenDOCaGcTkOcXHtgRIxwbSWMWV83pE/edit?usp=sharing Formation PIC -annexe- Serial Number for USB CDC]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_21.png|center|450px|link=|]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:mchp_mhc_cdc_com_port_single_waveform_22.png|center|1100px|link=|]]&lt;/div&gt;</summary>
		<author><name>Arnauld.biganzoli</name></author>
	</entry>
</feed>