element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Cypress Kits
  • Products
  • Dev Tools
  • Cypress Kits
  • More
  • Cancel
Cypress Kits
Forum I am not able to interface JHD162A LCD to any of the PSoC Kits?
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Cypress Kits to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 12 replies
  • Subscribers 28 subscribers
  • Views 1619 views
  • Users 0 members are here
Related

I am not able to interface JHD162A LCD to any of the PSoC Kits?

gsgill112
gsgill112 over 10 years ago

I have tried the Cypress LCD component as well as a Community component where you can select different pins.

In both the cases I get some junk on display ? I did manage to get the custom component working for a while but now that's also not working.

 

I have been through the LCD component's datasheet like a 1000 times and almost tried all the functions but with no luck ?? Please help !!

 

my main looks like :- >

 

main(){

 

LCD_Start();

LCD_Print_String("Hello");

while(1);

}

  • Sign in to reply
  • Cancel
  • dougw
    0 dougw over 10 years ago

    I have not used this display or the drivers you mention, but if you are using 4 bit mode when the display expects 8 bit mode, you can get garbage data. Most of these displays need a delay before sending commands such as "switch to 4 bit mode", so it could be missing the command if the delay is not long enough. Try at least 30 ms of delay.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • juanes.pazj
    0 juanes.pazj over 10 years ago

    Is your wiring correct?

    image

    check this out this project has a lcd block with 4 data wires interface instead of 8 for a 2x16 character LCD

    http://www.cypress.com/?app=forum&id=2492&rID=75707

     

    as for the code

    before every print you make you need to set the position from where it would start writing

    LCD_Position(1,0);

    LCD_PrintNumber(Weight);

    LCD_Position(0,0);

    LCD_PrintString("Print:");

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • gsgill112
    0 gsgill112 over 10 years ago in reply to juanes.pazj

    Yes my wiring is correct the above Image is a custom Component which I found on psoc developer fourm.  and out of ~20 tries I have made the LCD worked once or twice using the above component. I have also double checked the LCD with Arduino's LiquidCrystal Lib and the Lcd works just fine.

     

    I have no luck with the Cypress LCD component. I guess I have to write my own component.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • juanes.pazj
    0 juanes.pazj over 10 years ago in reply to gsgill112

    It worked perfectly for me

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • dougw
    0 dougw over 10 years ago in reply to gsgill112

    A common problem with these displays is when the host MCU is reset, it may not reset the LCD and the LCD ends up in a state that the MCU is not expecting. Be sure the LCD is being properly reset and its mode is entirely under control. Find a sequence of instructions that is guaranteed to put the LCD in a known state and execute whenever there is doubt. There are several of these sure-fire sequences published on the net - usually for arduino applications.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • gsgill112
    0 gsgill112 over 10 years ago in reply to dougw

    @Douglas Wong, I guess the LCD_Start() takes care of resetting the LCD, at-least with the MultiPin component ! I don't know how to view and modify the code for the Stock Component ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • dougw
    0 dougw over 10 years ago in reply to gsgill112

    You don't need to modify the code if you can send commands (as opposed to data).

    Just find a command sequence that ensures the display ends up in a known state, regardless of where it started.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • clem57
    0 clem57 over 10 years ago

    I think you need to see the low level approach to ensure correct operations. I would checkout this:

    http://www.scribd.com/doc/17686517/JHD162A-LCD-Code

    Especially the Init code with correct delay...

    Your problem is that the display keeps its state during MCU reset. When cold-booting, the initial data mode is 8-bit which you immediately switch to 4-bit which reads data with a pair of EN pulses.

    When you reset the MCU, you do not know whether even or odd number of EN pulses were sent. So you have to somhow reset the display even if it does not have reset pin.

    This can be done by sending 0x33 0x33 (in 8-bit mode it will mean 4-times switch to 8-bit, in 4-bit mode it will mean once or twice switch to 8-bit). Then you can be sure that you always start from the same state.

    Then proceed with regular 0x32 (or 4-bit 0x02 if you have single 4-bit write function), 0x28 to get into 4-bit 2-line mode.

     

    Cheers,

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • clem57
    0 clem57 over 10 years ago in reply to clem57

    @gsgill112

    Are you using this datasheet?

    http://www.itron.com.cn/PDF_file/JHD162A%20SERIES.pdf

     

    Here is someone with same problem and the solution was:

    Unsolved JHD162A LCD Initialization

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • gsgill112
    0 gsgill112 over 10 years ago in reply to clem57

    @Clem Martins     The LCD is not the problem, previously I was working with the CharLCd() component in PSoC creator and it pretty much looks like a black box, So I don't know of a way to see the backend code.For the new component I am working I have to incorporate the 0x33 0x33 hack !!Although , I also tried shutting down the power to reset the entire System, as when the LCD boots It doesn't remember the previous stage but that didn't help !!



    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube