Module microcontrôleur

.

La programmation des microcontrôleurs est quelque chose de long, tout comme le développement des circuits imprimés associés (du fait de la multitude de connections). C’est pour cette raison que j’ai essayé de réaliser un petit module polyvalent comprenant un uC et son alimentation. Pour ce qui est de la partie logicielle, j’ai développé un mini système d’exploitation pour rendre plus facile et rapide le développement de petits programmes (et permettre le multi-tâches).

Voici quelques exemples d’application:

Mesures (5 canaux, max 10 échantillonnage/s, résolution de 22 bits) et enregistrement sur carte SD.

Contrôle de processus, rétroaction.

Par exemple dans le cas d’un système de chauffage, le module uC peux commander le corps de chauffe (sortie PWM par exemple) en utilisant une sonde de température pour la contre-réaction (connectée directement sur un canal analogique du module uC).

Avec le système de menu, l’utilisateur peux par exemple modifier via un clavier la température, le temps, la vitesse d’élévation de la température, etc.

Le microcontrôleur choisi est de la famille PIC32MX de microchip. A la fois puissant (32 bits, 80 [MHz]) et bien documenté (quoi qu’il serait plus juste de dire mieux que pour certains autres fabricants).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*===========================================================================================*/
/*
Timer 45
Manuel Tschumi
9   06  2008
9   06  2008    (dernière modif.)

Sert à paramétrer le Timer 45
*/

//OpenTimer45(T4_ON | T4_PS_1_1 | T4_32BIT_MODE_ON | T4_SOURCE_EXT,0xFFFFFFFF);

T4CON = 0x0;            //Stop Timer4 and clear
T5CON = 0x0;            //Stop Timer5 and clear
T4CONCLR= 0b1 <<1;        //Internal peripheral clock
T4CONSET= 0b1 <<3;        //32 bit, allume automatiqueent T5, utilise interrupt de T5
T4CONCLR= 0b111 <<4;  //1:1 prescale value
T4CONCLR= 0b1 <<7;        //Gated time accumulation is disabled
T4CONCLR= 0b1 <<13;   //Continue operation in Idle mode
T4CONCLR= 0b1 <<14;   //Continue operation when CPU is in Debug Exception mode
TMR4    = 0;            //Remet le compteur à 0
PR4     =0xFFFFFFFF;    //Péride
T4CONSET= 0b1 <<15;   //ENABLE

/*===========================================================================================*/

.