ERC802-1 Serial I2C LCD

Thread Starter

g4oep

Joined Jul 4, 2018
16
Moderator's note:
This thread is a continuation of another thread at the URL below:
https://forum.allaboutcircuits.com/threads/st7032-i2c-lcd.150188/

Only one thread per topic is allowed. If you want your thread moved to a different forum, please use the Report button on a post in that thread and ask the thread to be moved rather than creating a confusing pair of partially entangled posts. This forum is here for you to use but it is not only for your use.
(End of moderator's note)


Does anyone have any experience with this lcd ? I can't get mine to work !!!!!
 

Attachments

Last edited by a moderator:

Thread Starter

g4oep

Joined Jul 4, 2018
16
hi g,
We need to see your circuit and code and a description of the problem, how doesn't it work.?
E

Hi Eric - Thanks for responding. Have you used this type of display yourself ? I have posted this query in another section of the forum, and have exchanged some ideas. The guy who has chatted with me has been helpful, and I appreciate that, but I feel that I really need to find someone who has actually got one of these lcds going. I feel either that there is something radical that I have got wrong, or that the device is defective. Please look here to see what we have discussed - I am now particularly interested in what the display should look like if it is powered up but not programmed - you will get the drift of this if you look at this link -

https://forum.allaboutcircuits.com/threads/st7032-i2c-lcd.150188/#post-1285223

Thanks again...
 

ericgibbs

Joined Jan 29, 2010
18,848
hi g,
I am puzzled why you have started a new Thread for the same problem.
I have already previously quickly read thru that link, but I thought you are now trying different model of LCD and having similar problems.
E

EDIT:

Which option have you chosen for the Contrast.?
Solid blocks is often indication the Contrast is incorrect.
AA1 06-Jul-18 08.48.gif
 

Thread Starter

g4oep

Joined Jul 4, 2018
16
hi g,
I am puzzled why you have started a new Thread for the same problem.
I have already previously quickly read thru that link, but I thought you are now trying different model of LCD and having similar problems.
E

EDIT:

Which option have you chosen for the Contrast.?
Solid blocks is often indication the Contrast is incorrect.
View attachment 155701

I am trying to attract more interest in a different category lol.

No the device is the same, but I might have created confusion over the designation. ERC802-1 is the name of the display, ST7032 is the name of the generic chip - very much like an HD44780 whih is very common. Re your question, you can see from the thread that I cannot get the device to respond, so I am unable to program it. The pictures I have posted are of the default power-on condition of the devices - i.e. what they do, and how they appear immediately after a power-up internal reset. The parallel devices have sufficient contrast in this condition. It is possible that the serial device behaves differently, but I am working on the hypothesis that the controller chips are basically very similar. This is one of the reasons why I am looking for someone who has some experience of the serial lcd - he or she would be able to answer this question immediately, and if the appearance is incorrect it would be evidence of a faulty device - see what I mean ?
 

Raymond Genovese

Joined Mar 5, 2016
1,653
I am trying to attract more interest in a different category lol.

No the device is the same, but I might have created confusion over the designation. ERC802-1 is the name of the display, ST7032 is the name of the generic chip - very much like an HD44780 whih is very common. Re your question, you can see from the thread that I cannot get the device to respond, so I am unable to program it. The pictures I have posted are of the default power-on condition of the devices - i.e. what they do, and how they appear immediately after a power-up internal reset. The parallel devices have sufficient contrast in this condition. It is possible that the serial device behaves differently, but I am working on the hypothesis that the controller chips are basically very similar. This is one of the reasons why I am looking for someone who has some experience of the serial lcd - he or she would be able to answer this question immediately, and if the appearance is incorrect it would be evidence of a faulty device - see what I mean ?
Starting a second thread on the same topic can lead to confusion rather than more interest in the topic and, frequently the moderators will close one of the threads and sometimes have to deal with trying to merge them.

You can help yourself by helping us by posting a schematic and your code (as well as the actual product) - as I asked in the "other" thread. It is not clear whether or not you have interfaced the device correctly. If you have not, then we are some 20 posts in with no idea how the LCD is connected other than your text of the SDA and SCL lines. But, as I stated in the other thread, there are more lines to consider including the VLCD line and a proper rst.
 

Thread Starter

g4oep

Joined Jul 4, 2018
16
Starting a second thread on the same topic can lead to confusion rather than more interest in the topic and, frequently the moderators will close one of the threads and sometimes have to deal with trying to merge them.

You can help yourself by helping us by posting a schematic and your code (as well as the actual product) - as I asked in the "other" thread. It is not clear whether or not you have interfaced the device correctly. If you have not, then we are some 20 posts in with no idea how the LCD is connected other than your text of the SDA and SCL lines. But, as I stated in the other thread, there are more lines to consider including the VLCD line and a proper rst.
Hi Raymond. Thank you for your reply, but I don't think you are the right person to help me with this. cheers
 

Thread Starter

g4oep

Joined Jul 4, 2018
16
hi g,
I believe that Raymond is emphasising what other helpers have been requesting from you.
E
I'm looking for someone who has made one of these work. I have satisfied myself that I have wired it correctly. l have already said that the reset is wired high. The waveforms I have published have been measured on the conductors of the ribbon connector and appear in the correct places according to the pin-out on one of the documents I have posted. Power supplies and ground are also present in the correct places on the ribbon according to the pinout. My doubts are about whether I have interpreted the data sheet notes on ACK and BUSY correctly and whether the LCD is damaged. Comments on whether the visible state of the display is normal for an un-programed device immediately after switch-on would be helpful. I have already said all of this before. If there is anyone who has actually used one of these devices I would very much like to chat to him/her
 
Hi Raymond. Thank you for your reply, but I don't think you are the right person to help me with this. cheers
Thank you, but as this is a public board with many others viewing the posts, I am going to respond, if not to you, then to anyone else that may be reading. I am going to do so without further comment on your refusal to post schematics and code when, in fact, the device is NOT working and you are asking for help.

If you look here: https://www.buydisplay.com/download/interfacing/ERC802-1_Interfacing.pdf
You will see two ways of interfacing the device that you appear to have, but have not completely identified.

Note the connections for the VLCD line in both examples. That is one of the points I have tried to make, because I do not believe that the device will work (or even light up) without that line connected. Look at the definition of the VLCD line in the document in your first post in this thread: "
8 VLCD Power Supply for LCD Drive" and note that it is different than "5 VDD Power Supply". Thus, it is ONE thing to suspect and it is reasonable to ask, especially when you are wondering if you missed something fundamental.

Now, maybe you have everything wired correctly, but how much effort would it have been to state HOW it is wired, especially since you can not get it to work and nobody here is a mind reader. This is something that everybody who is posting a problem and looking for a solution should keep in mind, because its saves a lot of problems. It is, in my opinion, ill-advised to think that "he or she would be able to answer this question immediately". Case in point, assuming that your question is why does your display look "dark" when power is connected, I would say (and have twice now) that if you don't have power to VLCD, that may be why - I may even test that out today.

Finally, I think that suggesting that only people with experience with your exact device can respond is only relevant if you are paying for a consult. But, I do have experience with interfacing serial ST controllers (see this article). I responded because I wanted to help you and I thought I was capable of contributing to a solution.

You can still join so many here in the spirit of helping each other solve problems.
 
Last edited:

Thread Starter

g4oep

Joined Jul 4, 2018
16
Thank you, but as this is a public board with many others viewing the posts, I am going to respond, if not to you, then to anyone else that may be reading. I am going to do so without further comment on your refusal to post schematics and code when, in fact, the device is NOT working and you are asking for help.

If you look here: https://www.buydisplay.com/download/interfacing/ERC802-1_Interfacing.pdf
You will see two ways of interfacing the device that you appear to have, but have not completely identified.

Note the connections for the VLCD line in both examples. That is one of the points I have tried to make, because I do not believe that the device will work (or even light up) without that line connected. Look at the definition of the VLCD line in the document in your first post in this thread: "
8 VLCD Power Supply for LCD Drive" and note that it is different than "5 VDD Power Supply". Thus, it is ONE thing to suspect and it is reasonable to ask, especially when you are wondering if you missed something fundamental.

Now, maybe you have everything wired correctly, but how much effort would it have been to state HOW it is wired, especially since you can not get it to work and nobody here is a mind reader. This is something that everybody who is posting a problem and looking for a solution should keep in mind, because its saves a lot of problems. It is, in my opinion, ill-advised to think that "he or she would be able to answer this question immediately". Case in point, assuming that your question is why does your display look "dark" when power is connected, I would say (and have twice now) that if you don't have power to VLCD, that may be why - I may even test that out today.

Finally, I think that suggesting that only people with experience with your exact device can respond is only relevant if you are paying for a consult. But, I do have experience with interfacing serial ST controllers (see this article). I responded because I wanted to help you and I thought I was capable of contributing to a solution.

You can still join so many here in the spirit of helping each other solve problems.
Thank you - I am sure that you are trying to help, but you are concentrating on aspects of the problem which are in fact not helpful to me. You may rest assured that I have wired it correctly. Since you ask about it - I am using the 5v supply option in which VLCD is connected to +5V. But if you think about it you will probably agree with me that an error in this area would not cause my problem - which is absence of ACK. Checking the connections was my first reaction on finding that there is a problem. Checking the software likewise - the scope display seems to show that this is faultless (though if anyone can find a fault in it, that would be most helpful). When one undertakes a project of this kind there are often uncertainties which can only be resolved by experiment. Interpretation of the datasheet comments on ACK and BUSY is one which has troubled me. I think I have worked out that ACK-low also implies NOTBUSY (though this might be wrong). Waiting for ACK, and using no other indication of NOTBUSY seems to be a feature of the sample software, and I have replicated this in my own GETACK subroutine. Perhaps you can comment on that. I hope you will understand that haranguing me over the absence of a schematic showing that I joined the SCK output to the SCK input, VDD to +5v etc is to approach the problem at the wrong level to be helpful to me; I am asking readers to assume that I have checked that kind of thing. An example of something that seemed useful was the query that someone else raised about the need for an open-drain output and pullup on SCK; that seemed worth thinking about, but on reflection I cannot see how that would make it work. I am now awaiting the delivery of a replacement LCD, and that, I feel is likely to move the matter on, one way or another. But I would also very much like to meet someone who has sorted all this out successfully, and who can share his or her experience with me.
 

KeithWalker

Joined Jul 10, 2017
3,092
Thank you - I am sure that you are trying to help, but you are concentrating on aspects of the problem which are in fact not helpful to me. You may rest assured that I have wired it correctly. Since you ask about it - I am using the 5v supply option in which VLCD is connected to +5V. But if you think about it you will probably agree with me that an error in this area would not cause my problem - which is absence of ACK. Checking the connections was my first reaction on finding that there is a problem. Checking the software likewise - the scope display seems to show that this is faultless (though if anyone can find a fault in it, that would be most helpful). When one undertakes a project of this kind there are often uncertainties which can only be resolved by experiment. Interpretation of the datasheet comments on ACK and BUSY is one which has troubled me. I think I have worked out that ACK-low also implies NOTBUSY (though this might be wrong). Waiting for ACK, and using no other indication of NOTBUSY seems to be a feature of the sample software, and I have replicated this in my own GETACK subroutine. Perhaps you can comment on that. I hope you will understand that haranguing me over the absence of a schematic showing that I joined the SCK output to the SCK input, VDD to +5v etc is to approach the problem at the wrong level to be helpful to me; I am asking readers to assume that I have checked that kind of thing. An example of something that seemed useful was the query that someone else raised about the need for an open-drain output and pullup on SCK; that seemed worth thinking about, but on reflection I cannot see how that would make it work. I am now awaiting the delivery of a replacement LCD, and that, I feel is likely to move the matter on, one way or another. But I would also very much like to meet someone who has sorted all this out successfully, and who can share his or her experience with me.
 

Thread Starter

g4oep

Joined Jul 4, 2018
16
Meanwhile I have found this. Does anyone have any comments on how to interpret it ? It is on page 48 of the attached datasheet. Surely it cannot mean that the power supply should be interrupted for >=1ms after initial switch-on (of indefinite duration). Perhaps a good experiment for me would be to ditch power-on reset and go for using the reset input and manual initialisation....
 

Attachments

KeithWalker

Joined Jul 10, 2017
3,092
I have experience with this type of display. Not the 8x2 but the 16x2 which is available in the same two interface types. I have read your posts very carefully but I can not make much sense of what you are asking. You posted the spec sheet of the series that has the 12C 2 line interface (DATA and CLOCK) but you are talking about ACK, BUSY and RESET lines. I can not help you if I don't know what device you really have.
If you can identify it and let us know what you have it connected to and how it is connected, we may be able to help you but until then, we can not suggest a solution.
 
Last edited:

Thread Starter

g4oep

Joined Jul 4, 2018
16
I have experience with this type of display. Not the 8x2 but the 16x2 which is available in the same two interface types. I have read your posts very carefully but I can not make much sense of what you are asking. You posted the spec sheet of the series that has the 1C2 2 line interface (DATA and CLOCK) but you are talking about ACK and BUSY lines. I can not help you if I don't know what device you really have.
If you can identify it and let us know what you have it connected to and how it is connected, we may be able to help you but until then, we can not suggest a solution.
Many thanks for replying. I am sorry this is not clear.
I have experience with this type of display. Not the 8x2 but the 16x2 which is available in the same two interface types. I have read your posts very carefully but I can not make much sense of what you are asking. You posted the spec sheet of the series that has the 1C2 2 line interface (DATA and CLOCK) but you are talking about ACK, BUSY and RESET lines. I can not help you if I don't know what device you really have.
If you can identify it and let us know what you have it connected to and how it is connected, we may be able to help you but until then, we can not suggest a solution.

Many thanks for replying - you might be just the person I am looking for !

I am sorry this is not clear - I am using the device mentioned in the attached file. This uses an I2C interface supplemented with a low-active RESET input which I have hard-wired to +5v so as to use the internal power-on reset function of the device. I am using the 5v supply option.

ACK refers to a particular cycle of the I2C protocol during which the bus master (a PIC 16f628 in this case) writes SCK high, then looks for a low condition on the SDA line. This low condition of SDA is created by the LCD, and in the usual I2C protocol merely signifies that the slave (i.e. the lcd) has received a serial byte. In I2C, ACK-high during the associated SCK phase indicates that the slave which is being addressed has not successfully received the byte - i.e. a fault condition.

The LCD controller has a lot in common with the HD44780 controller, and seems to be this old war-horse with an I2C front end bolted on. After one has sent a command (such as an initialisation command, or a printable ascii byte) to the controller, one must wait for the controller to act on the command and become ready for the next one; this can take several millisecs. In the parallel versions you do this by reading a status register from the device, and checking the BUSY bit. You must wait until BUSY is low before sending the next byte. Since the serial LCD is essentially the HD44780 as mentioned above, there must be some mechanism for checking the BUSY state, and my interpretation of the information I have is that this function is conflated with the I2C ACK bit, which now has 2 functions - acknowledgement of receipt of a byte, and also an indication of the NOTBUSY state of the controller; ACK goes low when both conditions are true. But to some extent I am uncertain about my interpretation of this, so your comments will be of great value.

I would also be most interested in several other questions which you might be able to answer -

1) do you use the power-on reset, and if so do you just switch on, wait >+40ms, then start writing initialisation commands (function set, device switched on, number of lines, etc) ? This is what I am trying to do.

