openGLCD HD44102 to T7932

Hello,

I have few LM7280SYL 150x32 GLCDs with Toshiba T7932 column drivers. According to datasheet T7932 is nearly identical to HD44102 except timings. Displays are checked with pic micro and working. Trying to use them with UNO and openGlcd.
In AutoConfig_hd44102_Panel I changed:
DISPLAY_WIDTH to 150
NBR_CHIP_SELECT_PINS to 3
----Timings for T7932-------
#define GLCD_tDDR 140 //320
#define GLCD_tAS 40 //140
#define GLCD_tDSW 60 //200
#define GLCD_tWH 220 //450
#define GLCD_tWL 220 //450

In openGLCD_Config:
//#define GLCDCFG_GLCDCONFIG "config/ks0108/AutoConfig_ks0108-128x64_Panel.h"
#define GLCDCFG_GLCDCONFIG "config/hd44102/AutoConfig_hd44102_Panel.h"

But when skech is uploaded, I get a message "GLCD initialization Failed: RESET wait Timeout (status code: 2)".

Somehow Uno don't receive proper status read????? Stuck, just all pixels are black.

According some replies and Wiki troubleshooting I have double check wiring, contrast pot and everything is OK. But I still missing something or constantly doing same mistake.

Any help is welcome.
Thanks in advance.

Do you have a photo and link to the datasheet for your specific module?
The datasheet for your specific module is critical to know if it can be supported through modifications in a configuration file or if it requires modifications to actual code.

One of the several important pieces of information is how the glcd module chip select signals work.
A generic Toshiba T7932 is not good enough to know as the chip select signals for the chip are not the same as the chip select signals that are presented to the glcd module pins.

There is also the question of how to set the MCU mode (68-series vs 80-series) or if it is hard wired.
Currently, openGLCD expects the h/w interface to be 68-series mode.

In terms of timing, the timing changes you made should not be necessary. Those timings are minimum times.
Longer times than the minimums will still work.
While shorter times can make things a bit faster, for testing purposes, particularly when testing a new display it is better to run with longer more conservative timings.

--- bill

Thanks for fast response.

Toshiba T7932 column driver connection:
pin state function
80/68 low 68-series MPU
BS low 8-bit interface
CS1 low
CS2 high
CS3 to pin header when high Read/Write enable

Measured with Ohmmeter respect to gnd.

Previus picture size to big.

There are 20 interface pins on the module shown in the photo.
Do you have a datasheet for the module?

I need to see the pinout for the module, a photo of your setup that shows how the module is connected to the Arduino, and then the serial output from diag sketch to be able to verify the connections and wiring.

--- bill

Trying to find LM7280SYL data on internet, but no succes. Only “http://www.amobbs.com/thread-918484-1-1.html” but different pins.

Pins of module are maped by measuring resistance between T7932 and module pin header.

LCD Pin connections:

  • 1: GND
  • 2: /WR----E Enable
  • 3: DI Data or Instruction is connected
  • 4: R/W - Read or Write
  • 5: Logic power supply +5V
    *6-13: Data Bus 0 to 7
    *14: LED +5V
    *15: Chip Select 1
    *16: Chip Select 2
    *17: Chip Select 3
    *18: Reset
    *19: Negative voltage is also connected to the 20k Ohm POT
    *20: Negavtive voltage for LED backlight is connected to GND thru 10k pot

Tested two cases:
RST to Arduino RST
RST to Hight
Same result

Serial initialized
--------------------------------------------------------------------
Reported Arduino Revision: 1.6.12
F_CPU: 16000000
--------------------------------------------------------------------
Lib Configuration: openGLCD ver: 1.0rc3 build: v1.0rc3
Panel Configuration:hd44102
Pin Configuration:ks0108-Uno
--------------------------------------------------------------------
GLCD:hd44102 DisplayWidth:150 DisplayHeight:32
Chips:3 ChipWidth:50 ChipHeight:32
 CSEL1:A0(PORTC0) CSEL2:A1(PORTC1) CSEL3:3(PORTD3)
 RES:A5(PORTC5) RW:A2(PORTC2) DI:A3(PORTC3) EN:A4(PORTC4)
 D0:8(PORTB0) D1:9(PORTB1) D2:10(PORTB2) D3:11(PORTB3)
 D4:4(PORTD4) D5:5(PORTD5) D6:6(PORTD6) D7:7(PORTD7)
