115200 Baud to 9600 Baud Translator


Closed Thread
Results 1 to 17 of 17

Hybrid View

  1. #1
    ScottC's Avatar
    ScottC Guest


    Did you find this post helpful? Yes | No

    Question 115200 HSEROUT Not Working

    I have been messing with this for a bit and no luck. I am using a 16F873A with UART. I see a burst of data on my scope, but PC does not see it. I also know that I have to invert the signal due to the nature of HSEROUT.

    Is what I have code wise correct?

    Any Ideas? I am using a 22.1184MHz Xtal. code is below.
    Just using this as a test to see if I can get 115200 baud to work. Then I'll try to concour the above issue posted.


    DEFINE OSC 20 ' 20MHz oscillator
    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 20h
    DEFINE HSER_BAUD 115200
    DEFINE HSER_SPBRG 2
    TRISA = 0
    TRISB = 0
    TRISC = 0

    PORTB.0 = 1

    START:

    HSerout ["12345",10]
    Pause 1000

    GoTo START
    End

    Thanks,

    Scott
    Last edited by ScottC; - 18th March 2005 at 15:23.

  2. #2
    Ceug2005's Avatar
    Ceug2005 Guest


    Did you find this post helpful? Yes | No

    Default

    try at lower speed
    this what i use , not tested uper 9600

    define OSC 20
    DEFINE HSER_TXSTA 20h ' enable the transmit register
    DEFINE HSER_BAUD 2400
    .
    .
    .' +/-
    HSEROUT [dec sign0,10,dec tempc0,13]

    better to use an MAX 232 to conect at COMx

  3. #3
    Join Date
    Jul 2003
    Location
    Sweden
    Posts
    237


    Did you find this post helpful? Yes | No

    Post

    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_SPBRG 11

  4. #4
    Join Date
    Jul 2003
    Location
    Sweden
    Posts
    237


    Did you find this post helpful? Yes | No

    Post

    .... and mode 97 should give 9600 baud with SEROUT2. However, you would probably do yourself a favour by switching to a 20MHz crystal since PBP likes that better, all timings will be correct. 115200 baud works quite well with 20MHz and HSEROUT.

    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_SPBRG 10

    .... will give you 115200 with 20MHz.

  5. #5
    ScottC's Avatar
    ScottC Guest


    Did you find this post helpful? Yes | No

    Thumbs up 115200 Baud Working!

    Well, at last I have success! Thanks to all who pitched in to make this happen. I adjusted the values in the define statements as suggested.

    I am still using 22.1184 XTAL. Here is the test code below.

    Thanks again.......

    Scott


    DEFINE OSC 20 ' 20MHz oscillator (22.1184MHz)
    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_BAUD 115200
    DEFINE HSER_SPBRG 11
    TRISA = 0
    TRISB = 0
    TRISC = 0

    START:

    HSerout ["HELLO"]
    Pause 500

    GoTo START
    End

  6. #6
    ScottC's Avatar
    ScottC Guest


    Did you find this post helpful? Yes | No

    Question 9600 Baud to 115200

    Well, interesting. Now I am trying to take in the character at 9600 and resend at 115200. When I do this code below, my results are not what I want!

    For example when I send the number 1, I receive an "a", send 2, I get an "f"
    3 a "g", ect till I send 6, the sequence jumps to "n", "o".. Really strange.

    I don't know if it is a timing issue or not???? Puzzled.

    It was mentioned above that I could change the baud rate on the fly, How is that done? Could the issue be I have different baud rates on different pins, seems it should not matter. I'm lost..

    ScottC

    DEFINE OSC 20 ' 20MHz oscillator
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_BAUD 115200 '115200 Baud Out
    DEFINE HSER_SPBRG 11
    DEFINE DEBUGIN_REG PORTB ' 9600,8,N,1 Serial In
    DEFINE DEBUGIN_BIT 7
    DEFINE DEBUG_BAUD 9600
    DEFINE DEBUGIN_MODE 1
    B7 VAR BYTE

    '**********************************************

    TRISA = 0
    TRISB = %00000001
    TRISC = 0

    '********************************* READ SERIAL PORT

    loop: While PORTB.7 = 1 'Wait for start bit
    Wend

    DebugIn [B7] ' B0 = input character
    Pause 500

    print: HSerout [B7]

    GoTo loop ' Forever

  7. #7
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Are you're still using the 22.1184MHz crystal?

    DEBUGIN bit timing is calculated for 20MHz with DEFINE OSC 20.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

Similar Threads

  1. A Serial GLCD 128x64 Simple Project
    By Oldspring in forum Off Topic
    Replies: 0
    Last Post: - 8th March 2010, 20:58
  2. Replies: 14
    Last Post: - 20th March 2008, 13:54
  3. pic18f4520 baud rate change to 115200
    By caltex88 in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 30th September 2007, 08:41
  4. Auto Baud Rate Detection
    By mytekcontrols in forum Serial
    Replies: 10
    Last Post: - 31st October 2005, 02:17
  5. Baud Rate and Timing Calculator
    By picnaut in forum General
    Replies: 3
    Last Post: - 23rd January 2004, 16:48

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