0

I've spent the last week or two trying to get my MSP430 to communicate with an NT7605-based LCD.

I found this post with a very similar problem: Debugging initialization of LCD with NT7605 driver I've followed every step of this post and even directly copied their code (adjusting the pin connections accordingly) but to no avail.

The specific LCD module I am using is NHD-C0220AA-FSW-FTW (datasheet: http://www.newhavendisplay.com/specs/NHD-C0220AA-FSW-FTW.pdf)

I have used a logic analyzer to verify that I am sending the correct data and that my pins are connected correctly, at least as far as I can tell.

At this point, I have attempted to verify everything that I could suspect to be wrong (incorrect voltage levels, incorrect pin assignments in software, in correct wiring, etc), and I don't really know what to try next.

If anyone has working initialization code along with a pinout that I could try to ensure that my device is not broken, that would be great!

  • 1
    `but to no avail` .... what happens exactly? – jsotola Jul 08 '18 at 20:10
  • Absolutely nothing haha. Adjusting the contrast pot has no effect on the screen. As was verified in the post that I linked, if the device is not initialized properly, the contrast pot will do nothing. – Andrew Hegman Jul 08 '18 at 21:31
  • are you using 4-bit or 8-bit interface? .... this datasheet has more info than the one you posted on pages 24, 25 ... http://www.newhavendisplay.com/app_notes/NT7605.pdf – jsotola Jul 08 '18 at 23:19
  • the post that you refer to uses 4-bit interface, but uses 8-bit wiring .... when using 4-bit interface, connect MSP430 data lines DB0-DB3 to display data lines DB4-DB7 – jsotola Jul 08 '18 at 23:24
  • I have tried both 8-bit and 4-bit. My initial attempt was to use the 8-bit interface with a shift-register. I directly connected the wires to the LCD when I used the code that is in the post that I referred to. I did connect all 8 wires to the LCD, is that a problem? Should I ground DB0-DB3? – Andrew Hegman Jul 09 '18 at 14:33
  • My biggest fear (or suspicion) is that I have my 'enable' logic wrong. Maybe its my lack of experience with 'bare-metal' MCUs (most of my experience is with various Arduinos and their accompanying libraries), but I am having a little trouble understanding the timing diagram as shown on page 23 of the datasheet you posted. It looks like they have the enable pin toggling with a nearly 50% duty cycle. Do you think the duty cycle is critical? Or is it just the falling edge that is critical? – Andrew Hegman Jul 09 '18 at 14:35
  • the timing diagram is on page 10 (figure 2) .... the timing specs are on page 8 and 9 ..... all the times do not have a max value (except signal rise and fall times) ..... what that means is, that you could operate the display manually by using toggle switches (as long as rise and fall times were within spec) .... so the 50% duty cycle requirement does not exist ... the author just chose to draw the timing diagram that way – jsotola Jul 09 '18 at 17:19
  • Ok perfect. I have spent quite a bit of time studying that figure and an oscilloscope as well as a logic analyzer. I am confident in saying that I am not violating any of the minimum values (especially considering the clock is at 1MHz). – Andrew Hegman Jul 09 '18 at 17:28

0 Answers0