Hello Gary,
Did you remember to set the configuration fuses in the code or on the programmer? Can you post your code? Did you remember to tie the MCLR pin high through a resistor?
JS
Hello Gary,
Did you remember to set the configuration fuses in the code or on the programmer? Can you post your code? Did you remember to tie the MCLR pin high through a resistor?
JS
Last edited by Archangel; - 30th December 2006 at 02:39.
Yes, the config bits are set to xt, watchdog off, code protect off, ect. I have tried the other oscillator settings and watchdog on, but no luck. And yes the mclr is pulled high thru a 10k. Heres the 16f84A program:
loop: High PORTB.0 ' Turn on LED connected to PORTB.0
Pause 1500 ' Delay for .5 seconds
Low PORTB.0 ' Turn off LED connected to PORTB.0
Pause 1500 ' Delay for .5 seconds
Goto loop ' Go back to loop and blink LED forever
End
With the 12f675 I set the config bits in the program:
@ Device PIC12F675,WDT_OFF,PWRT_ON,PROTECT_OFF,MCLR_ON,BOD_ OFF 'sets configuration
adcon0=0 ' no ADC doesn't seem necessary but may be a good idea
ansel=0 'no ADC input - IMPORTANT if using ports in digital mode
cmcon=7 'turns off comparator function -IMPORTANT if using ports in digital mode
trisio=0 ' all ports set as outputs - essential to minimize sleep current
vrcon=0 'turns off Vref for min current
DEFINE OSCCAL_1K 1 ' Set OSCCAL for 1K device - calibrates the internal oscillator -not related to SLEEP
@ DEVICE INTRC_OSC_NOCLKOUT
loop: high GPIO.5 ' Turn on LED connected to PORTB.0
Pause 1500 ' Delay for .5 seconds
Low GPIO.5 ' Turn off LED connected to PORTB.0
Pause 1500 ' Delay for .5 seconds
Goto loop ' Go back to loop and blink LED forever
End
It must be something stupid but I have torn up the circuit and rebuilt half a dozen times. Im pretty good at breadboarding. I threw in some extra caps on the vdd to vss but I am using an expensive benchtop supply so it should be clean.
Thanks for you consideration,
Gary
And you have a resistor (470 ohm) connected to the LED so you dont fry it?
And you have tested the LED that it is working by connecting it thru a resistor to the powersupply?
Checked that you have VDD availible at the PIC and that VSS really connects to the power supply?
What if you connect a resistor and LED across the PIC VDD and VSS lines, then it should turn on when you start your power supply.
As you said it is probably something stupid, and then this might be something to start with.
And dont forget to disconnect the incurcuit programmer since that one will hold the PIC in reset.
/me
The led lights fine if connected to the pic vdd so its all waiting there for the pic to wake up. That's what I mean; it should work yet no life.
Does you programmer have a verify chip function (it should, but I figured I'd ask anyways)? I've got a Warp13 and one thing that's tripped me up in the past is turning off the verify function 'cause I assumed it was programming a chip, then after hours of trying to figure out what's wrong, I find my programmer cable dangling over the edge of the table. It didn't tell me the chip wasn't programmed 'cause it didn't check! Go figure, but it happens...
Have you tried putting one chip in, program it, pull it out, try a verify, which obviously should fail, then put a seperate chip in (same type of course), try a verify, again, should fail. If they don't, the programmer might not actually be programming...maybe, perhaps? could happen...
Watch the PGC and PGD pins during programming on a 'scope (assuming you have one)? The PGC should be cycling regularly and PGD quite erratic. Make sure the MCLR gets pulled all the way up to +12v during programming?
Just a smathering of a few ideas flustered forth from my fingers for ya....
Do you have a 'scope? Have you 'scoped the resonator pins? Anything? Or just put a meter on the pins to ground, should have about 1.5-ish volts on them with power.
Hi Gary,
here is your blinky, this code works as is.
it's your code with some add ins, after you check what skimask suggested,
try this and it should work, then remove parts of this code until it stops working and see what you learned. I think it is the trisb setting your code needed. The chip just didn't know whether to input or output.
JS
Code:@ DEVICE pic16F84, XT_OSC @ DEVICE pic16F84, WDT_OFF ' Watchdog Timer @ DEVICE PIC16F84, PWRT_ON ' Power-On Timer DEFINE OSC 4 TrisB = %00000000 ' Sets all bits portb as outputs loop: High PORTB.0 ' Turn on LED connected to PORTB.0 Pause 1500 ' Delay for 1.5 seconds Low PORTB.0 ' Turn off LED connected to PORTB.0 Pause 1500 ' Delay for 1.5 seconds Goto loop ' Go back to loop and blink LED forever End
High and low are according to the PBP manual supposed to set the pin automaticly to an output.
But I guess it is good practise to to it your self
/me
Bookmarks