Delays: tDDR:320 tAS:140 tDSW:200 tWH:450 tWL:450
ChipSelects:
 CHIP0:(A0,0x1, A1,0x0, 3,0x0)
 CHIP1:(A0,0x0, A1,0x1, 3,0x0)
 CHIP2:(A0,0x0, A1,0x0, 3,0x1)
Data mode: 
 d0-d3:nibble mode-Non-Atomic
 d4-d7:nibble mode-Non-Atomic
Backlight: <Not configured>
--------------------------------------------------------------------
Diag Loop: 1
Initializing openGLCD
GLCD initialization Failed: RESET wait Timeout (status code: 2)
Test Count: 0 PASSED 1 FAILED
---------------------------------

As I asked in my firs post “Did I make same mistake all the time” the answer is Yes.
I made mistake when I wrote pins on my old test board with PIC micro and didnt correct that in program header. I switched pins 3 and 4. Sorry for wasting Yours time.

Here is correct LCD Pin header and connections to UNO:

  • 1: GND
  • 2: /WR_E Enable is connected to A4
  • 3: R/W Read/Write is connected to A2
  • 4: DI Data/Instruction is connected to A3
  • 5: Logic power supply +5V
  • 6: D0 8
  • 7: D1 9
  • 8: D2 10
  • 9: D3 11
    *10: D4 4
    *11: D5 5
    *12: D6 6
    *13: D7 7
    *14: LED power supply +5V
    *15: CS1 A0
    *16: CS2 A1
    *17: CS3 3
    *18: Reset is connected to A5
    *19: Negative voltage is connected to the 20k Ohm POT
    *20: Contrast

19-----o
|
.-.
20–> | | 20k
| |
‘-’
|
GND

In Device.h commented line 113 “//#define GLCD_T7932_COLREVERSED”
Now GLCD work perfectly.
Module Connection on Solderless Prototype Board in attactment.

Thanks. And again Thanks for Your help.

nostromo_2000:
In Device.h commented line 113 "//#define GLCD_T7932_COLREVERSED"

Did you really mean?:

In hd44102_Device.h commented line 113 "//#define GLCD_HD44102_COLREVERSED"

I had forgotten about that define.
Originally I had intended it it to be moved to a config file vs being in the device file but forgot about it.

So it sounds like it is all working. which is great.
I think I'll add a new manual config file for that display to make it easier.
It will include the pinout like the other display specific files.

What timing did you end up using? If not the more conservative timing, Does it pass the full diagnostics when left running for say 30 minutes or more?

--- bill

Just tested for cca 30min. Here is result. Perfect.

F_CPU: 16000000
--------------------------------------------------------------------
Lib Configuration: openGLCD ver: 1.0rc3 build: v1.0rc3
Panel Configuration:t7932
Pin Configuration:t7932-Uno
--------------------------------------------------------------------
GLCD:t7932 DisplayWidth:150 DisplayHeight:32
Chips:3 ChipWidth:50 ChipHeight:32
 CSEL1:A0(PORTC0) CSEL2:A1(PORTC1) CSEL3:3(PORTD3)
 RES:A5(PORTC5) RW:A2(PORTC2) DI:A3(PORTC3) EN:A4(PORTC4)
 D0:8(PORTB0) D1:9(PORTB1) D2:10(PORTB2) D3:11(PORTB3)
 D4:4(PORTD4) D5:5(PORTD5) D6:6(PORTD6) D7:7(PORTD7)
Delays: tDDR:200 tAS:40 tDSW:60 tWH:220 tWL:220
ChipSelects:
 CHIP0:(A0,0x1, A1,0x0, 3,0x0)
 CHIP1:(A0,0x0, A1,0x1, 3,0x0)
 CHIP2:(A0,0x0, A1,0x0, 3,0x1)
