Jump to content
43oh

Character LCD Serial Backpack pre-Project


Recommended Posts

I'm looking for comments and suggestions to make this more generally useful.

 

I have a pile of surplus character line LCDs based on the Hitachi HD44780 chipset.  There are oodles of these available surplus, and really cheap, like $2 cheap. The probelm I see for most modern MCUs is that the LCDs are

  • usually 5V I/O (at least for the surplus parts)
  • parallel and chew up a lot of I/O
  • slow so they require a bit of code to poll the display or timed delays to insure reliable operation.

I'm not too motivated to reinvent the wheel, but all the options I've found seem to miss a lot.  I've seen the Adafruit board, but it's hard-coded at 5V (deal killer) and the 16X1 connector (inconvenient for displays with the 8X2 connector.)

 

I started thinking about a launchpad boosterpack that would provide a 3.3V SPI serial interface, but realized that it was too specialized and really didn't meet my needs. What I'm noodling about now is a 'backpack' board that is fairly universal.  It would match the standard 16X2 character board mechanical footprint and provide the 16X1 header interface connector AND the 8X2 connector that is the other dominant standard usually used on 2X24 character dispalys. It would also provide:

  • A simple, sequential version of the HD44780 command structure - send the bytes, the board worries about handshaking and timing.
  • SPI
  • I2C
  • Serial UART (Logic or RS232 Levels)
  • logic levels from 1.8V to 5V - selectable
  • backlight current control (settable by component value selection)
  • dimming by MCU command
  • contrast by MCU command
  • on board regulator for board
  • on board regulator forLCD including backlight
  • most options selected by hardware jumpers
  • ASYNC serial autobaud

I can fit all this on the board without a problem, but too many features results in too much cost and kills the advantage.  A lot of this is optional BoM stuff - as in 'don't need RS-232 - don't stuff this.'

 

I don't see any reason to:

  • have more than one interface operational at a time - SPI or I2C or UART
  • use variable resistors.
  • use through hole components for other than connectors (would it be better to have backlight current setting as leaded resistors?)
  • Use anything other than a 2X? 0.1" header for the external interface so:
    • no DB9 for serial
    • power on interface connector pins, not a seperate connector
    • no screw terminals

So, what do you think?

Link to post
Share on other sites

The problem with 2x8 connector is that there is no standard layout (I wanted to incorporate 2x8 in my design, but found at least 2 different types.)

If you want to use 5V LCDs for 3.3V applications (or 3.3V LCD with 5V BL,) it means you will have to add 3.3->5 booster. This could add $1-$2 to cost (3.3V LCDs are about $2 more expensive than 5V ones.)

Link to post
Share on other sites

Would there be any sense in handling multiple displays with one board?

 

I could imagine maybe wanting displays pointing in different directions - e.g. for a multi-user system, with one display per person.

 

Rather than having to use several adapter boards, would be nice if could just populate an extra pin header, or use a ribbon cable with multiple headers to connect additional displays.

 

Since larger displays operate as 2 displays anyway, might not be much more work to allow connection of more than one display.

 

 

Also, if there is space left on the processor, consider adding a more terminal like command protocol?

(So could use it to monitor stream of serial ASCII data - e.g. on a console output from a router, etc.)

Link to post
Share on other sites

The problem with 2x8 connector is that there is no standard layout (I wanted to incorporate 2x8 in my design, but found at least 2 different types.)

If you want to use 5V LCDs for 3.3V applications (or 3.3V LCD with 5V BL,) it means you will have to add 3.3->5 booster. This could add $1-$2 to cost (3.3V LCDs are about $2 more expensive than 5V ones.)

 

 

The problem with 2x8 connector is that there is no standard layout (I wanted to incorporate 2x8 in my design, but found at least 2 different types.)

 

I guess I need to go pull more datasheets.  All I've found so far use the same pin number assignments for the 8X2 and 16 X 1 connector. 

 

I really like your design.  Somehow I missed it when looking for what others have done.

 

If you want to use 5V LCDs for 3.3V applications (or 3.3V LCD with 5V BL,) it means you will have to add 3.3->5 booster. This could add $1-$2 to cost (3.3V LCDs are about $2 more expensive than 5V ones.)

 

This is my quandry.  My current draft uses a pair of TI TXB0104s.  They are $3 alone. 

 