2) What does your display look like if you simply switch on, but do not issue any commands (for example if the microcontroller has been removed from its socket). Does it look like either of the pics I have posted , and if so which ?

3) have you found that these LCDs are particularly sensitive to damage (normal handling, etc)

Many thanks again for your reply. I have attached my software. This is work in progress and a large part of it is not relevant to this discussion. INIT, LCDINIT & GETACK are the important subroutines. The .asm file can be read with notepad, but MPLAB will make it look prettier, and with better formatting
 

Attachments

Thread Starter

g4oep

Joined Jul 4, 2018
16
PS I have re-read my previous reply and can see that it still might be ambiguous. I am using ACK to refer to 2-things -

1) the ACK cycle defined in the I2C protocol - i.e a clock cycle generated by the master which follows immediately after 8 other cycles during which a byte is sent (or received)
2) the information returned by the slave during the ACK cycle. In this second meaning ACK refers to a bit read by the master from the SDA line during the ACK clock cycle. This bit will be low if the slave has received the preceding byte, high if the byte has not been properly received.

ACK does not refer to a wire connecting master and slave (SCK and SDA do correspond to wires).
RESET refers to a connection which is part of the pinout of the lcd. Making its logic state low forces a reset process in the lcd, after which initialisation commands must be sent. So far I have not used this facility, but I would be interested to know whether you have.
 

