I have a NHD-C0220AA-FSW-FTW display that I have problems reading the busy flag from in 4 bit mode. To understand what is going on I connected my logic analyser to the datalines and the controll lines.
As I understand the datasheet of the controller, when reading the busy flag ( and the address of the AC) the high nibble is sent from LCD first and then the low nibble. But when I look what is on the datalines it looks like the low nibble is sent first and then the high nibble
I implemented this into my program where I do a clear and then wait for busy flag to send a number of characters, and suddenly it worked. I did a measurement just after a clear command, according to data sheet this should take 1.64ms.
First directly after clear command, cursor one is positioned at the falling edge of second enable signal.
I read the data 1us after the enable has been set to one. It is clear that the first nibble sent by the LCD is not with the busy flag set (D7) when it should, but the second nibble has the D7 set.
After about 1.6 ms D7 finaly goes low, this corresponds well with the specified time after a clear.
it is also possible to read the AC after characters are sent, and it counts up as it should if I interpret the first nibble sent from LCD as the low nibble and not the high as is specified in the datasheet.
I manage to get the code working when implementing this change but I feel reluctant to use it since it is not according to the datasheet.
Does anyone have experienced the same thing or have a solution or suggestion on what I am doing wrong ?
Please sign in to leave a comment.