View previous topic :: View next topic |
Author |
Message |
dblk22vball
Joined: 28 May 2010 Posts: 2
|
Issues with 44 Pin demonstration Board and PIC16F887 |
Posted: Fri May 28, 2010 6:05 am |
|
|
I have the 44 pin demonstration board from Microchip, which has a PIC16F887 chip on it. I am using the PicKit 2 programmer.
I am just trying to do a simple "flash the led" program, but it seems like the cpu is not even running. I have also tried turning on an output on each port, but none of them change.
Below is my code I am using.
Code: | #include <16F887.h>
#fuses NOMCLR //Do not use Master Clear
#fuses NOBROWNOUT //No brownout reset
#fuses LP // low power osc
#fuses NOWDT //no watchdog timer
#fuses NOCP //no code protect
#fuses NOCPD //no EE protection
#fuses NOIESO //Internal External Switch over mode disabled
#fuses NOFCMEN //Fail Safe clocl monitor disabled
#fuses PWRT //Power up timer
#fuses nodebug //no debug for IDE
#use delay(clock=32000)
#use FAST_IO(D)
void main()
{
setup_adc_ports(NO_ANALOGS);
// setup_adc(ADC_CLOCK_INTERNAL);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED, 0,1);
setup_comparator(NC_NC_NC_NC);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
//setup_vref(FALSE);
output_high(PIN_C1);
output_high(PIN_A1);
output_high(PIN_B1);
//ENABLE_INTERRUPTS(INT_RTCC);
SET_TRIS_D(0);
SET_TRIS_c(0);
SET_TRIS_b(0);
while(true)
{
output_high(PIN_D1);
output_high(PIN_D0);
delay_ms(1000);
output_low(PIN_D1);
output_low(PIN_D0);
delay_ms(1000);
}
} |
|
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri May 28, 2010 11:26 am |
|
|
Download the 44-Pin Demo Board User’s Guide:
http://ww1.microchip.com/downloads/en/DeviceDoc/41296b.pdf
Look at the schematic on page 35 (page 39 in the Acrobat reader).
It shows two crystals. On the left side, crystal 'X1' is 10 MHz, and it's
connected to the main oscillator pins. That's the one you should be
using.
Download the 16F887 data sheet:
http://ww1.microchip.com/downloads/en/DeviceDoc/41291F.pdf
Look in the Oscillator section:
Quote: |
4.0 OSCILLATOR MODULE (WITH
FAIL-SAFE CLOCK MONITOR)
|
It says that LP mode is used for a 32 KHz crystal. They don't tell you,
but for a 10 MHz crystal you need to use 'HS' mode.
Quote: |
#fuses LP
#use delay(clock=32000) |
To fix your program, change the fuse above to 'HS' and change the
#use delay() to 4 MHz. |
|
|
dblk22vball
Joined: 28 May 2010 Posts: 2
|
|
Posted: Fri May 28, 2010 11:56 am |
|
|
Thank you for the reply.
Correct, there are pads for X1 and X2, but they are not populated.
I figured out that part of my problem was that you cannot have the pickit connected to the board, even though it says it can power the board. once you disconnect the pickit, you can get it to work. |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri May 28, 2010 12:07 pm |
|
|
If they're not populated, then you could use the internal oscillator of the
PIC. Use the INTRC_IO fuse for this. Look in the PIC data sheet
(oscillator section) to see the frequencies that are available. |
|
|
|