KeithWalker

Joined Jul 10, 2017
3,092
Many thanks for replying. I am sorry this is not clear.



Many thanks for replying - you might be just the person I am looking for !

I am sorry this is not clear - I am using the device mentioned in the attached file. This uses an I2C interface supplemented with a low-active RESET input which I have hard-wired to +5v so as to use the internal power-on reset function of the device. I am using the 5v supply option.
Hi,
You have clarified your problem and now I understand what you are trying to do. I will answer your questions to the best of my ability.:

1. I do not use the power-up as a reset. The displays are run from the same 5V supply as the processor and they are both powered on at the same time. I do not use a 40 mS delay before configuring the software.

2. The display on power-up varies from one device to another. I do have one that looks like your green display, showing all of the pixels in the top line, so you can assume that it is normal.

3 There are lots of warnings about handling in the spec sheet but I have only ever had one that failed - the back-light died for no apparent reason.

I read everything on the datasheet for the I2C display and noticed that there was no mention of the I2C interface address for the device. Was is included with the literature that you received with the display? I have used a number of different devices on the I2C bus and found on several occasions that that the supplied address was incorrect. This is probably the first thing that you should check if you are getting no response from the display.
ACK refers to a particular cycle of the I2C protocol during which the bus master (a PIC 16f628 in this case) writes SCK high, then looks for a low condition on the SDA line. This low condition of SDA is created by the LCD, and in the usual I2C protocol merely signifies that the slave (i.e. the lcd) has received a serial byte. In I2C, ACK-high during the associated SCK phase indicates that the slave which is being addressed has not successfully received the byte - i.e. a fault condition.

The LCD controller has a lot in common with the HD44780 controller, and seems to be this old war-horse with an I2C front end bolted on. After one has sent a command (such as an initialisation command, or a printable ascii byte) to the controller, one must wait for the controller to act on the command and become ready for the next one; this can take several millisecs. In the parallel versions you do this by reading a status register from the device, and checking the BUSY bit. You must wait until BUSY is low before sending the next byte. Since the serial LCD is essentially the HD44780 as mentioned above, there must be some mechanism for checking the BUSY state, and my interpretation of the information I have is that this function is conflated with the I2C ACK bit, which now has 2 functions - acknowledgement of receipt of a byte, and also an indication of the NOTBUSY state of the controller; ACK goes low when both conditions are true. But to some extent I am uncertain about my interpretation of this, so your comments will be of great value.

I would also be most interested in several other questions which you might be able to answer -

1) do you use the power-on reset, and if so do you just switch on, wait >+40ms, then start writing initialisation commands (function set, device switched on, number of lines, etc) ? This is what I am trying to do.

2) What does your display look like if you simply switch on, but do not issue any commands (for example if the microcontroller has been removed from its socket). Does it look like either of the pics I have posted , and if so which ?

3) have you found that these LCDs are particularly sensitive to damage (normal handling, etc)

Many thanks again for your reply. I have attached my software. This is work in progress and a large part of it is not relevant to this discussion. INIT, LCDINIT & GETACK are the important subroutines. The .asm file can be read with notepad, but MPLAB will make it look prettier, and with better formatting
Many thanks for replying. I am sorry this is not clear.



