Software

Radio

Electronique

Bibliothèque

Software

Politique de confidentialité

Politique de cookies (UE)

Microchip DsPIC30F4012

Ceci est un exemple de code source montrant le paramètrage minimal d’un DsPIC30F4012 pour sortir sur RE0 des états hauts d’une longueur d’un temps cycle à 20MIPS à partir d’un quartz externe de 5MHz. Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :

  • Le composant est correctement alimenté.
  • L’oscillateur fonctionne et la PLL est correctement configurée.

Pour cela, un fichier à ajouter à un projet vierge dans MPLAB avec les compilateurs C30 ou XC16 :

#include <p30fxxxx.h>;

_FOSC(CSW_FSCM_OFF && XT_PLL16);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF && MCLR_EN);
_FGS(CODE_PROT_OFF);
_FICD( ICS_PGD );

int main(void) {
    OSCCONbits.POST = 0b01; // Datasheet page 7-14
    TRISE = 0; // Port E en sortie
    LATE = 0; // Initialisation du port E à 0

    while(1) {
        LATEbits.LATE0 = 1;
        LATEbits.LATE0 = 0;
    }

    return 0;
}

Microchip PIC32MX795F512L

Ceci est un exemple de code source montrant le paramètrage minimal d’un PIC32MX795F512L pour sortir sur RA1 des états hauts d’une longueur d’un temps cycle à 80MIPS. Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :

  • Le composant est correctement alimenté.
  • L’oscillateur fonctionne et la PLL est correctement configurée.

Pour cela, deux fichiers à ajouter à un projet vierge dans MPLAB avec les compilateurs C32 ou XC32 :

  • main.c
#include "HardwareProfile.h"

void CPUInit(void) {
    SYSTEMConfigPerformance(SYS_FREQ);

    DDPCONbits.JTAGEN = 0;      // Disable JTAG
    DDPCONbits.TROEN = 0;       // Disable trace

    PORTSetPinsDigitalOut(IOPORT_A,BIT_1);
}  

int main(void) {

    CPUInit();

    while(1) {
        mPORTASetBits(BIT_1);
        mPORTAClearBits(BIT_1);
    }  

    return 0;
}
  • HardwareProfile.h
#include <p32xxxx.h>
#include <plib.h>

//////////////////////////////////////////////////////////////////////////////////////////
// Configuration processeur                             //
//                                          //
// Informations disponibles dans le fichier d'aide :                    //
// - hlpPIC32MXConfigSet.chm                                //
// - http://ww1.microchip.com/downloads/en/DeviceDoc/61156G.pdf             //
//     page 165 Section 28.1 - Configuration bits                   //
//////////////////////////////////////////////////////////////////////////////////////////
#pragma config FSRSSEL = PRIORITY_0 // Toutes les interruptions utilisent le shadow register

#pragma config FMIIEN = OFF             // Interface Ethernet en mode RMII pour DP83848
#pragma config FETHIO = OFF             // Configuration alternative des signaux du module Ethernet

#pragma config FCANIO = ON, FUSBIDIO = OFF, FVBUSONIO = OFF     //Autres modules inutilises

#pragma config WDTPS = PS1, FWDTEN = OFF

#pragma config ICESEL = ICS_PGx1, DEBUG = OFF

#pragma config PWP = OFF, BWP = OFF, CP = OFF

////////// Configuration de l'oscillateur pour un quartz de 8MHz externe /////////////////
#pragma config FNOSC = PRIPLL           // Choix de l'oscillateur primaire avec utilisation de la PLL
#pragma config POSCMOD = XT             // Quartz < 10Mhz donc XT
#pragma config OSCIOFNC = ON
#pragma config FPLLIDIV = DIV_2, FPLLMUL = MUL_20, FPLLODIV = DIV_1 // 80Mips
#pragma config UPLLEN = ON, UPLLIDIV = DIV_2                        // PLL USB
#pragma config FSOSCEN = OFF, IESO = OFF, FCKSM = CSDCMD            // Autres parametres de l'oscillateur
#pragma config FPBDIV = DIV_1                                       // Horloge peripherique

//////////////////////////////////////////////////////////////////////////////////////////
// Definitions generiques                               //
//                                          //
//////////////////////////////////////////////////////////////////////////////////////////
#define SYS_FREQ                80000000UL
#define GetPeripheralClock()    (SYS_FREQ/(1 << OSCCONbits.PBDIV))
#define GetInstructionClock()   (SYS_FREQ)

Microchip 12F683

Ceci est un exemple de code source montrant le paramètrage minimal d’un PIC12F683 pour sortir sur GPIO2 des états hauts d’une longueur d’un temps cycle soit 500ns (8MHz = 2MIPS). Cela permet ainsi de valider un circuit avec ce composant en vérifiant que :

  • Le composant est correctement alimenté.
  • L’oscillateur fonctionne.

Pour cela, un fichier à ajouter à un projet vierge dans MPLAB avec les compilateurs Hi-Tech PICC :

#include <htc.h>

/////////// Bits de configuration : Voir datasheet page 84, 12.1 Configuration bits //////////////
__CONFIG(FCMEN_OFF \
    & IESO_OFF \
    & BOREN_OFF \
    & CPD_OFF \
    & CP_OFF \
    & MCLRE_ON \
    & PWRTE_ON \
    & WDTE_OFF \
    & FOSC_INTOSCIO);

void main(void) {
//// Configuration de l'oscillateur interne (datasheet page 20, 3.2 Oscillator control) //////////
    OSCCONbits.IRCF = 0b111;    // 8Mhz
    OSCCONbits.SCS = 0;     // Configuration de l'horloge systeme
                    // définie par les bits de configuration

///// Configuration de entrees/sorties numeriques ////////////////////////////////////////////////
    ANSELbits.ANS2 = 0;     // GPIO2 est numerique
    TRISIObits.TRISIO2 = 0;     // GPIO2 est une sortie

    while(1) {
        GPIObits.GP2 = 1;
        GPIObits.GP2 = 0;
    }
}

MCU Microchip

Radio

Electronique

Bibliothèque

Software

Politique de confidentialité

Politique de cookies (UE)

Electronique

Radio

Electronique

Bibliothèque

Software

Politique de confidentialité

Politique de cookies (UE)