Serial Baudrate 115200


Closed Thread
Results 1 to 36 of 36

Hybrid View

  1. #1
    Join Date
    Jul 2005
    Location
    Selangor, Malaysia
    Posts
    31


    Did you find this post helpful? Yes | No

    Unhappy How to setup Debug in Open Mode Like SerialOut

    Hi all,
    I was previously using the SerOut2 to send data, but the data line was sharing by few PICs and I have used Open Mode.
    Recently porting my code by replacing SerOut2 with the Debug command to save same space. But later found out that there are no way to setup the Debug in the open mode.
    Please help! Is there neccessary to use Open mode to share the data? or the Debug doesn't need the Open mode even sharing the data line.

    Regards

  2. #2
    Join Date
    Dec 2005
    Posts
    1,073


    Did you find this post helpful? Yes | No

    Default

    I have an application where a PIC12F683 has to communicate with an external peripheral. I need SerIn/SerOut because the external device may be 4800 or 9600 bps.

    The PIC12F683 also needs to communicate with a PIC16F876A.

    Is there any advantage to using Debug/DebugIn for the PIC2PIC comms given that the PIC12F683 already uses SerIn/SerOut?

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


    Did you find this post helpful? Yes | No

    Default

    dhouston, Serin/out provide software type communications and can have the baudrate's and port's changed on the fly during program execution. Therefore the compiled code overhead is quite large, whereas Debigin/out commands after the compile are the smallest for software type usart emulation. The port and baudrate used for Debugin/out can not be changed during program execution therefor they must be DEFINE'd at the start of the source program. There are some other functions that are lost in the use of Debugin/out but for the most part it was designed for program debugging with a terminal. I have used Debugout for PIC micros that have no internal usart and still use it today for programming debug functions. The limitations of Debugin/out are covered in the manual. LOL

    Dave Purola,
    N8NTA

  4. #4
    Join Date
    Dec 2005
    Posts
    1,073


    Did you find this post helpful? Yes | No

    Default

    Dave,

    I understand all of that.

    My question is, given that I have to use SerIn/SerOut for the external link, will I take another overhead hit if I also use it for the internal link or can I gain by using Debug for the internal link?

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


    Did you find this post helpful? Yes | No

    Default

    dhouston , If you are already using Serin/out on your program there is no need to add the extra code overhead in using Debugin/out unless you need the serial speed.

    Dave Purola,
    N8NTA

  6. #6
    Join Date
    Aug 2006
    Location
    SWITZERLAND (french speaking)
    Posts
    938


    Did you find this post helpful? Yes | No

    Default Serial Baudrate 115200 using HSEROUT - how to?

    I'm having difficulties making my PIC's HSEROUT working at all. I need to get 115200bps.

    I can reach 38400bps with the SEROUT2 command without any trouble.

    For 115200bps, I go with HSEROUT. I use the MCS Serial Communicator and the PIC has a 20MHz crystal.

    SEROUT2 is okay, HSEROUT is not working at all (not even @1200bps).

    I've been trying to make it work for hours and hours, redoing the cabling (see picture) different ways as suggested in other threads, modifying the code also many times but no success until now. I just always get garbage on the serial terminal's screen.
    Code:
    ' SEROUT2
      
    ' PIC 16F690 Fuses
    @ __Config _FCMEN_OFF &_IESO_OFF &_BOR_OFF &_CPD_OFF &_CP_OFF &_MCLRE_OFF &_PWRTE_OFF &_WDT_OFF &_HS_OSC
     
    OPTION_REG = 000000 'PORT A&B Pull-Ups (look WPUA & WPUB)
    ADCON0     = 000000 'A/D Module
    ANSEL      = 000000 'Select analog inputs Channels 0 to 7
    ANSELH     = 000000 'Select analog inputs Channels 8 to 11
    INTCON     = 000000 'INTERRUPT Control
    'WPUA       = 000000 'Select PORTA weak pull-ups
    'IOCA       = 000000 'Interrupt On Change selection
    CM1CON0    = 000000 'Comparator1 Module
    CM2CON0    = 000000 'Comparator2 Module
    TRISA      = 000000 'Set Input/Output (0 to 5)
    PORTA      = 000000 'Ports High/Low (0 to 5)
    TRISB      = 000000 'Set Input/Output (4 to 7)
    PORTB      = 000000 'Ports High/Low (4 to 7)
    TRISC      = 000000 'Set Input/Output (0 to 7)
    PORTC      = 000000 'Ports High/Low (0 to 7)
     
    '-------------------------------------------------------------------------------
    ' DEFINEs
    DEFINE OSC 20
    DEFINE LCD_COMMANDUS 2000
    DEFINE LCD_DATAUS 50
     
    '-------------------------------------------------------------------------------
    LED1    VAR PORTA.2
    Counter VAR WORD
    Counter = 0
     
    TEST:
      TOGGLE LED1
      'serout2 PORTB.7,16416,[dec counter,13,10]'19200 DIN with MAX232
      SEROUT2 PORTB.7,16390,[DEC Counter,13,10]'38400 DIN with MAX232
      PAUSE 500
      Counter = Counter + 1
      GOTO TEST
      
      END
    Code:
    ' HSEROUT
      
    ' PIC 16F690 Fuses
    @ __Config _FCMEN_OFF &_IESO_OFF &_BOR_OFF &_CPD_OFF &_CP_OFF &_MCLRE_OFF &_PWRTE_OFF &_WDT_OFF &_HS_OSC
     
    OPTION_REG = 000000 'PORT A&B Pull-Ups (look WPUA & WPUB)
    ADCON0     = 000000 'A/D Module
    ANSEL      = 000000 'Select analog inputs Channels 0 to 7
    ANSELH     = 000000 'Select analog inputs Channels 8 to 11
    INTCON     = 000000 'INTERRUPT Control
    'WPUA       = 000000 'Select PORTA weak pull-ups
    'IOCA       = 000000 'Interrupt On Change selection
    CM1CON0    = 000000 'Comparator1 Module
    CM2CON0    = 000000 'Comparator2 Module
    TRISA      = 000000 'Set Input/Output (0 to 5)
    PORTA      = 000000 'Ports High/Low (0 to 5)
    TRISB      = 000000 'Set Input/Output (4 to 7)
    PORTB      = 000000 'Ports High/Low (4 to 7)
    TRISC      = 000000 'Set Input/Output (0 to 7)
    PORTC      = 000000 'Ports High/Low (0 to 7)
     
    '-------------------------------------------------------------------------------
    ' DEFINEs
    DEFINE OSC 20
    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_BAUD 19200
    'DEFINE HSER_SPBRG 64
    DEFINE HSER_CLOERR 1
     
    '-------------------------------------------------------------------------------
    LED1    VAR PORTA.2
    Counter VAR WORD
    Counter = 0
     
    TEST:
      TOGGLE LED1
      HSEROUT [DEC Counter,13,10]
      PAUSE 500
      Counter = Counter + 1
      GOTO TEST
      
      END  

    There's a MAX232 close to the PIC making me think the lines are as short as possible. But is it enough on the hw side?
    Name:  SerialCom.jpg
Views: 1986
Size:  65.6 KB
    Last edited by flotulopex; - 16th October 2011 at 14:56.
    Roger

  7. #7
    Join Date
    Sep 2005
    Location
    Campbell, CA
    Posts
    1,107


    Did you find this post helpful? Yes | No

    Default Re: Serial Baudrate 115200 using HSEROUT - how to?

    Try changing

    DEFINE
    HSER_TXSTA 24h to

    DEFINE HSER_TXSTA 20h
    Charles Linquist

Similar Threads

  1. Replies: 33
    Last Post: - 19th March 2010, 03:02
  2. Dynamic USB Serial Number (PIC18F4550)
    By awmt102 in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 16th July 2009, 17:03
  3. 16f88 internal osc 8mhz max serial baudrate ?
    By RFsolution in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 16th December 2008, 23:27
  4. PIC18F4680 to PC via MAX232 (RS232 serial) no output
    By opticsteam1 in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 14th April 2008, 20:39
  5. interfacing to the pc serial port
    By kelangfei in forum General
    Replies: 4
    Last Post: - 7th October 2007, 22:35

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