2 Attachment(s)
	
	
		Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		Code on 16F877:
	Code:
	
#CONFIG
    __config _HS_OSC & _WDT_OFF & _WRT_OFF & _BOREN_ON & _LVP_OFF  & _CPD_OFF & _PWRTE_ON & _DEBUG_OFF
#ENDCONFIG
DEFINE  OSC 20
INCLUDE "ALLDIGITAL.pbp"        ; Set all pins as digital
TRISD = %00000000
PORTD = %00000000
PAUSE   1000      
START:  PORTD = %10101010
        PAUSE   1000      
        PORTD = %01010101
        PAUSE   1000      
        GOTO    START
Finish: end
 
Code on 18F4550:
	Code:
	
#CONFIG
    CONFIG    PLLDIV=5, CPUDIV=OSC1_PLL2, USBDIV=2, FOSC=HSPLL_HS
    CONFIG    PWRT=ON, BOR=ON, BORV=1, VREGEN=ON, WDT=OFF
    CONFIG    CCP2MX=ON, PBADEN=OFF, LPT1OSC=OFF, MCLRE=ON
    CONFIG    STVREN=ON, LVP=OFF, ICPRT=OFF, XINST=OFF
#ENDCONFIG
DEFINE OSC 48
INCLUDE "ALLDIGITAL.pbp"        ; Set all pins as digital
TRISD = %00000000
PORTD = %00000000
PAUSE   1000      
START:  PORTD = %10101010
        PAUSE   1000      
        PORTD = %01010101
        PAUSE   1000      
        GOTO    START
Finish: end
 
Close-up of jumpers on Lab-X1:
Attachment 9381
Lab-X1 oscillator jumpers:
Attachment 9382
The only difference between the 2 MCUs are the CONFIG and DEFINE OSC statements.
I'm at a loss to explain what I'm doing wrong here.  Whatever I'm doing wrong, I've been doing it for a very long time.
Robert
I can't see the forest with all those trees standing in the way.
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		Test 1, slow 16F877 to 4 MHz:
	Code:
	
#CONFIG
    __config _XT_OSC & _WDT_OFF & _WRT_OFF & _BOREN_ON & _LVP_OFF  & _CPD_OFF & _PWRTE_ON & _DEBUG_OFF
#ENDCONFIG
DEFINE  OSC 4
 Lab-X1 jumper A=23
Nothing...
Go back to HS @ 20MHz with jumper A=12:
Back to twice as fast as it should...
Really puzzled, I expected it to run perfectly at 4 MHz.
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		Report here of some old PICs having been issued with 4 MHz max rating here:
https://www.embeddedrelated.com/show...ist/2282-1.php
I checked, mine are all ...-20.
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		Test 2, set all ports on 16F877 as output:
	Code:
	
TRISA = %00000000
TRISB = %00000000
TRISC = %00000000
TRISD = %00000000
TRISE = %00000000
PORTA = %00000000
PORTB = %00000000
PORTC = %00000000
PORTD = %00000000
PORTE = %00000000
 No difference, still blinking at twice the expected rate...
Robert
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		Do you have any means to check the real frequency oscillator output that is going to the PIC? 
Also, JP3 does no look that is is correctly connected. PIC should be on the midle pin and the jumper select either 4MHz or the CLK output of the chip U2.
If Y1A out pin is the PIC clock input, then this pin will always get 4MHz as the diagram shows no matter what the other jumpers are at.
Correct me if I am wrong, but on that diagram seems to me that way.
Ioannis
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		
	Quote:
	
		
		
			
				Originally Posted by 
Ioannis
				
			 
			 ... Also, JP3 does no look that is is correctly connected. PIC should be on the midle pin and the jumper select either 4MHz or the CLK output of the chip U2.
If Y1A out pin is the PIC clock input, then this pin will always get 4MHz as the diagram shows no matter what the other jumpers are at.
Correct me if I am wrong, but on that diagram seems to me that way.
Ioannis
			
		
	 
 
Y1A is not populated on the Lab-X1.  You can add an IC if you wish to replace the default setup.  Taken fron LABX1.TXT:
	Quote:
	
		
		
			 ... To select a 20MHz clock, jumpers A and B should be on pins 1 and 2 and jumper C should be on pins 2 and 3.
Jumper JP3 (not populated) allows a crystal or TTL or CMOS oscillator to be used directly without the ISC502M clock generator.  A TTL or CMOS oscillator, Y1A, may be used in place of crystal Y1 and the 2 capacitors, C5 and C6.
			
		
	
 
Having the jumper on the top 2 pins completes the circuit from ICS502M towards OSC1 (referred to as O1).
Robert
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		
	Quote:
	
		
		
			
				Originally Posted by 
Demon
				
			 
			Test 2, set all ports on 16F877 as output:
	Code:
	
TRISA = 000000
TRISB = 000000
TRISC = 000000
TRISD = 000000
TRISE = 000000
PORTA = 000000
PORTB = 000000
PORTC = 000000
PORTD = 000000
PORTE = 000000
 No difference, still blinking at twice the expected rate...
Robert
 
			
		
	 
 Don't you have to make one of the External Oscillator pins an Input in the TRISx Register?  I'm on the road and can't look at the Data Sheet.
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		On those old chips like the 16F877, OSC1 and OSC2 aren't part of PORTA.
	 
	
	
	
		Re: Blinky on Lab-X1 twice as fast on 16F877 as on a 18F4550
	
	
		
	Quote:
	
		
		
			
				Originally Posted by 
mpgmike
				
			 
			Don't you have to make one of the External Oscillator pins an Input in the TRISx Register?  I'm on the road and can't look at the Data Sheet.
			
		
	 
 
Pretty sure I saw that on USART pins.
Robert