Ever wish you could use one of the standard 2x16 character displays across multiple ports or not have to use sequential pins? Well now you can spread the connections to your character LCD across multiple ports in any order. This new component is 100% compatible with the original Character LCD, except you can connect it any way you want. One other little feature is that you only need 6 GPIOs instead of 7. So check out the CharLCDmp. You can also use it with the standard port 2 connector, but make sure you drive the R/W pin to Vss.
The attachment contains a workspace with a demo project and a library with both the CharLCDmp component and a LCD annotation component to help you remember how to connect the two together.
I am using PSoC Creator 2.1 Van you tell me how to include this component/ update the LCD component so that i can use it in my existing design?
Can i use this component for a PSoC5 design? If so how? when i am compiling, i am getting error that 'LCD_Cntl_Port_Sync_ctrl_reg__CONTROL_REG' undeclared
I think it will only work with PSoC 5 LP, try recompiling with LP selected as the target device. My bet is that Mark was using the synchronized output mode of the control registers, and that is only available in PSoC 3 / 5 LP, not PSoC 5.
I compiled with PSoC 3 and it did compile without errors. Does this mean that this new components cannot be used with any PSoC 5 designs? Is a similar component for PSoC 5 planned? Its too late into my design now to change the device as my Final PCB is fabricated and populated. If i have to tweak it and make it work for PSoC 5, is it sufficient if i change control register setting to async or something like that? or will the method from link below work reliably?
And one more doubt... When i open and see the .cysch file in PSoC Creator, the control register does not have clock pin which made me doubt whether it is sync mode or async mode. I really need help with this one please...
Easy Chief : ) we all make these components as a labor of love, these are not officially supported components and are likely to contain bugs, or simple snafus. We make these because we love PSoC, not because they are on some roadmap or plan. If you are using them in a product, you do so at your own risk.
That said, the fix should be relatively simple. Creator uses seperate defines for PSoC 5 and PSoC 5 LP for control registers. The old version of the silicon did not have the synchronous capability, and to prevent possible problems, a new define was created in cyfitter.h for control registers.
Mark used the PSoC 3 / 5 LP define:
#define LCD_CNTL_REG (* (reg8 *) LCD_Cntl_Port_Sync_ctrl_reg__CONTROL_REG )
in the LCD.h file, but he should have included a conditional compile option for PsoC 5 that used:
#define LCD_CNTL_REG (* (reg8 *) LCD_Cntl_Port_Async_ctrl_reg__CONTROL_REG)
you can make the one time edit to his original component in the included library to use:
#define `$INSTANCE_NAME`_CNTL_REG (* (reg8 *) `$INSTANCE_NAME`_Cntl_Port_Async_ctrl_reg__CONTROL_REG )
#define `$INSTANCE_NAME`_CNTL_PTR ( (reg8 *) `$INSTANCE_NAME`_Cntl_Port_Async_ctrl_reg__CONTROL_REG )
and that *should* fix your problem.
Thank You very much for the suggestion. Figured out how to import a component from another projeect to my project, and with your suggestion i am able to use the component for PSoC5 .Thanks a lot Kees & Mark 🙂
Sorry I didn't see the posts earlier. Chris just told me lastnight of the posts. I must admit that I didn't test the old PSoC 5, just the PSoC 5LP. Well this time I made the fix and tested the LCD with PSoC 3, PSoC 5, and PSoC 5LP. Attached is the workspace, demo project, and updated library with both the old 1.0 and the new 1.1 component. Sorry for causing so much pain.
Since Char-LCD is a pure software solution it is most probable that it will run on the Pioneer kit. Only the connection to an LCD-module will be different to other kits.
Hey! Great work!
I'm still new on PSoC and this I think will simplify my work!
Hope there were be upgrades in future
This is a nice custom component. I want to use this custom component in my design, and I could use a little help. I have a completed PSoC3 design (it's a hobby project) using the Eval board CY8CKIT-030. Since I only have buttons and USB, I don't need all the extra stuff in the CY8CKIT-030, so I'm trying to port my design to this PSoC3 PowerfulBoard:
Before I port my design, I would like to have a working LED and LCD for debug purposes on the PowerfulBoard. So I took the example Project posted here (CharLCDmp_Demo3). Starting form there, I have an LED blinking, and I'm trying to use thisthe custom component(Character LCDmp) to get the LCD from my CY8CKIT-030 working on the the PowerfulBoard. Your project shows several external components, so I'm assuming those are required. Can I route the external LCD pins (Gnd, Vcc, Vee, RW) to Digital pins in PSoC creator ?
Thanks in advance for your help.
Can I route the external LCD pins (Gnd, Vcc, Vee, RW) to Digital pins in PSoC creator ?
No, the pins cannot source so much power, you'll have to use the signals. But there are LCDs with I2C interface on the market, that would cost you only 2 pins to have it connected.
Yes you can if the B/L is not high current, like an LED B/L. But not Vee.
You are constrained to interface DC specs CM range for I/O, PSOC, but
thats 44780 basic compatibility. If Vee on display is negative, then that must
come to display from an external source.
The controller, Hitachi/Renesas 44780 equivalent, is typically
< 1 mA at 5V. And then small amout of power, typically uW, for muxed
C dissapation of LCD.
You need to observe power supply sequencing.
Not sure why you need to switch LCD ground ? But you can.
Can you drive the Gnd, Vcc, Vee, and R/W LCD pins with the PSoC. Well there is no problem in driving the R/W pin. The Gnd and Vcc pins depend on the LCD you are using. The PSoC3/5 sink/supply specs for the GPIOs are 8 and 4 mA respectively. I know that there are some LCDs that use 3 or less mA, so you will need to look at your LCD specs of make some measurements. The Vee pin all depends again on the LCD. A simple logic 1 or 0 will not work on most LCDs. You could use a PWM output, but you would have to filter it most likely. An iDAC may work, but I'm not sure if we can guarentee that the compliance voltage is low enough if this voltage needs to be close to the rail.
Hi there, I have some experiences with PSoC1 and PSoC Designer and I have now changed to PSoC4. First I wanted to operate an arduino lcd shield on CY8CKit-042 board, but the pin configuration divers. So I have searched and finally found this posts and I guess this is the right library. So I have made a new project and imported the library "CharLCDmpLib.cyprj" with a right click in the components register. In the posts I have read that I have to use V1.2 but if I imported the library I will only find the code of CharLCDmp_V1_00.
Could you please give me a hint, what I am doing wrong?
Hi Werner, welcome in the forum!
Chris posted a library file in the thread's post number 13. You may download Chris's library project which contains both versions.
PS: Where are you located? I'm living between HH and HB
I have used a Nokia 5100 display for months and used the PSOC 4 to drive all the pins VCC ,GND ,BL with no issues at all.
I used this user component on several projects, using PSoC3 and PSoC5LP and a Pioneer kit (CY8CKIT-042) with PSoC (CY8C4245). Now that I've tried using the CY8CKIT-044 with the PSoC4 CY8C4247, I find that I can't assign pin of port 5 because they are not available (this for the DB6 and DB7 pins). I'm using the DF-Robot LCD shield.
Please help me with any solutions or ideas to solve this problem.
Thank you very much, your attached files helped me so much, i get the LCD Keypad Shield functionality (NOTE: Only i used the 6 Pins of LCD [D4,D5,D6,D7,E & RS]) wich were connected to pins 2.0 , 2.1 , 2.2 , 2.3 , 2.4 & 2.5 (in respectiv order) of my PSoC Device CY8CKIT-044 4200M.
Hi Bob. Thank you for the answer.
My LCD shield uses the J3 and J4 header Arduino compatible. I have the problem with the D6 and D7 pins on J4 header specifically (these pins are DB6 and DB7 respectively). Then, is not possible to change the LCD connections because these are routed on the shield.
any other idea?. Tkx
hello, i cant use this library psoc creator 4.1 show me this error The instance 'Cntl_Port', of component CyControlReg_v1_70, contains an error. Unable to locate and customize component 'CyControlReg_v1_70' used in schematic 'G:\Descargas\CharLCDmp_Demo31\CharLCDmp_Demo3\CharLCDmpLib.cylib\CharLCDmp_v1_1\CharLCDmp_v1_1.cysch'. can some one help me to fix this i try updating the components but i cant fix it
In the following topic, a problem was reported with the CharLCDmp_v1.4 and PSoC Creator v4.2
And I found this topic and I assumed that this topic is the source of "CharLCDmp".
I replaced v1.4 with v1.5 and got 33 errors as in the v1.5 the names were still CharLCDmp_v1_4.
So I replaced all "CharLCDmp_v1_4" with "CharLCDmp_v1_5" and the querist's project could be built.
Attached is my modification to the v1.5.