USART2 setting for 1MHzCPU + 4PLL


Closed Thread
Results 1 to 33 of 33

Hybrid View

  1. #1
    Join Date
    Feb 2012
    Location
    PERTH AUSTRALIA
    Posts
    838


    Did you find this post helpful? Yes | No

    Default Re: USART2 setting for 1MHzCPU + 4PLL

    what i think it saying is that the PPl is not applied when using a 1MHz osc ??




    Code:
     
    ' config for 18F46K80
     
        #CONFIG
    
    ;----- CONFIG1L Options --------------------------------------------------
        CONFIG XINST     = OFF 
        CONFIG SOSCSEL   = DIG        ; Digital (SCLKI) mode; I/O port functionality of RC0 and RC1 is enabled
        CONFIG INTOSCSEL = LOW        ; LF-INTOSC in low-power mode during Sleep
        CONFIG RETEN     = ON         ; Ultra Low power regulator is Enabled  (Controlled by SRETEN bit)when in sleep
    
    ;----- CONFIG1H Options --------------------------------------------------
        CONFIG IESO      = OFF 
        CONFIG FCMEN     = OFF
        CONFIG PLLCFG    = OFF 
        CONFIG FOSC      = INTIO2     ; Internal RC oscillator  , PORTA.6 , PORTA.7 as I/O
     
    ;----- CONFIG2L Options --------------------------------------------------
        CONFIG BORPWR    = ZPBORMV    ; ZPBORMV instead of BORMV is selected
        CONFIG BORV      = 2          ; 2V
        CONFIG BOREN     = SBORDIS    ; Enabled in hardware, SBOREN disabled
        CONFIG PWRTEN    = OFF 
    
    ;----- CONFIG2H Options --------------------------------------------------
        CONFIG WDTPS     = 512        ; 1:512
        CONFIG WDTEN     = OFF        ; WDT Off
      
    ;----- CONFIG3L Options --------------------------------------------------
    ; no register in the device 
    
    ;----- CONFIG3H Options --------------------------------------------------
        CONFIG MCLRE     = ON         ; MCLR ENabled FOR DIAG , RG5 DISabled
        CONFIG MSSPMSK   = MSK7       ; 7 Bit address masking mode
        CONFIG CANMX     = PORTB      ; ECAN TX and RX pins are located on RB2 and RB3, respectively
    
    ;----- CONFIG4L Options --------------------------------------------------
        CONFIG BBSIZ     = BB1K       ; 1K word Boot Block size
        CONFIG STVREN    = ON 
    
    ;----- CONFIG5L Options --------------------------------------------------  
        
        CONFIG CP0       = ON         ;  MEMORY BLOCK 0 CODE PROTECT BIT - 7KW 800h  - 3FFFh ( when 1K BOOT OPTION used )
        CONFIG CP1       = ON         ;  MEMORY BLOCK 1 CODE PROTECT BIT - 8KW 4000h - 7FFFh
        CONFIG CP2       = ON         ;  MEMORY BLOCK 2 CODE PROTECT BIT - 8KW 8000h - BFFFh
        CONFIG CP3       = ON         ;  MEMORY BLOCK 3 CODE PROTECT BIT - 8KW C000h - FFFFh
       
       
    ;----- CONFIG5H Options --------------------------------------------------  
       CONFIG  CPD       = OFF        ; EEPROM DATA PREOTECT BIT - EXTERNAL R/W
       CONFIG  CPB       = ON         ; BOOT BLOCK CODE PROTECT BIT 
    
    ;----- CONFIG6L Options --------------------------------------------------  
        CONFIG WRT0      = OFF        ; MEMORY BLOCK WRITE PROTECT BIT 
        CONFIG WRT1      = OFF
        CONFIG WRT2      = OFF 
        CONFIG WRT3      = OFF
      
      
    ;----- CONFIG6H Options --------------------------------------------------  
        CONFIG WRTD      = OFF       ; EEPROM WRITE PROTECT BIT - INTERNAL AND EXTERNAL 
        CONFIG WRTB      = ON        ; BOOT BLOCK WRITE PROTECT 
        CONFIG WRTC      = ON        ; CONFIGURATION REGISTER WRITE PROTECT BIT 
     
    ;----- CONFIG7L Options --------------------------------------------------  
         CONFIG EBTR0     = OFF      ; MEMORY READ TABLE BLOCK PROTECT 
         CONFIG EBTR1     = OFF
         CONFIG EBTR2     = OFF
         CONFIG EBTR3     = OFF
        
    ;----- CONFIG7H Options --------------------------------------------------  
        CONFIG EBTRB     = OFF      ; TABLE READ PROTECT BOOT 
     
       #ENDCONFIG
       clear                        ' clear all varables to 0 on startup  
    ' ----------------  Setup All Define statements ------------ 
        DEFINE OSC 4                ' Timing referance for pause , pauseus commands
        DEFINE ADC_BITS 12          ' Number of bits in ADCIN result - Required for adcin command 
        DEFINE PULSIN_MAX 2000      ' Maximum counts( clock ticks) allowed before pulsin times out( 2000 ^ 1.25us =  2.5 ms)
        DEFINE HSER_PORT 2          ' Hser port 2 use 
        DEFINE HSER2_RCSTA 90h      ' Hser2 receive status init 
        DEFINE HSER2_TXSTA 24h      ' Hser2 transmit status init  ( BIT2 -BRGH 1= HI SPEED, 0= LOW SPEED )
        DEFINE HSER2_CLROERR 1      ' Clear overflow automatically
        DEFINE HSER2_BAUD 19200     ' Hser2 baud rate
        DEFINE HSER2_SPBRG 12       ' 19200 Baud @ SPBRGH = 12 0.16% error
        BAUDCON2.3 = 1              ' set BRG16 = 1 - 16BIT/ASYNC  
        
    ' ---------- Set up DT_INTS-18 Routine for Instant Interupt handling   -----------
       
         INCLUDE "DT_INTS-18.bas"       ; Base Interrupt System for 18FxxK80 processors
         INCLUDE "ReEnterPBP-18.bas"    ; Include if using PBP interrupts
        
    ASM
    INT_LIST macro	; IntSource  ,    Label    , Type, ResetFlag?
    
       INT_Handler TMR0_INT, _Timer0_Count,  PBP, yes      ; call Timer0_Count subroutine
       INT_Handler  RBC_INT, _Rx_mode_IOC ,  PBP, yes      ; Call Rx_mode_IOC subroutine for RF RX_mode
       INT_Handler  RX2_INT, _Term_RX     ,  PBP, yes      ; Call Term_input for terminal char buffer 
       INT_Handler INT0_INT, _Sleep_Over  ,  PBP, Yes      ; Call for INT0 trigger - when exit sleep mode 
     endm
     INT_CREATE								; Creates the Interrupt Processor
    ENDASM
    
    
    
     
    
     '----------- 18F46K80  - PIC chip Dephalt settings --------------------
    
     
     
     
     
       OSCCON   = %00110000     ' Select 1Mhz - using 1Mhz internal with PPLx4 in Config1H<3:0>  =  IDLEN =0 , 8Mhz , OSTS=0,RFIOFS=1,RC_Run (1x) OSC using PLL  
                                ' Bit 7 IDLEN =0 ( sleep mode when sleep instraction executed)
                                ' Bits 6-4 -  111 = 16Mhz , 110 = 8MHz ,101 = 4 MHz, 100 = 2MHz 011 = 1MHz
                                ' If INTTSRC=0 and MFIOSEL= 0 then 010 = HF-INTOSC/32 (500Khz), 001 = HF-INTOSC/64 (250Khz) ,000 = LF-INTOSC     (31.25Khz)
                                ' If INTTSRC=0 and MFIOSEL= 1 then 010 = MF-INTOSC    (500Khz), 001 = MF-INTOSC/2  (250Khz) ,000 = LF-INTOSC     (31.25Khz)
                                ' If INTTSRC=1 and MFIOSEL= 0 then 010 = HF-INTOSC/32 (500Khz), 001 = HF-INTOSC/64 (250Khz) ,000 = HF-INTOSC/512 (31.25Khz)
                                ' If INTTSRC=1 and MFIOSEL= 1 then 010 = MF-INTOSC    (500Khz), 001 = MF-INTOSC/2  (250Khz) ,000 = MF-INTOSC/16  (31.25Khz)
                                ' Note: INTSRC = OSCTUNE<7> and MFIOSEL = OSCCON2<0>
                                ' Bit 3 - OSTS = 0 - Osc startup time out  is ruinning from internal OSC ( HF, MF or LF-INTOSC) 
                                ' Bit 2 - HFIOFS =1 ( INTOSC Frq stable bit  -  1 = stable , 0 = not stable 
                                ' Bits 1-0 - 00= Dephalt Pri OSc ( OSC1/2 or HF-INTOSC with/without PLL set in FOSC,3:0> config1H <3.0>
                                '            01 = SOSC osc
                                '            1x = Internal osc ( LF, MF,HF-INTOSC)  
       
      ' OSCCON2 = $00            ' Bit 7 n/a , Bit 6 - SOSCRUN - Run status bit , Bit 5-4 n/a, 
                                ' Bit 3 = SOASCGO - Osc Start control bit 1 = OSC running , 0 = OSC shut off if no requests for it 
                                ' Bit 2 n/a , Bit 1 - MFIOFS 1= MFINTOSC stable  0 = Not stable 
                                ' Bit 0 MFIOSEL - 1 = MF-INTOSC replaces HF-ISTOSC Freq for 500Khz,250Khz,31.25KHz) 0 = MF-INTOSC not used 
      
       OSCTUNE = %01000000      ' Bit 7  - INTSRC - internal LF Source Select 1 = 31.25 from 16Mhz Internal /512 HF-INTOSC ) 0 = Internal 31khz OSC 
                                ' Bit 6 - PLLEN - 1 PLL enabled  , 0 = PLL disabled 
                                ' Bits 5-0 Frequancy callibaration 00000 = centre Frq
                                
       WDTCON = %00010000       ' use ultra low power mode when in sleep - disable  regulator in sleep mode  
                                ' Bit7 = REGSLP- Regulator Voltage Sleep Enable - 1= Reg goes into low-power Mode when in sleep mode ,0 = Reg stay in normal mode 
                                ' Bit6= n/a , Bit5 = ULPLVL - Ultra lowpower Wakeup output sel 1= Vout on RA0 0= Vout on RA1 ( no effect if WDTEN in config is set  )
                                ' Bit4= SRETEN = Regulator Volt Sleep Disable bit - 1= goes into Ultra lOwpower mode in sleep ( CONFIG1L.0 =0 MUST BE SET) 
                                ' Bit3=n/a , Bit2 = ULPEN - Ultra Low Power Wakup Module enable 1 = enabled , 0 = disabled 
                                ' Bit1=ULPSINK- Ultra Low-power Wakeup Current Sink Enable  1= Sink enabled 0 = Sink disabled ( Not valid if ULPEN=0 ) 
                                ' Bit0= SWDTEN -Watchdog Timer Enable  = 1= enable watchdog 0 = Disable Watchdog ( no effect if WDTEN in config is set  ) 
      
        
        PSPCON.4 = 0             ' turn off parallel slave port mode - general purpose I/O mode PORTD & PORTE
      
         
        
        INTCON2.6 = 0          ' INTEDG0 - External Interrupt 0 Edge Select - 1= Rising Edge , 0 = Falling Edge  
        INTCON2.5 = 0          ' INTEDG1 - External Interrupt 1 Edge Select - 1= Rising Edge , 0 = Falling Edge 
        INTCON2.4 = 0          ' INTEDG2 - External Interrupt 2 Edge Select - 1= Rising Edge , 0 = Falling Edge 
        INTCON2.3 = 0          ' INTEDG3 - External Interrupt 3 Edge Select - 1= Rising Edge , 0 = Falling Edge 
        
        INTCON3.6 = 0          ' INT1IP  - INT1 External Interupt Priority - 1 = High Priorty , 0 = Low Priority   
        INTCON3.7 = 0          ' INT2IP  - INT2 External Interupt Priority - 1 = High Priorty , 0 = Low Priority   
        INTCON2.1 = 0          ' INT3IP  - INT3 External Interupt Priority - 1 = High Priorty , 0 = Low Priority

  2. #2
    Join Date
    Jan 2013
    Location
    Texas USA
    Posts
    229


    Did you find this post helpful? Yes | No

    Default Re: USART2 setting for 1MHzCPU + 4PLL

    Just as Richard said.

    Look at FIGURE 3-1: PIC18F66K80 FAMILY CLOCK DIAGRAM in the Datasheet.
    Look for the 4xPLL block and you will see what feeds into it.

    That should make it clear.
    Regards,
    TABSoft

Similar Threads

  1. Micrtochip AN1310 for USART2
    By cerr99 in forum mel PIC BASIC
    Replies: 1
    Last Post: - 27th May 2011, 18:59
  2. USBBufferSize setting
    By Ronald123 in forum USB
    Replies: 4
    Last Post: - 18th April 2008, 12:33
  3. Setting up the oscillator
    By J_norrie in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 2nd October 2007, 14:53
  4. setting up HPWM
    By sunny in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 22nd October 2006, 01:36
  5. setting register
    By volcane in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 19th April 2006, 22:46

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts