Talk:Hitachi HD44780 LCD controller

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Explanation of Bus Size Selection[edit]

It seems like the bus size initialization explanation is rather more complex than needed. I think it is simpler and more intuitive to simply explain what happens as each instruction is executed given the three possible starting states.


The same command is sent three times, Function Set with 8 bit interface D7-D4 = 0b0011, the lower four bits are don't care, using single Enable pulses. If the controller is in 4 bit mode the lower four bits are ignored so they can't be sent until the interface is in a known size configuration.

Starting in state 1 - 8 bit configuration

 Send Function Set command.  Command will be executed, set 8 bit mode. 
 Send Function Set command.  Command will be executed, set 8 bit mode. 
 Send Function Set command.  Command will be executed, set 8 bit mode. 

Starting in state 2 - 4 bit configuration, waiting for first 4 bit transfer

 Send Function Set command.  First four bits received. 
 Send Function Set command.  Last four bits, command accepted, set 8 bit mode. 
 Send Function Set command.  Command will be executed, set 8 bit mode. 

Starting in state 3 - 4 bit configuration, waiting for last 4 bit transfer

 Send Function Set command.  Last four bits, unknown command executed. 
 Send Function Set command.  If in 8 bit mode command will be executed, else first 4 bits. 
 Send Function Set command.  Command will be executed or treated as last 4 bits of previous command, set 8 bit mode. 

In all three starting cases the bus interface is now in 8 bit mode, 1 line, 5x8 characters. If a different configuration 8 bit mode is desired an 8 bit bus Function Set command should be sent to set the full parameters. If 4 bit mode is desired 0b0010 should be sent on D7-D4 with a single enable pulse. Now the controller will be in 4 bit mode and a full 4 bit bus Function Set command sequence will complete the configuration of the Function Set register.


Isn't this simpler than the many faceted explanation in the current article?

Gnuarm (talk) 00:26, 11 October 2020 (UTC)[reply]

Requested update to CGRAM and DDRAM information[edit]

How about an actual explanation of what CGRAM and DDRAM mean? Seriously, 9 mentions each and not even a hyperlink. — Preceding unsigned comment added by 86.30.125.43 (talk) 18:52, 20 December 2015 (UTC)[reply]

I added some descriptive information on the CGRAM and DDRAM in the instruction section. The info on the initialization is good. That is the best description I have seen so far about the multiple Function set instructions. Gnuarm (talk) 06:46, 10 October 2020 (UTC)[reply]

Requested move[edit]

The following discussion is an archived discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.

The result of the move request was: page moved. Vegaswikian (talk) 18:39, 30 November 2011 (UTC)[reply]



HD44780 Character LCDHitachi HD44780 LCD controller

The above discussion is preserved as an archive of a requested move. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

Redirection[edit]

Redirected to Hitachi HD44780 LCD controller because the device is the controller and not the actual display. The LCD displays are designed to work with this particular controller.Sumanch (talk) 08:57, 23 November 2011 (UTC)[reply]

I've undone the redirect and placed a rename template here. Although I agree with your move, we have a page move command to do this and (for reasons of copyright) we can't do this by copy and pasting into a new article. Andy Dingley (talk) 21:52, 23 November 2011 (UTC)[reply]
Thank you. Sumanch (talk) 19:14, 25 November 2011 (UTC)[reply]

This renaming makes it less clear. The HD44780 name is commonly used to refer to the display interface command set, and by extension the display modules themselves. The modules are now largely implemented with work-alike chips rather than the original Hitachi chip. By adding Hitachi in the title, the page is more likely to be confused with the specific Hitachi chip rather than the display interface. Analogy: "PS/2" and "AT" keyboards refer to an interface specification, not the exact part included with a specific computer model. Donald Becker (talk) 20:20, 29 November 2011 (UTC)[reply]

