View previous topic :: View next topic |
Author |
Message |
SBS
Joined: 15 Aug 2005 Posts: 18
|
Just getting started problems... |
Posted: Tue Oct 04, 2005 9:19 pm |
|
|
Ok.. I have my new PIC18F4620, ICD 2, CCS compiler...
I'm powering the chip from the ICD 2 programmer. I'm running the following code:
#include <18F4620.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
void main() {
// printf("Press any key to begin\n\r");
// getc();
// printf("1 khz signal activated\n\r");
while (TRUE) {
output_high(PIN_B0);
delay_ms(1000);
output_low(PIN_B0);
delay_ms(1000);
}
}
From what MPLAB tells me, it looks like everything is OK. I'm putting a multimeter on RB0 (pin 33) and I'm not seeing any voltages up or down... just a steady 0.23 volts.
Any suggestions? Am I missing somethings?
Strangely enough... I ran the program without connecting my oscillator to the chip. MPLAB didn't say there was any problem. Now after connecting my 4 MHz oscillator, still doesn't work.
Any help?
Thanks,
Sal |
|
|
jecottrell
Joined: 16 Jan 2005 Posts: 559 Location: Tucson, AZ
|
|
Posted: Tue Oct 04, 2005 9:38 pm |
|
|
What board are you using? Any more info would be helpful to the experts.
Strangely enough, I am using a 18F4620 and this evening I was chopping and hacking a prototype and scabbed a LED on to RB0. It didn't work until I used:
Code: |
set_tris_b(0x00); //set port as output
|
So, I'm guessing the port won't work as an output until you specifically set it as one. Merely setting the output high or low on a pin won't necessarily make it so.
Good luck,
John |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Oct 04, 2005 9:45 pm |
|
|
Are you using an oscillator or a crystal ?
If you're using an oscillator, then try using the EC (or ECIO) fuse
instead of HS.
If you're using a crystal, do you have 22pf capacitors connected from
each side of the crystal to ground ?
Also, for future use, add the ERRORS parameter to the #use rs232
statement. It will prevent the UART from locking up if an overrun
error occurs.
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)
Also, can you post your version of the compiler ? This will be a number
like 3.191, 3.325, etc.
------------------------------
To jecottrell:
In his program as posted, he's using standard i/o mode (which is
the default mode in CCS). In that mode, the compiler automatically
inserts code to setup the proper TRIS, if you use the CCS functions
such as output_high(), output_low(), etc.
So his code is OK. |
|
|
SBS
Joined: 15 Aug 2005 Posts: 18
|
|
Posted: Tue Oct 04, 2005 9:54 pm |
|
|
I'm not using a prototyping board... just a breadboard.
I've bot the VSS and VDD from the ICD 2 going to the chip (both VDD and VSS inputs). I've got a 4 MHz crystal oscillator connected to OSC1 and OSC2. I have 15 pf capacitors between the crystal oscillator terminals and ground. And I've got all of the other ICD 2 connections to the chip.
That's it.
Is there anything else I need? I'm concerned that MPLAB said that it programmed the device propertly and didn't give me any errors when I ran the code when I didn't have the oscillator on.
I think I'm missing something major. All I have to do is program my device from MPLAB and hit RUN, right? What am I missing?
Thanks,
Sal |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Oct 04, 2005 10:28 pm |
|
|
If you're powering your board from the ICD2, then you need
to configure MPLAB to do that. Go to the Programmer menu,
then to Settings, and then to the Power tab. There's a checkbox
labeled "Power target circuit from MPLAB ICD2 (5v Vdd).
You need to select that box, and click apply. Then click the
Update button, and make sure the Target Vdd is approximately 5v.
I tested this just now with a PicDem2-Plus board, and target Vdd = 4.77v. |
|
|
SBS
Joined: 15 Aug 2005 Posts: 18
|
|
Posted: Tue Oct 04, 2005 10:47 pm |
|
|
Thanks for the help. I have been using it with the "powered from ICD 2" option. I have a Vdd of 4.82 volts.
Here is what the status window says:
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to MPLAB ICD 2
Target Device PIC18F4620 found, revision = a4
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
My concern may be that my oscillator isn't working. But I can put breakpoints in my code and it will stop at them. This means that the program is executing on the chip right?
When I pull out the oscillator everything in MPLAB functions exactly the same. On the bottom of the screen the "running" status bar shows that its running. How can it be running without an oscillator?
Thanks,
Sal |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Oct 04, 2005 11:24 pm |
|
|
Yes, the PIC's oscillator must be running for ICD2 to "connect" to
the PIC. If the oscillator is not running, you'll get an ICD0083 and
a ICD0069 error displayed in MPLAB when you try to connect.
What is your version of the compiler ?
This is a 4-digit number that you can find at the top of the .LST file,
which will be in your project directory after a successful compilation.
It will be a number like 3.191, or 3.235, etc. |
|
|
Mark
Joined: 07 Sep 2003 Posts: 2838 Location: Atlanta, GA
|
|
Posted: Tue Oct 04, 2005 11:26 pm |
|
|
Do you have the ICD2 selected as a programmer or as a debugger?
Maybe you have it selected as a programmer and the simulator as the debugger. |
|
|
Guest
|
|
Posted: Wed Oct 05, 2005 6:44 am |
|
|
MPLAB tells me that I can't have ICD 2 as programmer and debugger... so now I have ICD 2 as debugger and programmer as NONE.
I get the following errors now:
MPLAB ICD 2 Ready
ICD0083: Target not in debug mode, unable to perform operation
Running Target
ICD0083: Target not in debug mode, unable to perform operation
ICD0069: Unable to run target
MPLAB ICD 2 Ready
CCS PCH C Compiler, Version 3.235
Thanks,
Sal |
|
|
Guest
|
|
Posted: Wed Oct 05, 2005 6:48 am |
|
|
I got it working!!!
My LED is flashing on and off! Thanks so much to all of your for your help. I think I just had a configuration problem.
Thanks again,
Sal |
|
|
Mark
Joined: 07 Sep 2003 Posts: 2838 Location: Atlanta, GA
|
|
Posted: Wed Oct 05, 2005 6:49 am |
|
|
So what did you have selected as the debugger?
Check you connections again. Look up the schematic for say one of the PICDEM boards and make sure you have the ICD connected as they do. Also make sure ALL Vss and Vdd are connected. You can also add the ICD = TRUE statement. |
|
|
|