Many thanks for replying - you might be just the person I am looking for !

I am sorry this is not clear - I am using the device mentioned in the attached file. This uses an I2C interface supplemented with a low-active RESET input which I have hard-wired to +5v so as to use the internal power-on reset function of the device. I am using the 5v supply option.

ACK refers to a particular cycle of the I2C protocol during which the bus master (a PIC 16f628 in this case) writes SCK high, then looks for a low condition on the SDA line. This low condition of SDA is created by the LCD, and in the usual I2C protocol merely signifies that the slave (i.e. the lcd) has received a serial byte. In I2C, ACK-high during the associated SCK phase indicates that the slave which is being addressed has not successfully received the byte - i.e. a fault condition.

The LCD controller has a lot in common with the HD44780 controller, and seems to be this old war-horse with an I2C front end bolted on. After one has sent a command (such as an initialisation command, or a printable ascii byte) to the controller, one must wait for the controller to act on the command and become ready for the next one; this can take several millisecs. In the parallel versions you do this by reading a status register from the device, and checking the BUSY bit. You must wait until BUSY is low before sending the next byte. Since the serial LCD is essentially the HD44780 as mentioned above, there must be some mechanism for checking the BUSY state, and my interpretation of the information I have is that this function is conflated with the I2C ACK bit, which now has 2 functions - acknowledgement of receipt of a byte, and also an indication of the NOTBUSY state of the controller; ACK goes low when both conditions are true. But to some extent I am uncertain about my interpretation of this, so your comments will be of great value.

