Feb 22, 2013
By Mark Hastings
Sorry for the long gap between postings. Seems like everyone has hit the ground running after the holiday break and those of us at Cypress are no exception.
Many of you have probably used the Character LCD component or User Module in PSoC Creator and PSoC Designer. It is a handy device that provides a simple and quick way to display information. The only problem is that it has one little flaw, it must be connected to sequential pins on a single port. Sometimes, depending on the design and package you are using, you may have the extra GPIOs but they are spread across multiple ports. Well after today this is no longer a problem. I posted a new component on our Community Components page. I bet many of you didn t even know we had such a page. This page is a place where users can download their own custom components for everyone to use. There are already several components there worth taking a look at, even a couple by yours truly. For Cypress employees, it is a way to get a cool prototype component out to customers without going through a very long internal process.
You can download this new CharLCDmp (Character LCD Multi-Port) component at this location. This component is 100% software compatible with the original Character LCD. Below is a picture of the new component (on the right) next to the original component. The most noticeable thing you might notice is the pins are no longer hidden.

Two other less noticeable features is that there are only 6 pins instead of 7, and the code size is a little smaller. So what is the catch you might ask? Well as you probably know nothing is for free in this world, but the downside isn t that bad. The original component uses the R/W signal so it can poll the status through one of the data ports, for optimal speed. The CharLCDmp, doesn t poll the status bit, but instead uses a standard command delay to make sure everything works OK. Although this makes the LCD a little slower, you can still update the display much faster than the LCD or your eyes can respond. Since none of the signals now had to be bidirectional, I was able to take advantage of one of the real cool features of the newer generation of PSoCs. A Control Register from the UDBs is used to drive all the signals. Since PSoC is able to route the signals from the Control Register to the pins, it really doesn t matter where you put the pins. The internal software just has to deal with the Control Register where the signals are always aligned perfectly. Below is an example circuit showing the connection between the CharLCDmp component and the real LCD module. Notice the annotation LCD component that is included in this library.

I hope this simple component will come in handy, it already has on my workbench playing with a yet to be released PSoC and development board, more about that later. I ll try to keep these posts a little more frequent from now on.
By Mark Hastings