CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

PIC18F66J60 is running very slowly
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
stoyanoff



Joined: 20 Jul 2011
Posts: 375

View user's profile Send private message

PIC18F66J60 is running very slowly
PostPosted: Mon Oct 19, 2015 3:32 am     Reply with quote

Greetings! I have PIC18F66J60 on a pcb with 25MHz quartz. The problem is it's running very slowly. I'm conducting a blink test:
Code:

#include <18F66J65.h>
#fuses NOWDT,HS
#use delay(clock=25M)

void main()
{
   output_drive(PIN_A1);
   while(1)
   {
      output_high(PIN_A1);
      delay_ms(1000);
      output_low(PIN_A1);
      delay_ms(1000);
   }
}


Till now I've changed the quartz with new one and the Vcap. No change!
Any other suggestions?
Thanks!

PP: I have two PCBs with the same problem! I think it`s not a hardware problem! I`m using Pic Kit 2(I have 3 too if that is a problem), MPlab v 8.91 and CCS v5.024!
ezflyr



Joined: 25 Oct 2010
Posts: 1019
Location: Tewksbury, MA

View user's profile Send private message

PostPosted: Mon Oct 19, 2015 6:33 am     Reply with quote

Hi,

You have threads going back 4 years on this very chip, so you should be very familiar with it! Is this the the first time you've actually tried the classic 'LED flash' test? If not, then you need to tell us what is different from the previous four years!! New board, new compiler, what???

You should also tell us what 'very slowly' means! In other words what was the observed flash rate?

Undoubtedly, your main oscillator is not running, and is falling back to the fail safe. Add the NOFCMEN fuse to verify!
_________________
John

If it's worth doing, it's worth doing in real hardware!
Ttelmah



Joined: 11 Mar 2010
Posts: 19477

View user's profile Send private message

PostPosted: Mon Oct 19, 2015 8:21 am     Reply with quote

The obvious 'expectation' would be for it to possibly run about 1/800th the speed...

By default FCMEN is enabled. So if the crystal does not start, the chip will run off the 31KHz internal oscillator. These chips are quite critical of their crystals, especially using one right at the maximum supported frequency. So what is the make of crystal, what load capacitors are you using, and parallel resistance, etc. etc.?.
stoyanoff



Joined: 20 Jul 2011
Posts: 375

View user's profile Send private message

PostPosted: Mon Oct 19, 2015 10:30 am     Reply with quote

Here is the datasheet of the quartz Click
I'm using 15pF caps. They are close to the chip. I don't have parallel resistance.
I've noticed sometimes the chip works fine, sometimes doesn't! May be the crystal can't start! What do I have to do? How can I check Congig2L register?!
I haven't use this chip for a while. This is a new schematic! I'm sorry if I have forgotten!
Thanks!
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Oct 19, 2015 10:55 am     Reply with quote

Did you possibly buy the third overtone crystal instead of the fundamental one ?
That could explain your problem.

You didn't tell us the manufacturer or part number of your crystal.
Also, if even if you did give us the part number, the data sheet doesn't
provide a description of the part number elements. For example, down
at the bottom of this ECS data sheet, it shows the components of a ECS
crystal part number:
http://ecsxtal.com/store/pdf/hc-49usx.pdf
Ttelmah



Joined: 11 Mar 2010
Posts: 19477

View user's profile Send private message

PostPosted: Mon Oct 19, 2015 11:34 am     Reply with quote

Try a little experiment.
Put a 1MR resistor straight across the crystal.

The chip has an internal resistor, that is 'meant' to help start the crystal, but if the gain of your one is rather low, it may not be enough to get it to start. Microchip have an application note suggesting trying the resistor to help the crystal start.

If it starts working reliably, you need to consider either adding a resistor permanently, or changing to a crystal which is a closer match to the ones suggested by Microchip.
temtronic



Joined: 01 Jul 2010
Posts: 9215
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Tue Oct 20, 2015 5:16 am     Reply with quote

Another potential way it'll run slooooow, is to have programmed the chip with MPLAB in 'DEBUG' mode and not 'Release' mode.
The default has always been 'debug' so you have to change that to 'release'.

Just something else to look at !

Jay
stoyanoff



Joined: 20 Jul 2011
Posts: 375

View user's profile Send private message

PostPosted: Fri Oct 23, 2015 4:54 am     Reply with quote

Hi! Just for the record! I have MCP2515 connected to the controller. I can't make it work this time! I always receive error - RXEP or TXEP flag. I think everything is connected fine. Could it be the same problem with the quartz?
I'm using 10MHz quartz with 2x15pF caps!
Thanks!
ezflyr