Actually, they are Called IBM Personal Computer/AT and IBM Personal System/2. You can check here at IBM PC keyboards. In defense of the move, I have say that HD44780 is the standard controller that comes with 40 character 2 line displays. Without the controller programming the display will be a nightmare and without the display the controller is practically useless. Having said that, many of these displays come with a controller bypass that allows user to program anything. Sumanch (talk) 06:30, 30 November 2011 (UTC)[reply]

Accuracy[edit]

On the issue of instruction timing, the times given are all based on an assumption of the frequency of the oscillator on the module and are not a function of the controller chip at all. The nominal rate is 270 kHz, but that is set by a resistor which results in a very imprecise frequency. The data sheets of other, equivalent parts show graphs of this relation. There are also issues of running from a voltage other than 5V. The result is there can be a very wide range of frequency from module to module. The data sheet for the controller chip simply specifies the instruction timing for an assumed clock frequency which may be very inaccurate in the field.

When I get a chance I will dig out my notes on this and potentially add info to the page about it. Gnuarm (talk) 02:37, 30 November 2021 (UTC)[reply]

Donald Becker has raised the question that the edits I had made were inaccurate and incorrect. I edited the instruction set and reworded the lead a little. I know that the instruction set is accurate. Huang and Hitachi "Execution times" differ a little bit; about 2-3 ms. I don't think there was anything inaccurate in the lead because I got it from Huang too. However, this article needs a lot of work so the content may be incomplete.

Calling the controller a display may be acceptable in a hobby shop but technically it is inaccurate and incorrect.

I have changed back to my edits in future we can discuss before major changes.Sumanch (talk) 11:15, 1 December 2011 (UTC)[reply]

The point (I made it above, although it was misunderstood) is that although the name "HD44780" is pedantically incorrect for the display module, it has come to refer to LCD modules that use a specific programming interface. Once you understand that, you can understand why changing the topic name to "Hitachi ..." is a negative: it's no longer the common name of the module interface. You forced the renaming by your copy-and-paste of the entire article to another page, without understanding why the name change was wrong.
No it was not misunderstood. HD44780 does not refer to the display modules. Informally doing so by the hobbyists is popular because they are not trying to integrate a module with the controller but they need something that is ready to program. HD44780 is not the only character LCD drivers, Samsung KS0066 and EPSON SED1278 are also popular compatible alternatives. Pedantically incorrect is incorrect. All academic sources, I have listed 3, and most of the external links provided specifically calls it the Hitachi HD44780 driver and not the HD44780 modules. So the renaming was correct. BTW, the books by Sanchez and Wilmshurst are available in Google books preview; especially the HD44780 bits.

Sumanch (talk) 18:46, 4 December 2011 (UTC)[reply]

The edits you made (8 in a very short time period) mostly added wordy table formatting. The few non-formatting changes were incorrect.
There is nothing wrong with wordy table formatting. It is accurate, explains what it means, and it looks good. Someone who wants to glance over the subject they can skip the wordy bits and if someone wants to read more thoroughly, they can read. There is nothing wrong with reading. Sumanch (talk) 18:46, 4 December 2011 (UTC)[reply]
You erased the previous introductory paragraph in favor of your new, less descriptive one. You provided no citation for "one of the most popular". Only some masks of the character ROMs provide Japanese characters, with many others available. The number of characters per logical line is not 27 (or even 28, as in the recent change). You may have misread 0-0x27, which is 40 characters. Most modern modules using a single chip to support the full display size rather than using cascading chips. The phrase "extension driver" is meaningless unless you know the internal details, and is certainly not useful in an introductory paragraph.
* "less descriptive one..." - The descriptive old lead was deceptive. It talked about display modules, that is wrong. It takes some time to develop a good lead and you are welcome to make it better. But, it should not be about the display modules.
*"one of the most popular" - All the sources I have included called it the most popular. I did not cite that specific claim but I can. The previous article did not have a single reference. So, I have to say it is a better direction.
I have to read up a little. I will address the other points little later.

Sumanch (talk) 18:46, 4 December 2011 (UTC)[reply]

