|
|
View previous topic :: View next topic |
Author |
Message |
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Jan 08, 2007 5:58 pm |
|
|
In that case, I suspect a wiring error or some other hardware problem.
Do you know that the PIC works ? Have you ever been able to run
a small program that just blinks an LED ? Here's an example.
This program will blink the LED on pin B0:
Code: |
#include <16F876A.H>
#fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)
//=========================
void main()
{
while(1)
{
output_high(PIN_B0);
delay_ms(500);
output_low(PIN_B0);
delay_ms(500);
}
} |
|
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
|
Posted: Mon Jan 08, 2007 6:06 pm |
|
|
Thanks very much for your time, effort & patience "PCM programmer" to explain things to me..
I have double-checked my hardware wirings and its correct. I'm not sure if the PIC works as i had only recently began programming with it. Sadly i don't have a multimeter with me now to test the output voltage. Will do so when i hit the laboratory in Uni tomorrow morning. So i've no idea if it works. I'll have a few LEDs. Will try to connect them up tomorrow to determine the problem.
I'll keep u posted as soon as i get the results from your test program and hope u'll check on me again when U hit the office tomorrow. Cheers..
PCM programmer wrote: | In that case, I suspect a wiring error or some other hardware problem.
Do you know that the PIC works ? Have you ever been able to run
a small program that just blinks an LED ? Here's an example.
This program will blink the LED on pin B0:
Code: |
#include <16F876A>
#fuses XT, NOWDT, NOPROTECT, NOBROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)
//=========================
void main()
{
while(1)
{
output_high(PIN_B0);
delay_ms(500);
output_low(PIN_B0);
delay_ms(500);
}
} |
|
|
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Jan 08, 2007 6:09 pm |
|
|
Remember that you need a resistor in series with the LED on pin B0.
You could use a value such as 330 ohms or 470 ohms. |
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
|
Posted: Mon Jan 08, 2007 6:10 pm |
|
|
Tks 4 ur reminder. Sadly, i do study electronics as my core subject.=P
PCM programmer wrote: | Remember that you need a resistor in series with the LED on pin B0.
You could use a value such as 330 ohms or 470 ohms. |
|
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
---------> what now???? |
Posted: Tue Jan 09, 2007 6:35 am |
|
|
I have used the simple program U mentioned earlier and tested. There is absolutely no output from the Microcontroller at pinB0. Tested it with oscilloscope. Nope. Nothing...Have verified that my LED is working fine. Is there anyway to tell if the microcontroller isn't working?
Will now try and test the LCD using someone else's program.
Latest===========
I've tested the software to alternate the ON & OFF on both PORTS A & B. It looks like as though the program does not execute at all. It seems also that the LEDs attached individually to pin A1 and B0 do not follow the program at all and switches on and off erratically upon powering up and down. A decoupling capacitor has already been added to the PIC.
Please advise.....
PCM programmer wrote: | Remember that you need a resistor in series with the LED on pin B0.
You could use a value such as 330 ohms or 470 ohms. |
|
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
Help help |
Posted: Wed Jan 10, 2007 11:10 am |
|
|
Gurus, please advise. I have purchased another PIC but the same problem occurs.
PCM programmer...please help!!!! |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Wed Jan 10, 2007 12:22 pm |
|
|
There are other people that can help besides me. You shouldn't ask
just one person for help.
But anyway, I suspect a hardware problem. Describe all the external
connections to your PIC. Tell us what components you have connected
to the PIC pins and give the value of the components (i.e., a 10K
resistor going to +5v on the MCLR pin, etc.)
Tell us what programmer you're using (CCS ICD-U40, Microchip ICD2,
Warp-13a, etc.)
Tell us the voltage you are using to run the PIC. What type of power
supply are you using ? (Bench supply, or a "wall transfomer, etc.)
Basically, give all the details. |
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
|
Posted: Wed Jan 10, 2007 4:25 pm |
|
|
Ok....I am currently doing my own breadboarding. I'm not using any demo set. I'm using my customised power supply (2.8VA). Output power is ~30.1V under no load.
When connected to LM7812, input of LM7812 registers ~19.1V and output of LM7812 registers 10V. Vo of LM7812 is connected to input of LM7805 and output of LM7805 registers ~4.7V. Input of LM7805 has a parallel 0.2uF capacitor connected to it. Other end of capacitor is to Gnd for "Fixed Output VR" mode. When initially measured, voltage will always start from 4.45V and slowly rise to 4.7V.
PIC is drawing power from Vcc line from Pin_20. Note that this voltage is going only to the PIC. There is a decoupling capacitor 1.0uF rated @50V connected in parallel to the PIC.
I'm using a Murata 4.0MHz Ceramic Resonator (CR). I've double-checked the frequency from the ceramic resonator with an oscilloscope and found it to have a frequency of 4.166MHz. One end of CR is connected to OSC1(Pin_9) while the other end of CR is connected to OSC2(Pin_10). The middle pin of CR is connected to Gnd line.
A 6 bus resistor network (1k ohms each) is drawing power from the Vcc line. One of the outputs of the bus resistor network is connected to "MCLR" of PIC (Pin_1). Voltage measured @Pin_1 of PIC is 4.6+V and rising to stop @4.7V
Pins 8 and 19 are connected to Vss (i.e Gnd) line.
******************Note that no LEDs are connected.
PIC: Microchip PIC 16F876A
Hardware Programmer: PICSTART PLUS (firmware version 4.50.2)
Software Programmer: MPLab v7.5
C Compiler: CCS v4.020
Currently, my main source file is as follows:
===================================
#include <16F876A.h>
#include <picsettings.h> //#FUSES NOWDT, HS, PUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG
// #use delay(clock=4000000)
void main()
{
delay_ms(2000);
set_tris_b(0xF0); // Configures tris_B registers (RB4-7: input, RB0-3: output)
delay_ms(2000);
set_tris_a(0x2); // Configures tris_A registers(RA1: input, RA0,2,3,4,5: output)
while (1);
{
output_a(0x00);
output_b(0xFF);
delay_ms(2000);
output_a(0xFF);
output_b(0x00);
delay_ms(2000);
}
}
================================
================================
Currently, i am thinking of purchasing a voltage supervisory IC DS1233 that is to be connected to MCLR pin of PIC to ensure that the PIC does not lockup. Am currently awaiting for it to arrive.
Dear friends, please advise. Your help is very much appreciated.
PCM programmer wrote: | There are other people that can help besides me. You shouldn't ask
just one person for help.
But anyway, I suspect a hardware problem. Describe all the external
connections to your PIC. Tell us what components you have connected
to the PIC pins and give the value of the components (i.e., a 10K
resistor going to +5v on the MCLR pin, etc.)
Tell us what programmer you're using (CCS ICD-U40, Microchip ICD2,
Warp-13a, etc.)
Tell us the voltage you are using to run the PIC. What type of power
supply are you using ? (Bench supply, or a "wall transfomer, etc.)
Basically, give all the details. |
Last edited by kevin5k on Wed Jan 10, 2007 5:13 pm; edited 1 time in total |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Wed Jan 10, 2007 4:44 pm |
|
|
Quote: | When initially measured, voltage will always start from 4.45V and slowly rise to 4.7V. |
1. The power supply voltage must start at 0 volts (or at least close to 0v)
for the PIC to perform a power-on reset. It looks like your PIC
is never being reset.
Why does your power supply always start at 4.45v ? Do you
have an on/off switch ? Why does the power rise "slowly" ?
Does the power supply have large output capacitors on it ?
Basically, your whole power supply regulation circuit needs to
be improved. You need a supply that cleanly goes from 0 to 5.0v
and that rises quickly, and goes down to 0v when switched off.
2. All of your voltage measurements are not good. Your +12v regulator
is putting out 10v. Your +5v regulator is putting out 4.7v.
What are you using to measure the voltages ? A voltmeter or
an oscilloscope ? You need to get an accurate digital voltmeter. |
|
|
Ttelmah Guest
|
|
Posted: Wed Jan 10, 2007 4:52 pm |
|
|
Comments.
You can get rid of all the tris statements, and initialisation delays. In CCS, unless you select 'fast_io' mode, the compiler automatically adds TRIS statements in the output code for you, when you perform I/O.
Are your fuses 'remmed' out?. As posted, they seem to be...
Use 'disable HTML in this post', and the code buttons to post code. Otherwise it dosn't make much sense...
Your rising output voltage on the 7805, is 'abnormal'. Put your scope on the 5v line. Is it stable?. You don't describe any HF decoupling close to the regulator, and these chips can oscillate if this is not present. One symptom, can be a rising (and slightly low) supply line.
You make no mention of a Vdd connection to the chip.
Look at some of the examples. Note the extra initialisation lines to turn off the ADC. Include these.
Why is a 7812, giving 10v?. Same comment about oscillation. Otherwise there i something very abnormal in the load on this. It should be giving 12v, within a very small fraction of a vot.
Best Wshes |
|
|
Humberto
Joined: 08 Sep 2003 Posts: 1215 Location: Buenos Aires, La Reina del Plata
|
|
Posted: Wed Jan 10, 2007 5:09 pm |
|
|
Quote: |
Currently, i am thinking of purchasing a voltage supervisory IC DS1233 that is to be connected to MCLR pin of PIC to ensure that the PIC does not lockup.
|
It does not make sense. It will not contribute at all.
When everything fails, you must try to use the minimum hardware/firmware scheme just to know that the core is alive.
PCM Programmer guide you until the point where you will try to blink a LED, this should be your main concern right now.
I don't like the way you get the +5VDC for the PIC. Borrow any wall transformer with an output voltage close to 12VDC, hook it the 7805 with the input and output capacitors.
Try to replace the Murata resonator by a regular crystal and connect the oscillator capacitors in parallel, do not forget to change the configuration to XS or HS depending of the crystal frequency.
Connect +5V --> +LED- --> R --> PIN B0 and run the PCM Programmer code.
Humberto |
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
|
Posted: Wed Jan 10, 2007 5:18 pm |
|
|
Erm, I've just measured. It's 0V initially. Then when its switched on, it jumps to 4.65V for the Vcc line. This power rises immediately once its switched on. Its using two 1.0uF capacitors as I'm constructing a (+) & (-) PSU.
I'm using a voltmeter to measure.
PCM programmer wrote: | Quote: | When initially measured, voltage will always start from 4.45V and slowly rise to 4.7V. |
1. The power supply voltage must start at 0 volts (or at least close to 0v)
for the PIC to perform a power-on reset. It looks like your PIC
is never being reset.
Why does your power supply always start at 4.45v ? Do you
have an on/off switch ? Why does the power rise "slowly" ?
Does the power supply have large output capacitors on it ?
Basically, your whole power supply regulation circuit needs to
be improved. You need a supply that cleanly goes from 0 to 5.0v
and that rises quickly, and goes down to 0v when switched off.
2. All of your voltage measurements are not good. Your +12v regulator
is putting out 10v. Your +5v regulator is putting out 4.7v.
What are you using to measure the voltages ? A voltmeter or
an oscilloscope ? You need to get an accurate digital voltmeter. |
|
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
|
Posted: Wed Jan 10, 2007 5:29 pm |
|
|
Tks 4 the tip. I'll include a few more capacitors to make both Voltage Regulators stable with good transient response.
Erm, would you mind elaborating this "HF decoupling" as well as the "Vdd" line?
I'll decomment those ADC programming codes.
Ttelmah wrote: | Comments.
You can get rid of all the tris statements, and initialisation delays. In CCS, unless you select 'fast_io' mode, the compiler automatically adds TRIS statements in the output code for you, when you perform I/O.
Are your fuses 'remmed' out?. As posted, they seem to be...
Use 'disable HTML in this post', and the code buttons to post code. Otherwise it dosn't make much sense...
Your rising output voltage on the 7805, is 'abnormal'. Put your scope on the 5v line. Is it stable?. You don't describe any HF decoupling close to the regulator, and these chips can oscillate if this is not present. One symptom, can be a rising (and slightly low) supply line.
You make no mention of a Vdd connection to the chip.
Look at some of the examples. Note the extra initialisation lines to turn off the ADC. Include these.
Why is a 7812, giving 10v?. Same comment about oscillation. Otherwise there i something very abnormal in the load on this. It should be giving 12v, within a very small fraction of a vot.
Best Wshes |
|
|
|
newguy
Joined: 24 Jun 2004 Posts: 1907
|
|
Posted: Wed Jan 10, 2007 5:54 pm |
|
|
HF = high frequency. Polarized capacitors only act like capacitors for low frequencies (< 10's of kHz). You'll need a ceramic capacitor, most often 0.1 uF, placed very near each and every Vdd line on the PIC. Keep leads short. |
|
|
kevin5k
Joined: 08 Jan 2007 Posts: 41
|
|
Posted: Wed Jan 10, 2007 6:12 pm |
|
|
Roger that.
newguy wrote: | HF = high frequency. Polarized capacitors only act like capacitors for low frequencies (< 10's of kHz). You'll need a ceramic capacitor, most often 0.1 uF, placed very near each and every Vdd line on the PIC. Keep leads short. |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|