Character LCD Library Broken?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

I've spent the last two days trying to get a basic hello world to display on the a HD44780 character lcd. There is something inherently wrong with this library. 

   

So far what I've tried was a PSoC4 pioneer kit & PSoC5LP stick with 2 different LCD modules a 2x16 and a 4x20. Both are cheep Chinese versions so they are probably not a real HD44780.

   

I'm using the version 2.10 of the library and I've also tried some of the older versions as well with not luck.

   

Just ot verify that the Character LCDs are good, I connected them to an ArduinoUNO and ran their lcd hello world. Both worked with out any issues.

   

I hooked up both to a logic analyzer and the waveforms look very very different from the Ardunio LCD Library and the PSoC library. See the attached images.

   

Has anyone else seen this? This really should work out of the box. Suggestions for fixing this other than rolling my own LCD library. 

0 Likes
1 Solution
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

The LCD wiring on PSoC need a complete port, your supplied projects were for PSoC5 and PSoC3. Which development kit are you using? Some pins of your selected port might be in use by some board-hardware.

   

There have been some adaptions of the library coder to other LCDs, most changes helped were made in the timing (delay) functions.

   

You did not yet provide us with a project written for the PSoC4 you wanted to use. Original library is for 2x16 LCD. Take the wiring from schematic of the CY8CKIT-050 . There you'll find an archive with the board design files.

   

 

   

Bob

View solution in original post

0 Likes
15 Replies
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Consider posting your project, makes life easier to troubleshoot.

   

 

   

“File”                                                             Creator

   

“Create Workspace Bundle”

   

 

   

 

   

Regards, Dana.

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

I'm trying to get the PSoC5LP Horizontal Bar Graph Project that comes with the Creator. 

   

CE95291 - Char LCD using Horizontal Bar Graph (Hbar) with PSoC 4

   

http://www.cypress.com/documentation/code-examples/ce95291-char-lcd-using-horizontal-bar-graph-hbar-...

   

Just trying to get the basic "Hello World" working.

0 Likes
Anonymous
Not applicable

the wiring for lcd library is a bit weird on psoc's.  did you look into that?  i can post something from work tomorrow.  i have done this before though.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

The LCD wiring on PSoC need a complete port, your supplied projects were for PSoC5 and PSoC3. Which development kit are you using? Some pins of your selected port might be in use by some board-hardware.

   

There have been some adaptions of the library coder to other LCDs, most changes helped were made in the timing (delay) functions.

   

You did not yet provide us with a project written for the PSoC4 you wanted to use. Original library is for 2x16 LCD. Take the wiring from schematic of the CY8CKIT-050 . There you'll find an archive with the board design files.

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Just checked for the Pioneer kit:

   

Use Port2(0:6) for LCD, connector J2 odd pins from 1 to 11 and J3 Pin 1 (P2_6)

   

 

   

Bob

0 Likes
Anonymous
Not applicable

I'm using the CYKIT-059 (The little $10 dev board). I'm using Port3(0:6). I've got it wired as shown in the attached screen shot from the CY8CKIT-050B (The ~$100 dev board) EXCEPT I don't have the in line 10k resistors. I'm guessing this has to do with the pin drive mode. It isn't clear on the Char LCD library what pin drive mode it set to.

   

I'll give adding the 10K inline a try and report back.

   

0 Likes
lock attach
Attachments are accessible only for community members.
rola_264706
Level 8
Level 8
50 likes received 25 likes received 10 likes received

Jboard146: I usually use the multi port library from the community for all of my Psoc 4 LCD designs. However this will not work with the PSOC 5lp.  I also grounded the RW in the PSOC  4 designs but this failed to work with the PSOC 5lp chip.  I am sending you a working PSOC 5lp program that Displays CYPRESS perform.  I will also send you one for the PSOC 4 later. Make sure you have the wiring correct from the component Data sheet pages 14 and 15.

0 Likes
lock attach
Attachments are accessible only for community members.
rola_264706
Level 8
Level 8
50 likes received 25 likes received 10 likes received

Jboard146: Here is the multi-port design that plugs into the Arduino shield connectors on the  Pioneer board This Program does the bar code display.

0 Likes
lock attach
Attachments are accessible only for community members.
rola_264706
Level 8
Level 8
50 likes received 25 likes received 10 likes received

Jboard146: Here is a picture of the working Psoc 5lp LCD display with a 4 line display.

0 Likes
Anonymous
Not applicable

I've got it working on both a 2x16 and a 4x20 display. 

   

I'm not sure what the difference of P3[6:0] and P2[6:0] is but it works on P2 and not P3 or P0.

   

Also,Having the 10K resistors don't make any difference.

   

Thanks for all of the help. 🙂

   

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Congratulations!

   

I assume the 10K resistors are needed when the wire length between port and LCD exceeds some inches stopping a bit the ringing in the signals.

   

 

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

10K Rs are way overkill on suppressing ringing, normally thats 10 - 100 ohms.

   

 

   

They would be used in handling an interface with two different Vdds to limit

   

injection current into a pins protection diode. I would recommend you consider,

   

for signal integrity reasons, more like 1K's. Look with a scope at signaling, at

   

10K you would experience very long rise/fall times severely distorting waveshape.

   

 

   

Regards, Dana.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given
0 Likes
Anonymous
Not applicable

Digging in to the data sheet (CY8C58LP rev I) on Page 33 Figure 6-8 explains why only P2[] can be use for LCD. Only GPIO can be use for driving LCD. SIO and USBIO aren't tied to the LCD driver.

   

On the CY8CKIT-059, P12[] is basically all SIO, P15[] doesn't have enough exposed pins, and P1[0] has SWDDIO/SWDCK used on it. However P3[0-7] should work, but it doesn't. ????

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

If I look at schematic P3_2 has a bypass cap on it. Did you look at

   

the component developed that can use any pins or a combination

   

thereof for LCD ?

   

 

   

http://www.cypress.com/forum/psoc-community-components/character-lcd-mp-multi-port

   

 

   

Regards, Dana.

0 Likes