Data mode: 
 d0-d3:nibble mode-Non-Atomic
 d4-d7:nibble mode-Non-Atomic
Backlight: <Not configured>
--------------------------------------------------------------------
Diag Loop: 1
Initializing openGLCD
Displaying Library version Screen
Turning display on/off
Displaying ChipSelect Screens
Walking 1s data test
Wr/Rd Chip Select Test
Testing GLCD memory pages
Horizontal Page Test Chip: 0 Pixels 0-49
Vertical Page Test Chip: 0 Pixels 0-49
Horizontal Page Test Chip: 1 Pixels 50-99
Vertical Page Test Chip: 1 Pixels 50-99
Horizontal Page Test Chip: 2 Pixels 100-149
Vertical Page Test Chip: 2 Pixels 100-149
Full Module Horizontal Page Test:Pixels 0-149
Full Module Vertical Page Test:Pixels 0-149
TEST PASSED
GLCD.SetDot() speed (K ops/sec): 13.78
Test Count: 1 PASSED 0 FAILED
--------------------------------------------------------------------

Attached files need to be copied to corresponding folders. Everithing is inside including timings and comented line.

Thanks again.

Damir

openGLCD_T7932.zip (11.7 KB)

Thanks for the files.
It will make things a bit easier.
I'll add the new device and will add full auto config files with a manual config file for that particular display that has the pinout information for the display. I'll clean up the 44102 stuff at the same time.
Timings for the auto config vs the manual config were different, but I'll fix that.

It will be in the next release.

BTW, do you happen to have a mega board?
The pins used on that board will use byte mode which is much faster than nibble mode and will lean on the timing more than nibble mode.
It would be great to run those timings on a faster interface.

--- bill

I will try tomorrow.

Just testing with MEGA boaard. Runing for 10min. Work like a charm.

Serial initialized
--------------------------------------------------------------------
Reported Arduino Revision: 1.6.12
F_CPU: 16000000
--------------------------------------------------------------------
Lib Configuration: openGLCD ver: 1.0rc3 build: v1.0rc3
Panel Configuration:t7932
Pin Configuration:t7932-Mega
--------------------------------------------------------------------
GLCD:t7932 DisplayWidth:150 DisplayHeight:32
Chips:3 ChipWidth:50 ChipHeight:32
 CSEL1:33(PORTC4) CSEL2:34(PORTC3) CSEL3:32(PORTC5)
 RW:35(PORTC2) DI:36(PORTC1) EN:37(PORTC0)
 D0:22(PORTA0) D1:23(PORTA1) D2:24(PORTA2) D3:25(PORTA3)
 D4:26(PORTA4) D5:27(PORTA5) D6:28(PORTA6) D7:29(PORTA7)
Delays: tDDR:200 tAS:40 tDSW:60 tWH:220 tWL:220
ChipSelects:
 CHIP0:(33,0x1, 34,0x0, 32,0x0)
 CHIP1:(33,0x0, 34,0x1, 32,0x0)
 CHIP2:(33,0x0, 34,0x0, 32,0x1)
Data mode: byte
Backlight: <Not configured>
--------------------------------------------------------------------
Diag Loop: 1
Initializing openGLCD
Displaying Library version Screen
Turning display on/off
Displaying ChipSelect Screens
Walking 1s data test
Wr/Rd Chip Select Test
Testing GLCD memory pages
Horizontal Page Test Chip: 0 Pixels 0-49
Vertical Page Test Chip: 0 Pixels 0-49
Horizontal Page Test Chip: 1 Pixels 50-99
Vertical Page Test Chip: 1 Pixels 50-99
Horizontal Page Test Chip: 2 Pixels 100-149
Vertical Page Test Chip: 2 Pixels 100-149
Full Module Horizontal Page Test:Pixels 0-149
Full Module Vertical Page Test:Pixels 0-149
TEST PASSED
GLCD.SetDot() speed (K ops/sec): 14.42
Test Count: 1 PASSED 0 FAILED
--------------------------------------------------------------------