<?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_ADC</id>
	<title>Microchip Harmony : Demo ADC - 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_ADC"/>
	<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Microchip_Harmony_:_Demo_ADC&amp;action=history"/>
	<updated>2026-05-12T23:18:47Z</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_ADC&amp;diff=3283&amp;oldid=prev</id>
		<title>Arnauld.biganzoli : Page créée avec « = Demo ADC = ===Liens=== * http://microchip.wikidot.com/32bit:adc-overview * PIC32 Family Reference Manual &quot;Section 17. 10-bit Analog-to-Digital Converter (ADC)&quot; : http://... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Microchip_Harmony_:_Demo_ADC&amp;diff=3283&amp;oldid=prev"/>
		<updated>2016-12-01T13:44:09Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « = Demo ADC = ===Liens=== * http://microchip.wikidot.com/32bit:adc-overview * PIC32 Family Reference Manual &amp;quot;Section 17. 10-bit Analog-to-Digital Converter (ADC)&amp;quot; : http://... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Demo ADC =&lt;br /&gt;
===Liens===&lt;br /&gt;
* http://microchip.wikidot.com/32bit:adc-overview&lt;br /&gt;
* PIC32 Family Reference Manual &amp;quot;Section 17. 10-bit Analog-to-Digital Converter (ADC)&amp;quot; : http://ww1.microchip.com/downloads/en/DeviceDoc/61104E.pdf&lt;br /&gt;
Projet :&lt;br /&gt;
* &amp;quot;ADC Project Using chipKIT™ WF32&amp;quot; : http://microchip.wikidot.com/harmony:example-adc-wf32&lt;br /&gt;
* Démarrez comme toujours par choisir le BSP pour votre carte&lt;br /&gt;
* Dans l&amp;#039;onglet Options de MPLAB Harmony Configurator (MHC), développez les sous-menus suivants:&lt;br /&gt;
Harmony Framework Configuration&lt;br /&gt;
Drivers&lt;br /&gt;
ADC&lt;br /&gt;
  --&amp;gt; puis cochez la case à côté de &amp;quot;Use ADC Driver?&amp;quot;&lt;br /&gt;
