HSEROUT at Quarter Rate!


Closed Thread
Results 1 to 7 of 7
  1. #1
    Join Date
    Jan 2011
    Posts
    6

    Default HSEROUT at Quarter Rate!

    Hi All,

    Currently using a PIC18LF26K80, and have found the HSEROUT command to outputing data at quarter of the specified rate.

    Here is the header to my code:
    Code:
    #config
        CONFIG RETEN = OFF              
        CONFIG INTOSCSEL = LOW
        CONFIG SOSCSEL = LOW
        CONFIG XINST = OFF
        CONFIG FOSC = INTIO1
        CONFIG PLLCFG = ON
        CONFIG FCMEN = OFF
        CONFIG IESO = OFF
        CONFIG PWRTEN = OFF
        CONFIG BOREN = OFF
        CONFIG BORV = 0
        CONFIG BORPWR = LOW
        CONFIG WDTEN = OFF
        CONFIG WDTPS = 1
        CONFIG CANMX = PORTC
        CONFIG MSSPMSK = MSK7
        CONFIG MCLRE = OFF
        CONFIG STVREN = OFF
        CONFIG BBSIZ = BB1K
        CONFIG CP0 = OFF
        CONFIG CP1 = OFF
        CONFIG CP2 = OFF
        CONFIG CP3 = OFF
        CONFIG CPB = OFF
        CONFIG CPD = OFF
        CONFIG WRT0 = OFF
        CONFIG WRT1 = OFF
        CONFIG WRT2 = OFF
        CONFIG WRT3 = OFF
        CONFIG WRTC = OFF
        CONFIG WRTB = OFF
        CONFIG EBTR0 = OFF
        CONFIG EBTR1 = OFF
        CONFIG EBTR2 = OFF
        CONFIG EBTR3 = OFF
        CONFIG EBTRB = OFF
    #endconfig
    '*****
    '* Defines and Device Configurations
    '*****
    define OSC 8                        ' Internal OSC runs at 8MHz
    define HSER_RCSTA1 90h              ' Enable USART1 Receiver
    define HSER_TXSTA1 20h              ' Enable USART1 Transmitter
    define HSER_RCSTA2 90h              ' Enable USART2 Receiver
    define HSER_TXSTA2 24h              ' Enable USART2 Transmitter
    define HSER_BAUD1 9600
    define HSER_BAUD2 9600
    TRISA=%00000001                     ' Make PORTA.0 an input
    ADCON0=%00000001                    ' Turn on ADC AN0
    ADCON1=%00000000                    ' Turn off PORTB ADC's
    ADCON2=%00000000                    ' Turn off PORTC ADC's
    INTCON=%11000000                    ' Enable Interrupts
    PIE1=%00100000                      ' Enable USART1 Interrupt
    OSCCON=%01100000
    REFOCON=%10100111
    OSCTUNE=%10000000
    By connecting at 2400 baud, the comms works fine, but I am hoping to find the real reason behind my errors...

    Cheers
    Mark

  2. #2
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166

    Default Re: HSEROUT at Quarter Rate!

    what crystal are you driving the PIC with? I notice you have the PLL enabled which will multiply the crystal freq. by 4 times. You have declared the operating frequency as 8 Mhz. If you have set the internal frequency as 8 Mhz then you are generating 24 Mhz. I would check your settings....
    Dave Purola,
    N8NTA
    EN82fn

  3. #3
    Join Date
    Jan 2011
    Posts
    6

    Default Re: HSEROUT at Quarter Rate!

    Thanks Dave,

    I am currenty using the internal osc, as set by CONFIG FOSC = INTIO1 and it should be running at 8MHz by the OSCCON=%01100000 configs. In regards to the PLL, by switching it on - by either the PLLCFG or OSCTUNE, it enables the HSEROUT command to operate at the correct baud, but this results in the rest of the pic running at 4 times...

  4. #4
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166

    Default Re: HSEROUT at Quarter Rate!

    Gitchie, That is because you have declared to PBP that you are running the code @ 8 Mhz. by the statement:
    define OSC 8 ' Internal OSC runs at 8MHz

    This statement tells PBP to scale all timing statements like PAUSE and the like to use an 8 Mhz. oscillator. You should be setting the DEFINE statement to 32 Mhz. which is the frequency that the processor is actually being clocked at.
    Dave Purola,
    N8NTA
    EN82fn

  5. #5
    Join Date
    Jan 2011
    Posts
    6

    Default Re: HSEROUT at Quarter Rate!

    That's correct, but then the hserout runs at quarter speed... For the moment, I've set the baud to 9600 and will run it at 2400...

  6. #6
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166

    Default Re: HSEROUT at Quarter Rate!

    Don't you understand? Just set the baudrate to the desired rate and set the DEFINE OSC 32. Everything will work correctly.....
    Dave Purola,
    N8NTA
    EN82fn

  7. #7
    Join Date
    Jan 2011
    Posts
    6

    Default Re: HSEROUT at Quarter Rate!

    Thanks for your replays Dave,

    But it was a typographical error with the HSER2 defines... I had HSER_BAUD2 1200 when it should have been HSER2_BAUD 1200

    I was hunting for an OSC problem also

    Cheers and thanks again for your suggestions

Members who have read this thread : 1

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