Microchip PIC

From Bashlinux
Revision as of 18:40, 2 February 2017 by Manpaz (talk | contribs) (Cautions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



  • NEVER disable the PIC's /MCLR (Reset) pin function.
  • NEVER program a PIC "in circuit" with ANY other connections to the target board.

Circuit Design
ALWAYS set MCLRE_ON in the config options and have MCLR pin with a 10K pull-up resistor to Vdd.

ALWAYS set the input pins and clear the output pins, excepting UART TX/RX. i.e.

  • SDO should have TRISX bit cleared
  • SDI should have TRISX bit set.

Configuration Fuses


__CONFIG(1,HS&CPUDIV1) ;  // Conf Reg 1: Use external crystal 4MHz
__CONFIG(2,WDTDIS) ;      // Conf Reg 2: Watchdog off
__CONFIG(3,PBADDIS) ;     // Conf Reg 3: Configure PORTB<4:0> pins as digital I/O on Reset
__CONFIG(4,XINSTDIS) ;    // Conf Reg 4: Extended CPU Enable Disabled

MPLAB XC (MPLAB X v2.x/v3.x)

#pragma config PLLDIV = 1          // No prescale (4 MHz oscillator input drives PLL directly)
#pragma config WDT = OFF           // Watchdog off
#pragma config PBADEN = OFF        // Configure PORTB<4:0> pins as digital I/O on Reset
#pragma config CPUDIV = OSC1_PLL2  // [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
#pragma config FOSC = HS           // HS oscillator, HS used by USB


  • MPLAB - Discontinued Microchip's IDE
  • MPLAB X - Official's Microchip IDE
  • MPIDE - Arduino like IDE for ChipKit & Fubarino