Jump to content

Dual LCD display with 2 cores possible?


urtzurd
 Share

Recommended Posts

Hi,

 

I've been a reader of this forum for the last months since I started to build my Midibox SID, and first of all, thank you guys for all the useful information and for making this awesome project possible!

 

I'm building a 4 SID synth using 2x6581 and 2x8580 and my idea is to build the synth in two modules, one box containing the 2 cores and 4 SID boards and another box for the control surface (connected by a D-sub 25 connector). The idea behind this is to make the synth part independent and portable, controllable via MIDI and attach the control surface when editing. My doubt is where to install the LCD, as it would be nice to have it on each of the boxes... so why not using two LCD, both displaying the same info?

 

I'm new to electronics and I'd like to check the two possibilities I'm considering, before blowing anything :-)

 

My first idea is to connect the two LCDs (well, one LCD and the needed pins to the D-sub 25 connector) to the first core, using the same ribbon cable. My concern with this is the power draw needed for the two backlit displays, that could be too much and damage the core module.

 

Another possibility, that I'm not certain about its viability, is to connect the second LCD to the second core. I have been searching for info about what happens with the slave cores and the display, but I don't know if the display is enabled or not and if this option makes any sense. Shall any slave core drive the LCD display with exactly the same info as the master core?

 

Thanks a lot for your help.

Best regards,

Urtzi.

 

 

Link to comment
Share on other sites

Hi,

 

welcome on board! :)

 

The backlight of a LCD isn't connected to the core, but via T1 (a current source) to the PSU. It's possible to supply multiple backlights at once, and with two LCDs the power consumption should still be less than 500 mA (the 7805 works at up to 1A if a heat sink is mounted).

 

But it will be problematic to drive two LCDs at once because of the RW line which selects read mode with RW=1.

In read mode, both LCDs would drive the data lines (D0..D7) and this results into a short circuit.

 

The second core only prints a dummy message, it can't display the same informations like the master core.

 

Currently I don't see a solution for your intentions :-/

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Oh, that's bad news  :sad:

 

I see the problem with the read mode and the two LCD's sending data simultaneously in the same data lines. What about using a buffer gate controlled by the R/W line? This way one of the LCD's would set the data lines to hi-z and would not interfere with the other one. I'm not sure in which situations the read mode is used, and if this makes any sense. I'm assuming that reading should return always the same data on both LCD's.

 

Another possibility would be to install a rocker switch and control the +5 volts line, so only one LCD is switched on at a time. I guess that hot switching would result in a corrupted display, but as long as the LCD is selected prior turning the unit on, perhaps this can do the trick.

Link to comment
Share on other sites

Read mode is used before each write operation to poll the busy flag. Since the LCD is clocked asynchronously and execution times can vary depending on the ambient conditions (e.g. supply voltage and temperature), this is required to ensure that the write data can be processed.

 

I'm a bit unsure if it would be possible to poll only the busy flag of a single LCD, and if the second LCD will always behave similar (need the same delays). It's something that has to be tried out, with some luck it will work.

But then you would still need to solve the read data collision issue. A transmission gate based buffer could work if switching between opened and closed state is high enough, and the higher impedance doesn't influence the data lines - I've no experiences on this topic.

 

However, switching between the two LCDs is easy: actually you only need to route the E signal to one LCD, and set E to 0 of the other LCD.

You could use a common toggle switch for this purpose, just add 10k pull-down resistors to the E inputs to ensure that they are logic-0 when the switch doesn't route the E signal to the input.

 

There might even be a solution to switch "automatically" once D-Sub connector is plugged into the socket so that no switch is required by using logic gates instead of a mechanical switch.

 

Note that you need to reboot the device in order to initialize the LCD once it has been selected with the switch.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Thanks a lot for the info and the suggestions!

 

I'll give a try to the buffered gates approach and see if the two displays can work simultaneously. I have two LCD's that are exactly the same model, so that could give me some chance. Otherwise I'll do as you suggested and I'll implement an automatic switch with a pull down resistor and a not gate. Will come back with my findings once I can do some tests.

 

Best regards,

Urtzi.

Link to comment
Share on other sites

  • 2 weeks later...

Hi,

 

Finally I got some time to do some tests with the two LCDs. Unfortunately it seems that reading from one LCD and writing to both of them causes sync issues as you predicted. It was quite close to work, but on the secondary LCD some characters appeared corrupted from time to time. The first LCD always seemed to work fine, so the buffered gates seemed to solve the read collisions.

 

This weekend I'll give a try to the switch option using logic gates to detect when the cable is connected.

 

Cheers!

Link to comment
Share on other sites

Hi!

 

I've implemented a very simple circuit to detect if the D-Sub connector is connected. It's basically as you described but using a pull-up resistor, so by default the value of that line is +5V. I use two pins on the D-Sub connector: one connected to GND and the other connected to the detector pin. When the cable is connected, it closes the loop, sending the GND back to the detector pin and switching it to logical 0.

 

This allows me to connect the detector pin with the E line in the display using just one AND gate. When the cable is disconnected, the display is enabled, when connected it's disabled and the external display is enabled instead. Hopefully I'll post pictures soon, as soon as I have some time to work on the case and I get some overlays for the panels.

 

Best regards,

Urtzi.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...