I can not figure out an LCD issue


Closed Thread
Results 1 to 15 of 15

Hybrid View

  1. #1
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    _XT_OSC
    should be
    _HS_OSC
    with a resonator.

    LCD_DBIT 0
    change to
    LCD_DBIT 4

    Maybe...

    Why AnyPin worked? I have no idea.
    Dave
    Always wear safety glasses while programming.

  2. #2
    Join Date
    May 2009
    Location
    Montreal, QC, Canada
    Posts
    118


    Did you find this post helpful? Yes | No

    Default

    Thanks for the reply Mackrackit,

    Based on the datasheet _HS_OSC would be for 8 and 16 MHz but in my case I have 4 MHz.
    But I gave it a try and also setting LCD_DBIT 4 but I get no timing difference with the "AnyPin" and still zilch with other setup!

    I also tried FLAGS = 0 but still nothing

  3. #3
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    The following works for me using an EasyPIC5 board with the LCD on PORTB, 18F4550 with 20Mhz xtal (mainly as that's what I'm using for a current project and couldn't be bothered to change the PIC !)

    Code:
    ASM  ; 18F2550/4550, 20mhz crystal
       __CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
       __CONFIG    _CONFIG1H, _FOSC_HSPLL_HS_1H
       __CONFIG    _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L & _VREGEN_ON_2L
       __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
       __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
       __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
    ENDASM
    
    DEFINE OSC 48
    TRISB = 0                   ' Make PORTB all outputs
    CMCON = 7                   ' Disable comparator
    
    
    ;----[LCD definitions]------------------------------------------------------
    DEFINE LCD_DREG  PORTB          ' LCD Data port
    DEFINE LCD_DBIT  0              ' starting Data bit (0 or 4)
    DEFINE LCD_EREG  PORTB          ' LCD Enable port
    DEFINE LCD_EBIT  5              '     Enable bit  (on EasyPIC 5 LCD)
    DEFINE LCD_RSREG PORTB          ' LCD Register Select port
    DEFINE LCD_RSBIT 4              '     Register Select bit   (on EasyPIC 5 LCD)
    DEFINE LCD_BITS  4              ' LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 2              ' number of lines on LCD
    DEFINE LCD_COMMANDUS 2000       ' Command delay time in us 
    DEFINE LCD_DATAUS 50            ' Data delay time in us 
    
    LCDOUT $FE,1                ' clear screen 
    LCDOUT $FE,$80,"LCD Prototype MJ"  
    
                                ' Use $Fe,$C0 to address the second line
    LCDOUT $FE,$C0,"Timer testing"  
    pause 5000
    LCDOUT $FE,$C0,"             "
    
    Start:                      ' Program starts here
                                
    
    goto start
                                
    end
    Using DEFINE OSC 20 I had erroneous results on the LCD, so it's obviously a timing issue with your 4MHz resonator.

  4. #4
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    When you say resonator I think of a three pin thing with built in caps, HS works for that.
    If you are using a crystal then you may want to check the caps.

    Forget the LCD for a bit and figure out the timing problem by blinking an LED once per second.
    Dave
    Always wear safety glasses while programming.

  5. #5
    Join Date
    May 2009
    Location
    Montreal, QC, Canada
    Posts
    118


    Did you find this post helpful? Yes | No

    Default

    Thanks Malc-C for the reply but I am not exactly trying to make it work...
    Well yes I am trying to make it work but first I am trying to understand what is happening and what is my issue.

    Mackrackit,
    I am using a resonator (3 pins with caps incorporated) and double checked the datasheet and it does suggest _XT_OSC for a 4 MHz resonator.

    I followed your suggestion and I put a LED with puse 1000 and also it is taking 2 secs to blink. Now, I set DEFINE OSC 4 instead of 8 which brought down to 1 sec as I expected so I know that if i am using a 4 MHz crystal, I should be having DEFINE OSC 4. I could be wrong but I think this part is clear to me.

    So my questions are changing a bit and now I end up with:

    1 - Why does LCD_AnyPin only works with DEFINE OSC 8 although I have a 4 MHz crystal ?

    2 - Why the standard way for LCD is not working whisle LCD_AnyPin did even at 8 ?

    When I find out, I will never forget it!

    Mike

  6. #6
    Join Date
    May 2009
    Location
    Montreal, QC, Canada
    Posts
    118


    Did you find this post helpful? Yes | No

    Default

    after reading over the thread I just saw this:
    Using DEFINE OSC 20 I had erroneous results on the LCD, so it's obviously a timing issue with your 4MHz resonator
    I took out my resonator and used the chips' internal oscillator but I get the same results so this rules out the resonator I was using.

    When using LCD_AnyPin it works with 8 MHz but the timing is doubled, if I set to 4 MHz the timing is is ok and LCD is blank.

    Furthermore using standard settings for LCD does not work at all settings for OSC.

    Help!

  7. #7
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    The only suggestion I have now is to play with these lines.
    Code:
    DEFINE LCD_COMMANDUS 2000       ' Command delay time in us 
    DEFINE LCD_DATAUS 50            ' Data delay time in us
    Use the 4 MHZ OSC
    DEFINE OSC 4
    Dave
    Always wear safety glasses while programming.

  8. #8
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by lilimike View Post
    after reading over the thread I just saw this:


    I took out my resonator and used the chips' internal oscillator but I get the same results so this rules out the resonator I was using.

    When using LCD_AnyPin it works with 8 MHz but the timing is doubled, if I set to 4 MHz the timing is is ok and LCD is blank.

    Furthermore using standard settings for LCD does not work at all settings for OSC.

    Help!
    Mike,

    That's why I included the statement. With a 20Mhz xtal and setting the define to 20 I got random parts of the text displayed. When I set the define to 48 it worked - why I don't know (I'm still a newb to a degree My guess is that the value is divided internally somewhere to set the timing, which is why in your case setting it to 8 works with a 4Mhz xtal

  9. #9
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Question

    Quote Originally Posted by malc-c View Post
    The following works for me using an EasyPIC5 board with the LCD on PORTB, .

    Hi, Lili

    Me too with a 16F628 @ 8Mhz ... same board.
    "LCD on Anypin" mods implemented ... but not used here.

    may be the missing LCD Settling time @beginning of the program ???

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  10. #10
    Join Date
    May 2009
    Location
    Montreal, QC, Canada
    Posts
    118


    Did you find this post helpful? Yes | No

    Default

    Dave,
    I have tried
    DEFINE LCD_COMMANDUS 1000 and 4000
    DEFINE LCD_DATAUS 25 and 100
    with no aparent changes.

    Malcom,
    The display does work at 8 MHz with a 4 MHz resonator but the chip's timing is doubled and that is what I am trying to figure out. so a PAUSE 1000 will last 2 seconds instead of 1 second. The timing for this project is important because I want to build an ultrasound distance mesurement and so I have to time the echo received after sending an output burst of 40 KHz. I think I am far from my goal but I can't get started with the fun part untill I have figured out my issue with the timing problem.

    Alain,
    What did you mean by this?
    may be the missing LCD Settling time @beginning of the program ???
    For the record this is my hardware configuration and with an oscilloscope I see the 5V as pure DC 5.12V
    Attached Images Attached Images  

  11. #11
    Join Date
    May 2009
    Location
    Montreal, QC, Canada
    Posts
    118


    Did you find this post helpful? Yes | No

    Default

    Ok so here is a positive update...

    I had removed my resonator last night to rule it out and got the same issue with the chip's internal oscilator. Today I just put back the resonator and set _XT_OSC again and now it is working fine at 4 MHz.

    Furthermore...! if I remove the LCD_Anypin, it is now still working with the standard version.

    So please correct me if I am wrong but I am working with a breadboard and I suspect when I had the resonator at first, there was a bad contact with one of its pin!

    Thanks to all for your responses, it kept me going.

    Mike

  12. #12
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Yup
    A bad connection will make all kinds of strange things happen.
    Dave
    Always wear safety glasses while programming.

Similar Threads

  1. 16f688 LCD what have I done wrong
    By spitfiredriver in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 8th August 2009, 20:54
  2. Play with LCD on PICDEM
    By The IceMan in forum mel PIC BASIC
    Replies: 5
    Last Post: - 22nd August 2008, 17:56
  3. LCD issue with EasyPIC5
    By manwolf in forum mel PIC BASIC Pro
    Replies: 12
    Last Post: - 15th June 2008, 10:17
  4. Need help with LCD number display.
    By Steve Matson in forum mel PIC BASIC
    Replies: 8
    Last Post: - 27th June 2007, 00:07
  5. LCD will not start
    By btaylor in forum mel PIC BASIC Pro
    Replies: 49
    Last Post: - 24th May 2007, 03:30

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