PIC16F877 & Serial Comms


Closed Thread
Results 1 to 12 of 12

Hybrid View

  1. #1
    G4LCH's Avatar
    G4LCH Guest

    Smile Thanks Sean

    Sean As I said in my note I have the modedefs in there and it compiles 100%
    I have also tried it direct with 1k resistors and via an interface and i get garbage in all cases.

    Mark

  2. #2
    G4LCH's Avatar
    G4LCH Guest

    Unhappy Update

    With the debug command I have also tried to use 4800 Bps and both inverted and non inverted with no luck still garbage.
    Mark

  3. #3
    Join Date
    Aug 2005
    Posts
    42

    Default

    Mark you say you are using VB.

    Have you simply ran up hyperterminal, set the com port to 2400 8 n 1, hit retunr to open port and then looked for the data, this will illiminate another step if the data is clear and then it has to be the VB side of things.

    Regards

    Sean.
    *********************
    http://www.cncdudez.co.uk
    *********************

  4. #4
    G4LCH's Avatar
    G4LCH Guest

    Smile Thanks

    I have used my own comms software, hyperterminal etc plus vb (gives me bit stream access) and nothing works.
    I have this nagging feeling that this is the comms port to be honest or rarther the wrong caps on teh max232cpe level converter I have built several of these and have used 20uf instead these are proper maxim devices as well
    but I have this feeling that it may be possible that the caps are wrong as the ICD does not connect either mmmmmm off to replace the caps I think.

    But I have also tried without the interface as well and get exactly the same datastream ... The operating system is irrelevent but I have used W2k and OS X I have windows 98 so I may give this a try, I also need to check the fifo buffers for the W2K box and see if these are not messing me up...

    The vaio machine I am using does not want to talk to some devices sometimes and maybe this is the root, of course it could be guess work as the Mac is rock solid.

    Mark

  5. #5
    G4LCH's Avatar
    G4LCH Guest

    Angry Further Information

    Its not the serial ports


    b var byte

    include "modedefs.bas"

    for b = 1 to 100
    SEROUT PORTB.6,T2400,[#b]
    next


    Counts as you would expect, on the pic simulator with the code complied for the F84 and simulator set for F84 works great, set compiler to 877 and simulator to the 877 it delivers garbage.

    This is telling me that there may be something wrong with my basic compiler
    in the include files ?????

    this should give 12345 etc but give junk with the 877 selected
    Mark

  6. #6
    G4LCH's Avatar
    G4LCH Guest

    Cool Sorted

    After deinstalling all of the software and cleaning the machine (I do many different development tasks) I then re-installed the software components again. Checked the MAX232-Interface with another type of system requireing a level converter this checked out fine.

    The same problem existed.

    Then I decided to move to hSerOut as I could get closer the baudrate generator values..

    Got the picbasic example, and still the same garbage.... Then I got the scope connected and sent a constant stream of one character with a second delay
    bingo after some calculations it was easy to see what the problem was

    if you use SPBRG = 24 ' Set baud rate to 2400

    you get garbage or can only send single characters

    but if you use

    SPBRG = 23 ' Set baud rate to 2400

    as per the spec sheet bingo it works, this means that in picbasic 244 the default defines are not correct for the 877.


    the use of debug could be fixed I guess by attacking the mac files (but I will not) because this could be for a reason.

    So I will use hSerOut with the above to solve the problem I had.

    Don't you just love RS232 lol,

    Thanks for all you help guys and if anyone has seen this before and
    has a fix then please drop me a line..

    Mark
    G4LCH

  7. #7
    G4LCH's Avatar
    G4LCH Guest

    Cool Source Problem Located

    Guy's
    I have located the real source of the problem. The crystal supplied
    by maplins that is marked as 4.00MHz is actually a 3.5MHz crystal.
    Hence why the baud rate calcs were off. I swapped this for a real 4.00MHz
    crystal and bingo everything works fine. Including the ICD which is cool.

    Just thought you should know to always check the actual frequency the pic
    is operating at. If a crystal is quoted as 4Mhz and debug or serial routines
    give junk and you do have

    Define OSC 4

    Then the chances are that the crystal is either off frequency or the padding caps are wrong or in my case is 500 odd KHz low.

    I located this by first checking the PicBasic includes and their calculations
    were correct 100% this pointed to only one thing the crystal was off frequency.

    Hope this help someone else.

    Mark G4LCH

Similar Threads

  1. Serial Comms through TX/RX pair jumbled
    By altech6983 in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 28th July 2009, 21:04
  2. Some comments on serial comms please.
    By muddy0409 in forum Schematics
    Replies: 1
    Last Post: - 15th June 2007, 09:53
  3. Replies: 8
    Last Post: - 17th January 2007, 19:18
  4. Serial Comms with PIC micros
    By carlsnilsson in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 21st September 2006, 01:00
  5. Replies: 2
    Last Post: - 23rd July 2006, 08:16

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