LCD CGRAM

Hi,

I have to use a 16x2 LCD character module, based on the Hitachi 77480 controller.

I need to display 21 custom symbols which are not included in the ROM so, my only chance is to use the CGRAM. The CGRAM, though, allows the user to create up to 8 custom symbols therefore it seems that I can't do what I need to.

I wanted to know if the following procedure leads me to represent more than 8 symbols:

  1. I load the CGRAM with one custom symbol (let's say the symbol takes 8 bytes of CGRAM)

  1. I load the DDRAM with the custom symbol resident in the CGRAM (the symbol gets displayed)

  2. I load the CGRAM (the very same 8 bytes) with another custom symbol

Will the first symbol be replaced by the second one?

Thanks for any help, Enrico

Reply to
zigbee
Loading thread data ...

Yes. Even when you use custom symbols, it is not a bitmapped display. The DDRAM only stores the "character number", not the actual bit pattern to be shown onscreen.

The only way around this is to use a bitmapped display.

Reply to
larwe

larwe ha scritto:

Reply to
zigbee

Hi,

thanks for your clear answer.

could you address me to one or two of these bitmapped display?

Enrico

Reply to
zigbee

Note that the 44780 has eight custom characters Ref:

formatting link

Alan Nishioka snipped-for-privacy@nishioka.com

Reply to
Alan Nishioka

Yessssss.... OP already said this. The problem is he needs 21 :)

Reply to
larwe

But he didn't say whether he needed all of them on the display at once. The key thing seems to be whether he needs more than eight at a time.

Peter

Reply to
Peter Dickerson

Here are some possibilities:

formatting link
formatting link

Don...

--
Don McKenzie
E-Mail Contact Page:               http://www.dontronics.com/e-mail.html

Crystal clear, super bright OLED LCD (128x128) for your microcontroller.
Simple serial RX/TX interface. Many memory sizes.
http://www.dontronics-shop.com/product.php?productid=16460
Reply to
Don McKenzie

On 6 Dec 2006 08:34:16 -0800, snipped-for-privacy@libero.it wrote in comp.arch.embedded:

How many of the custom characters do you need to display at the same time? If you never need more than 8 different custom characters at the same time, you can change the bit patterns as you change the characters on the display.

On the other hand, if you ever need more than 8 at the same time, you'll need a bit-mapped display as already suggested.

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://c-faq.com/
comp.lang.c++ http://www.parashift.com/c++-faq-lite/alt.comp.lang.learn.c-c++
http://www.contrib.andrew.cmu.edu/~ajo/docs/FAQ-acllc.html
Reply to
Jack Klein

hi Jack

There are cases where I might have to display more than 8 symbol at once.

Yes.

I would like to use a character display because:

  1. They are cheaper than graphics displays 2. They are simpler that graphics displays 3. My microcontroller doesn't have FLASH and RAM space enough to "lodge" a graphics library

In principle, I need a 16x2 character display with the "alphabet" stored in EEPROM or RAM.

Enrico

Reply to
zigbee

1a, 2a: This implies performance constraints, one of which is the issue that you're complaining about.

For cost reasons, it isn't done this way. Pursuant to your point 1, fixed-font LCDs have the character set in ROM. If your volumes justify it, you can obtain a controller with custom ROM contents that can include your required symbols. Ask your friendly supplier for details.

Reply to
larwe

Enrico,

The symbol will be replaced in CGRAM only not in DDRAM. You'll write your first 8 custom made symbols into CGRAM (Character Generated Random Access Memory) and then write them to the DDRAM (Data Display Random Access Memory). Once they're displayed (stored in DDRAM)you'll then overwrite the first 8 symbols in CGRAM with your next 8 symbols and then write them to DDRAM (Put them on the display). Since CGRAM and DDRAM are two separte entities the DDRAM will obtain your first 8 symbols until overwritten. In the case you need to display a previously ovewritten symbol you'd have to reload them from your MCU back into CGRAM to be written to the DDRAM once again.

1st symbols -> CGRAM -> DDRAM, 2nd symbols -> CGRAM -> DDRAM

I hope this helps since it seems you weren't getting a straight forward answer from anybody else. You don't need a "Graphic Display" although you can buy them with character ROM built in. So they can function both as a graphic or alpha numric display. They're a little more complicated to interface but a lot more capable. If you're going to use one I recommend you select a bad a!# MCU since they demand a lot of resources when dealing with graphics. That is unless you just want to put a happy face or something?

Cyberstein

Reply to
Cyberstein

I haven't seen your original post, so I'll have to respond here.

I presume you mean 44780?

In my experience, it will. I have tested it like this: I put a few custom characters on the display and slowly filled the CGRAM. I could clearly see how the custom characters were drawn as the CGRAM filled with the correct data.

It is, of course, possible that different display makes and models may behave differently.

--
RoRo
Reply to
Robert Roland

write

However DDRAM is a lookup only. Each time the display is refreshed - and it's NOT static - the new CGRAM contents will be looked up and hence the old character will be overwritten with the new character as soon as you reuse that symbol.

He got a straight answer, but it wasn't what he wanted to hear. Your answer is happily closer to what he wanted to hear, but has the disadvantage of being utterly wrong.

Reply to
zwsdotcom

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.