* Développez le sous-menu &amp;quot;Mode Options&amp;quot; et cochez la case &amp;quot;Interrupt Mode&amp;quot;.&lt;br /&gt;
* Développez le sous-menu &amp;quot;Clock Options&amp;quot; et modifiez &amp;quot;TAD Clock (Tad)&amp;quot; sur 10000000.&lt;br /&gt;
&lt;br /&gt;
. TAD est la période d&amp;#039;horloge du module ADC&lt;br /&gt;
&lt;br /&gt;
. 10 000 000 Hz horloge = 100 ns période&lt;br /&gt;
&lt;br /&gt;
* Développez le sous-menu des options d&amp;#039;échantillonnage &amp;quot;Sampling Options&amp;quot; et cochez la case afin d&amp;#039;activer l&amp;#039;échantillonnage automatique &amp;quot;Enable Auto Sample?&amp;quot;.&lt;br /&gt;
* Modifiez le champ &amp;quot;Auto Sample Time (nTAD)&amp;quot; à 4.&lt;br /&gt;
Le nombre 4 indique le nombre de périodes TAD (l&amp;#039;horloge du module ADC) requises pour échantillonner avec précision la tension analogique (en supposant une période TAD minimum).&lt;br /&gt;
Avec un TAD = 100 ns, le temps d&amp;#039;échantillonnage de l&amp;#039;ADC est de 4 x TAD = 4 x 100 ns = 400 ns&lt;br /&gt;
* Cochez la case &amp;quot;Stop Conversion on the First ADC Interrupt?&amp;quot; pour arrêter la conversion sur la première interruption du module ADC.&lt;br /&gt;
&lt;br /&gt;
Cela désactive l&amp;#039;échantillonnage automatique lorsque la condition d&amp;#039;interruption se produit (par exemple après avoir obtenu le 16ème résultat de convertion).&lt;br /&gt;
Lorsque cette case est cochée, l&amp;#039;auto-échantillonnage doit être réactivé à chaque interruption du module ADC.&lt;br /&gt;
* Développez le sous-menu &amp;quot;ADC Analog Channel Instance 0&amp;quot; et modifiez le champ &amp;quot;Select Dedicated Analog Channel&amp;quot; sur &amp;quot;ADC_INPUT_POSITIVE_AN13&amp;quot; afin de sélectionner l&amp;#039;entrée analogique AN13 (broche RB13 raccordée au potentiomètre).&lt;br /&gt;
=&amp;gt; Générer maintenant le code&lt;br /&gt;
&lt;br /&gt;
* Modifiez comme cela est expliqué dans le tutoriel de Microchip les fichiers :&lt;br /&gt;
. app.h&lt;br /&gt;
/!\ attention lors de l&amp;#039;tape 6, l&amp;#039;ajout des variables dans la structure APP_DATA ne se fait pas dans le fichier &amp;quot;system_config.h&amp;quot;, mais dans app.h&lt;br /&gt;
Vous pouvez avoir défini cela dans le fichier d&amp;#039;en-tête de l&amp;#039;application &amp;quot;app.h&amp;quot;, mais en le définissant dans le fichier d&amp;#039;en-tête de la configuration du système (system_config.h), cette macro peut-être modifiée si vous prévoyez d&amp;#039;utiliser différentes plates-formes matérielles dans votre projet.&lt;br /&gt;
En effet MPLAB X IDE permet à un projet de prendre en charge plusieurs plates-formes matérielles grâce à la possibilité d&amp;#039;inclure ou d&amp;#039;exclure des fichiers source du projet en fonction de la configuration du projet.&lt;br /&gt;
. De nouveau faite attention lors de l&amp;#039;étape &amp;quot;7&amp;quot; et &amp;quot;8&amp;quot; car il y a une inversion dans le tutoriel, ce n&amp;#039;est pas le fichier &amp;quot;system_interrupt.c&amp;quot; où il faut ajouter &amp;quot;#define ADC_NUM_SAMPLE_PER_AVERAGE  16&amp;quot; mais dans le fichier &amp;quot;..\src\system_config\chipkit_wf32\system_config.h&amp;quot;&lt;br /&gt;
. Pour l&amp;#039;étape &amp;quot;8&amp;quot; ce n&amp;#039;est pas dans &amp;quot;app.c&amp;quot; mais dans &amp;quot;..\src\system_config\chipkit_wf32\system_interrupt.c&amp;quot;&lt;br /&gt;
. Pas de soucis pour l&amp;#039;étape &amp;quot;9&amp;quot;, ajouter le code dans &amp;quot;app.c&amp;quot; au niveau de la section des fonctions locales, voir :&lt;br /&gt;
// Section: Application Local Functions&lt;br /&gt;
. Etape &amp;quot;9&amp;quot; et &amp;quot;10&amp;quot;, ajouter les 2 fonctions dans &amp;quot;app.c&amp;quot; l&amp;#039;une au dessous de l&amp;#039;autre :&lt;br /&gt;
void APP_ADC_Average( void )&lt;br /&gt;
void APP_ADC_AverageOnLEDs( void )&lt;br /&gt;
--&amp;gt; dans cette fonction, vous devez remplacer les indices des LEDs (changement de contexte depuis la version Beta2 d&amp;#039;Harmony) :&lt;br /&gt;
BSP_LED_3, BSP_LED_4, BSP_LED_5 et BSP_LED_6 par&lt;br /&gt;
BSP_LED_1, BSP_LED_2, BSP_LED_3 et BSP_LED_4&lt;br /&gt;
. Etape &amp;quot;11&amp;quot;, ajouter à la fin de la fonction void APP_Initialize( void ) :&lt;br /&gt;
appData.dataReady = false;&lt;br /&gt;
et ne pas oublier de &lt;br /&gt;
N&amp;#039;oubliez pas de commenter les références à l&amp;#039;état APP_STATE_SERVICE_TASKS existant, comme indiqué ci-dessous.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour info, si l&amp;#039;on ouvre la solution on peut retrouver les définitions des valeurs des horloges configurés depuis Harmony dans le fichier :&lt;br /&gt;
 ..\adc_wf32\firmware\src\system_config\default\system_config.h&lt;br /&gt;
voir :&lt;br /&gt;
/* Clock System Service Configuration Options&lt;br /&gt;
*/&lt;br /&gt;
#define SYS_CLK_FREQ                   80000000ul&lt;br /&gt;
#define SYS_CLK_BUS_PERIPHERAL_1       80000000ul&lt;br /&gt;
#define SYS_CLK_UPLL_BEFORE_DIV2_FREQ  48000000ul&lt;br /&gt;
#define SYS_CLK_CONFIG_PRIMARY_XTAL     8000000ul&lt;br /&gt;
#define SYS_CLK_CONFIG_SECONDARY_XTAL         0ul&lt;/div&gt;</summary>
		<author><name>Arnauld.biganzoli</name></author>
	</entry>
</feed>