Joined: 25 Oct 2010
Posts: 1019
Location: Tewksbury, MA

View user's profile Send private message

PostPosted: Fri Oct 23, 2015 9:42 am     Reply with quote

stoyanoff,

Come on, what about the previous issue you reported? Did you ever get that to work? How can you expect us to remain interested in helping you when you jump from one problem to another without any feedback about past problems?

Is your PIC running correctly? Can you perform the classic 'LED flash' test and verify that the PIC is running at the correct speed? Can you send data successfully from the UART? If so, any problems you now face are unlikely to be related to the 'quartz'.....
_________________
John

If it's worth doing, it's worth doing in real hardware!
Ttelmah



Joined: 11 Mar 2010
Posts: 19477

View user's profile Send private message

PostPosted: Fri Oct 23, 2015 10:14 am     Reply with quote

Also, '10MHz quartz', is _not_ a crystal specification. It's like saying 'a motor car'. There are literally dozens of different crystal cuts, and as PCM_Programmer has pointed out, it might well be an overtone crystal. You need a full part number and manufacturer.
wangine



Joined: 07 Jul 2009
Posts: 98
Location: Curtea de Arges, Romania

View user's profile Send private message Send e-mail Yahoo Messenger

PostPosted: Mon Oct 26, 2015 2:19 pm     Reply with quote

I just look random in the forum and some comments take my attention, I'm really confused now. The above function
Code:
   {
      output_high(PIN_A1);
      delay_ms(1000);
      output_low(PIN_A1);
      delay_ms(1000);
   }

delay_ms() and delay_us() matter on 25M or 16M osc ? The function don't calculate itself on each type of processor speed? If don't, then where is the point to use? I understand delay_cycles() as nop, matter on each type of osc, but .... i miss something or what ? Is true i never use delay functions in last 6-8 years, just counting variable and timers, but I'm still curious.
ezflyr



Joined: 25 Oct 2010
Posts: 1019
Location: Tewksbury, MA

View user's profile Send private message

PostPosted: Mon Oct 26, 2015 2:41 pm     Reply with quote

Hi wangine,

No, delay_us, and delay_ms are independent of processor speed, as you surmised. The compiler calculates the necessary values based on the #use delay statement. Your confusion is understandable because the OP, stoyanoff, seems to have randomly shifted gears in mid-thread without ever giving anyone any feedback about what he is doing, or what continuing successes and failures he has had. This forum user, stoyanoff, in my opinion, exhibits a very inconsiderate trait which is unfortunately very common here on the forum - asking lots of questions without ever closing the loop on the problem that they sought help/advise on! Ultimately, this is a disservice to other forum users such as yourself who stumble into these random, disorganized threads!
_________________
John

If it's worth doing, it's worth doing in real hardware!
wangine



Joined: 07 Jul 2009
Posts: 98
Location: Curtea de Arges, Romania

View user's profile Send private message Send e-mail Yahoo Messenger

PostPosted: Mon Oct 26, 2015 5:15 pm     Reply with quote

yeea, thanks for answer, OFF topic I didn't touch all my projects in last two years, i was so busy, and now it's little strange for me, i feel like on basic, ON topic. I just ask because many answers but not on the point, the test code was completely wrong. With that code the difference can be observed only below 4Hz crystal Laughing, simple and efficient with toggle in one timer because timers depend on osc fuse. (if miss any instrument to measure that blink), and long long time ago i had same problem, with similar 18 family device. The difference, my pic work like i expect with 8MHz osc/12p cap but with internal RC, run at 5.x MHz.
I know the tolerance of any RC osc, I'm hardware engineer, programming its a hobby (time is limited). But i just give up to solve the problem. I buy other device on different type and the problem was solved. On topic again, personally even take much time, before to start a new project. I test individually all necessary Peripherals with simple functions, all type of osc, and after i am sure everything will be fine in final project. Wink
stoyanoff



Joined: 20 Jul 2011
Posts: 375

View user's profile Send private message

PostPosted: Tue Oct 27, 2015 1:53 am     Reply with quote

This starts to annoy me! Now I can't start the controller in the release mode! In debug everything is fine, but when I change to release it doesn't start! I have 1Mohm in parallel of the quartz. I'm using MPlab 8.91 and in configuration I have no build configuration!
What's happening here?!
Thanks!
Ttelmah



Joined: 11 Mar 2010
Posts: 19477

View user's profile Send private message

PostPosted: Tue Oct 27, 2015 3:05 am     Reply with quote

You are sure that MCLR is pulled up?.

Remember when the debugger is connected, this line is controlled by the debugger.

Double check your ground and power connections. Again when the debugger is attached these lines are connected to it.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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