The timing is chip and implementation specific e.g. depends on the oscillator frequency, chip type and chip version. But the maximum times you listed are not the ones from the original datasheet, or any authoritative original source. You referred to a secondary source where the author apparently rounded up (as many examples do) from the original datasheet. That is misleading at best. Yes, it's safe to wait longer than the datasheet requirement, but why provide any number at all if it's going to be inaccurate? If you actually validate designs you'll find that most modules are much faster than the original chips.

Donald Becker (talk) 08:50, 2 December 2011 (UTC)[reply]

The reference I was using used 250 kHz clock pulse frequency, where as Hitachi datasheet used 270 kHz. Updated table with Hitachi's execution time.Sumanch (talk) 18:46, 4 December 2011 (UTC)[reply]

Disputed neutrality?[edit]

(Very Fantastic Dude) added POV tag on this article. Not sure what is inaccurate. Will wait for his answer. Sumanch (talk) 19:51, 2 January 2023 (UTC)[reply]

Hey! This edit was made quite a while ago, and I cannot recall the exact reasoning I had. I should have put my motivation both here and in the edit message, that is my bad and I apologize.
Skimming through the article again, the only thing that (still?) stands out to me is in the lead section. I think the following needs a citation "The HD44780 is one of the most popular character LCDs ever made".
If you feel that the article (no longer?) has a disputed neutrality, Be bold and remove it. /VFD Very Fantastic Dude (talk) 20:30, 2 January 2023 (UTC)[reply]
I agree. I always had problem calling it "...character LCD...". I will rewrite that sentence. Sumanch (talk) 22:12, 2 January 2023 (UTC)[reply]

Levels of unconnected data pins[edit]

Section Mode selection claims that "with D3–D0 unconnected, these lines will always appear low (binary 0000) to the HD44780." Are there pull-down resistors in the HD44780? I doubt that. I'd rather think that they could have any level if they aren't connected. Which is not bad because they are "don't care" during selection of 4-bit mode and after. —Anton Maienfeldt (talk) 16:14, 3 January 2023 (UTC)[reply]

I don't know if there are any internal resistors, but I doubt it. For best design practices, it is best to ensure all unused inputs don't float, thus unused inputs could be tied to a power rail but since these 4 are configurable I/O pins then resistors is the recommended approach, such as 100K or higher for CMOS chips. • SbmeirowTalk • 23:44, 3 January 2023 (UTC)[reply]
After searching for it in the data sheet, I discovered that the HD44780 has Pull-Up MOSFETs at DB0–DB7, RS, and R/W: see pp. 48 and 51 (where the pull-up current is specified) as well as page 54 which shows the internal structure behind the pins. So DB0–DB3 should, if in 4-bit mode, left unconnected and will be read as 1s. I'll correct the article text now according to this. —Anton Maienfeldt (talk) 12:39, 5 January 2023 (UTC)[reply]

Requested move 5 January 2023[edit]

The following is a closed discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. Editors desiring to contest the closing decision should consider a move review after discussing it on the closer's talk page. No further edits should be made to this discussion.

The result of the move request was: not moved. Per consensus, proposed name is too short and may not be recognisable. (closed by non-admin page mover) – robertsky (talk) 09:03, 21 January 2023 (UTC)[reply]


Hitachi HD44780 LCD controllerHD44780 – Per Wikipedia:Article titles#Concision, I propose moving this article to simply and concisely "HD44780", which clearly and unambigiously describes its subject. "Hitachi" and "LCD controller" do not belong into the title in my opinion. Anton Maienfeldt (talk) 13:12, 5 January 2023 (UTC) — Relisting. Colonestarrice (talk) 08:25, 14 January 2023 (UTC)[reply]

  • Weak oppose: The suggested name, a part number devoid of all context, seems to make it too difficult for most readers to recognize what the topic is. —⁠ ⁠BarrelProof (talk) 00:45, 6 January 2023 (UTC)[reply]
The discussion above is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.