Where are you finding 3.3V displays for $5?  Most I've seen start at $10.

 

Link to post
Share on other sites

Would there be any sense in handling multiple displays with one board?

 

I could imagine maybe wanting displays pointing in different directions - e.g. for a multi-user system, with one display per person.

 

Ah. This seems reasonable. If they were displaying the same content this should be (relatively) easy.

 

 

Rather than having to use several adapter boards, would be nice if could just populate an extra pin header, or use a ribbon cable with multiple headers to connect additional displays.

 

Since larger displays operate as 2 displays anyway, might not be much more work to allow connection of more than one display.

 

Conceptually and from an active hardware standpoint, no.  It would add a lot of board area for the additional connectors and would require some more thought about how to differentiate the displays.  What I was planning on doing was just to passing the same command bytes to the display.  I'll need to give this some thought.

 

 

Also, if there is space left on the processor, consider adding a more terminal like command protocol?

(So could use it to monitor stream of serial ASCII data - e.g. on a console output from a router, etc.)

I thought about this initially and figured I'd leave it for down the road if I needed it.

Link to post
Share on other sites

Ah. This seems reasonable. If they were displaying the same content this should be (relatively) easy.

 

Conceptually and from an active hardware standpoint, no.  It would add a lot of board area for the additional connectors and would require some more thought about how to differentiate the displays.  What I was planning on doing was just to passing the same command bytes to the display.  I'll need to give this some thought.

 

 

 

On re-reading dubnet's suggestion, I see that they only mentioned the smaller displays.

My suggestion on handling multiple displays was based on the assumption that the booster pack would be even more universal, handling larger displays (e.g. 4x40).

 

So I did not mean displaying the same content, or passing the same display byte to the different displays.

At least some of the larger displays use 2 separate display controllers, each controlling part of the display area.  

e.g. the DV-40400-S1FBLY, 4 line 40 character display - has 2 enable lines (pin 9 and 15), and, as I understand it, you program it as if it were two separate 2 line by 40 character displays.

(i.e. 2 cursor locations, you send a character to one or the other of the displays (by tweaking the appropriate enable line) in order to display it on the corresponding part of the display, etc.)

 

So if you just echoed identical characters to all displays, and tie all the enable lines together, then you would only be able to display

2 lines of 40 characters on displays like the above.  (Actually what you would get is 4 lines of 40 characters with all material duplicated in some pattern that depends on how display

put together.)

 

So, if decide to handle the larger displays, then the booster pack would have the logic on it to handle multiple enable lines (at least 2), sending bytes to whichever display the host designated.  

Since one already needs to do that just to support larger single displays, it seemed not that difficult conceptually to arrange the connections properly to allow use of 2 displays at once, each displaying it's own unique content.  

As you note, board layout/area would be a concern/limiting factor here (though clever cabling might reduce that problem - since most lines can be shared, just have to provide separate enable).

Of course power consumption for multiple backlights might also be an issue.

Link to post
Share on other sites

OK, I think understanding is beginng to dawn...

 

I'm trying to keep the basic design really simple.  I have spare pins to accomodate this, but I'm thinking this may be a different flash option.

 

I'll need to gather some more display datasheets to see if there is a standard  pinout.  I need to do this for the 2X8 header as well.  If there's no convention tehn everything in this class is going to be a custom cable.

 

No matter that happens the single controller/simple board case is going to drive selections and the other stuff will be optional.  I'm not going to let it raise base cost or drive much additional complexity. I'm trying to simplify the design and reduce base costs, not add to it.  I need to think on this some more.

 

Backlight power consumption is a non-issue.  If the board can't handle it then you just handle it off board for those rare cases.

 

IF I do anything,  I'm not planning on a Launchpad BoosterPack - I'm looking at a design that has the same footprint as a standard 16X2 display (36 X 80 mm)

Link to post
Share on other sites

This is my quandry.  My current draft uses a pair of TI TXB0104s.  They are $3 alone. 

 

A lot of these LCDs will still run at less than 3v. The 5v is needed for the contrast. If you have a spare pin on your MCU you can make a negative voltage pump out of a capacitor and 2 diodes. Feed this to the contrast pin and the LCD will look fine running at 3v. It might be worth it to check if all those LCDs lying around are really old TTL models or just CMOS versions running at 5v for compatibility's sake.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...