I would also be most interested in several other questions which you might be able to answer -

1) do you use the power-on reset, and if so do you just switch on, wait >+40ms, then start writing initialisation commands (function set, device switched on, number of lines, etc) ? This is what I am trying to do.

2) What does your display look like if you simply switch on, but do not issue any commands (for example if the microcontroller has been removed from its socket). Does it look like either of the pics I have posted , and if so which ?

3) have you found that these LCDs are particularly sensitive to damage (normal handling, etc)

Many thanks again for your reply. I have attached my software. This is work in progress and a large part of it is not relevant to this discussion. INIT, LCDINIT & GETACK are the important subroutines. The .asm file can be read with notepad, but MPLAB will make it look prettier, and with better formatting
 

KeithWalker

Joined Jul 10, 2017
3,092
Hi,
You have clarified your problem and now I understand what you are trying to do. I will answer your questions to the best of my ability.:

1. I do not use the power-up as a reset. The displays are run from the same 5V supply as the processor and they are both powered on at the same time. I do not use a 40 mS delay before configuring the software.

2. The display on power-up varies from one device to another. I do have one that looks like your green display, showing all of the pixels in the top line, so you can assume that it is normal.

3 There are lots of warnings about handling in the spec sheet but I have only ever had one that failed - the back-light died for no apparent reason.

I read everything on the datasheet for the I2C display and noticed that there was no mention of the I2C interface address for the device. Was is included with the literature that you received with the display? I have used a number of different devices on the I2C bus and found on several occasions that that the supplied address was incorrect. This is probably the first thing that you should check if you are getting no response from the display.
 
Top