1 2 3 Previous Next 38 Replies Latest reply on Apr 17, 2018 1:35 PM by MarkH_61

    Character LCD (mp)  Multi-Port

    MarkH_61

      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.

         

      Enjoy,

         

      Mark

        • 1. Re: Character LCD (mp)  Multi-Port
          junichi.hiraoka
                  Hi, I do this, My test board has many unused pin anyway. great work. thanks for your effort. Happy LCD   
          • 2. Re: Character LCD (mp)  Multi-Port
            manoj.iyer

            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? 

            • 3. Re: Character LCD (mp)  Multi-Port
              manoj.iyer

              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 

              • 4. Re: Character LCD (mp)  Multi-Port
                christopherk_61

                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.

                • 5. Re: Character LCD (mp)  Multi-Port
                  manoj.iyer

                  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?

                     

                  http://www.cypress.com/?app=forum&rID=72265 

                  • 6. Re: Character LCD (mp)  Multi-Port
                    manoj.iyer

                    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...

                    • 7. Re: Character LCD (mp)  Multi-Port
                      christopherk_61

                      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:

                         

                       

                         

                      LCD_Cntl_Port_Sync_ctrl_reg__CONTROL_REG

                         

                      i.e.

                         

                      #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: 

                         

                       

                         

                      LCD_Cntl_Port_Async_ctrl_reg__CONTROL_REG

                         

                      i.e.

                         

                      #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.

                      1 of 1 people found this helpful
                      • 8. Re: Character LCD (mp)  Multi-Port
                        manoj.iyer

                        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 :-) 

                        • 9. Re: Character LCD (mp)  Multi-Port
                          MarkH_61

                          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.

                             

                           

                             

                          Mark

                          • 10. Re: Character LCD (mp)  Multi-Port
                            user_78878863

                            Thanks for your work! I hope it will make it into the next version of Creator...

                            • 11. Re: Character LCD (mp)  Multi-Port
                              manoj.iyer

                              Thanks a lot Mark... Seriously... PSoC forum ROCKS! And such fast response... Thanks Everyone

                              • 12. Re: Character LCD (mp)  Multi-Port
                                MarkH_61

                                Well I found one other little gotcha.  Although I tested with PSoC3/5/5LP, I only tested with 3.3 volt displays.  It looks like the 5 volt displays are just a little slower.  I had to increase the command delay from 1.5 mSec to 2.5 mSec.  Anyway here is the fix, hope this is the last one.

                                   

                                Mark

                                • 13. Re: Character LCD (mp)  Multi-Port
                                  MarkH_61

                                  I added a couple macros that combine the position command with some of the print commands.  Other than that, no changes.

                                     

                                  Mark

                                  • 14. Re: Character LCD (mp)  Multi-Port
                                    user_6153427
                                            I just got the CY8CKIT-042 Demo Shield recently. This is the recommended component to run the LCD module that goes with it. Has anyone got it to work yet? The kit instructions give the port pins to use and I used the sample project here as a reference on how to run the component. I'm just getting solid blocks on line 1 as if the display module isn't initialized. Adjusted the contrast just to make sure that's not the issue. Any suggestions?   
                                    1 2 3 Previous Next