Jump to content

Display options


Duggle
 Share

Recommended Posts

Hi, its me again...

I have problems with the connection of the SSD1306 over an additional register.

Am I ling right by connecting the CS lines with the Register Outputs described as E3-E10 on the schematic of LCDs?

SDA,SCLK,DC are all connected together is written in the mbhp_lcd_ssd1306_multiple_mios32.pdf but are they also al connected to RW,E,RS  on the core together?

That sounds a little bit strange to me...

The Schematic of Multiple LCDs is showing the RW line as not "doted" so im now really confused.. http://ucapps.de/mbhp/mbhp_lcd_nx2x20_mios32.pdf

 

VSS                       -VSS                     (Coming from LPC17CoreModul  J15A)

VDD                      -VDD                     (Coming from LPC17CoreModul  J15A)

RS                         -DC                        (Coming from LPC17CoreModul  J15A)

RW                        -SDA      -D1           (Coming from LPC17CoreModul  J15A)

E                           -SCLK    -D0           (Coming from LPC17CoreModul J15A)

E3 - E10               - CS  on Displ 1-8   (Coming from Additional Register connected to J28)

 

Can somebody verify that for me?

 

 

The Second Question i have is to the Cap and Resistor. Is it necessary to place a Cap and a Resistor for each Display or is one enough for 8 Displays in a Row?

 

I added a Snapshot of my Eagle schematic for better understanding...

 

Thanks 

novski

 

post-10711-0-37545600-1359536097_thumb.p

post-10711-0-36366900-1359537200_thumb.p

Link to comment
Share on other sites

Hi,

 

your assumptions are correct, and I just have doublechecked at my side, that with:

 

 

lcd_type 0x85
lcd_num_x 16
lcd_num_y 1
lcd_width 128
lcd_height 64
store

 

the shift register at J28 will be enabled (it will be enabled once more than 12 LCDs are configured in x and/or y direction), and up to 16 SED1306 OLEDs will be addressed correctly.

 

You could load cfg/tests/clcd_16.ngc configuration for testing purposes - it will print LCD1... LCD16 on all displays.

 

A single cap and resistor should be ok for all displays. The capacity will be increased a bit, but with the 10 uF in parallel we've already a capacity which is more than 1000 times higher ;-)

 

Hint for testing the displays without chip select lines: just connect them to 3.3V (J28:Vd) directly - this ensures that they will be initialized; and they will print the same message like the first display during startup.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

This isn't really required.

 

For serial GLCDs it doesn't make a difference, if only one or up to 8 displays are connected to the shift register, because the driver doesn't get a feedback from the available displays anyhow.

 

For CLCDs it's a bit different, but still no issue: the driver gets a feedback, and it's able to determine if a CLCD is "always busy" resp. not connected. In this case the CLCD will be deactivated and won't be accessed anymore.

 

So - why do you want to set such a special configuration?

 

Best Regards, Thorsten.

Link to comment
Share on other sites

I just realized that the shift register is connected to the same J28 as the additional lines 9-12 are. And thats what you mentioned in you second last post... - It enables the shift - register by activating more then 12 OLEDs in Bootloader... 

sorry i got confused by the schematic of CLCD Displays and SSD1306...

Edited by novski
Link to comment
Share on other sites

Somehow I knew that I shouldn't release this option before drawing a schematic.

On the other hand the schematic takes significantly more time than the implementation of such a function!

 

So, hopefully more clear:

- if <= 8 displays are configured (CLDs: 2 displays), J28 won't be initialized at all, and it's free for other purposes (e.g. MBSEQ: to output CV gates, DIN clock and DIN Start/Stop)

- if <= 12 displays are configured, all 4 J28 outputs will be used by the LCD driver to provide additional CS pins (CLCDs: E pins if <= 6 displays configured) - this saves some hardware!

- if >= 13 displays are configured, CS (or for CLCDs: E if >= 7 displays configured) pins are provided by a shift register (chain)

 

It should also be clear, that a CLCDs have a different interface than serial GLCDs.

For CLCDs we can connect two E lines (equivalent to CS lines on serial GLCDs) to J15A and J15B - and this means, that additional E lines are starting at 3.

For KS0108 based GLCDs we've a similar situation.

For serial GLCDs such as DOGM and SSD1308 the J15 control pins (E, RS, RW) are used for different purposes, and data pins are used to select up to 8 GLCDs

 

Sorry for such complicated dependencies, but I'm just trying to cover many cases which have been requested in the past.

Sometimes it would really be easier just to say: no - it isn't possible! ;-)

 

Best Regards, Thorsten.

Link to comment
Share on other sites

@ Ilmenator: i think exactly same. This Midibox Project is huge and im always delighted to see people build stuff as big as a Lightning console or a Harrison Audio Desk. 

 

@TK. to summarize the Question above, for SSD1306 Displays its possible to combine these three lines to one single connection...?

 

RS         -DC                        (Coming from LPC17CoreModul  J15A)

RW        -SDA      -D1           (Coming from LPC17CoreModul  J15A)

E           -SCLK    -D0           (Coming from LPC17CoreModul J15A)

 

And if so, how wold you name that single wire?

 

Thanks a lot..

novski

Edited by novski
Link to comment
Share on other sites

I'm unsure if just only the wording is wrong... these three signals shouldn't be connected together to a single signal.

But if you mean if RS can be connected to all DC inputs of the OLEDs, and RW to all SDA (D1) inputs, and E to all SCLK (D0) inputs: yes, of course.

 

The wires should be named DC, SDA and SCLK, because this is the function of the signals.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

It was a case of having the LCDs sit in alignment with the encoders. It seemed that larger displays could not be arranged so that they lined up with the encoders very well (as I recall...).

I'm in construction of this beast at the moment. The 2x16 LCD aligns with 2 encoders fairly well (with a 5mm gap between LCD PCBs).  

Link to comment
Share on other sites

Yes, that would work fine and the price is o.k

I've just wired up a bus of 20 of a similar looking LCD and I can tell you I would try to hunt down an LCD with 2 rows of 8 pins connector rather than 1 row of 16!!!!

The 2x8 connectors are available in IDC format which would have saved me many hours of stripping, joining, and soldering grey ribbon cable to make a bus of 20 LCDs.

I recon I could have saved myself about 12hours and ended up with a neater result using displays with IDC connection.

Link to comment
Share on other sites

  • 3 weeks later...

https://www.dropbox.com/s/7clebiiwaim2j0s/8x%20LCD.png?m

 

Hi i made a Idea for the LCD feature.

here you see a 8x LCD Module..

 

you can also use it for the 1 to 6 LCD without a DOUT (74HC595) i will also create one with the DOUT (74HC595)

But i wonder as i'm Not a PRO if you use 64 LCD screens will the Power supply form the LPC17 bases core be Enough?

and is it a Idea to add a seprate PSU for each 8~16~32 LCD Screens..

also i ask you to look at it if i made it correct :rolleyes:

 

i also know TK doesnt know if the D0 ~ D7 lines needs a Extra buffer.

 

also do you need the 220 Ohm resistor on the DOUT or do you need to add a 1K ohm resistor as i see on the LPC chematics?

 

Kind regards, Spirit

Edited by Spirit
Link to comment
Share on other sites

The purpose of the DOUT connected to port J28 module for modules 3..X (X=8, in your case) is to provide separate E (enable) lines to each and every LCD. The first 2 are already provided off the core.

 

I can say from direct testing that at least 20 LCDs can be used without buffering.

I have wired the LCD controller signals as a bus.

In the test so far all wires are common to every LCD except the E lines which come from the core J15A/B (1 and 2)  and DOUT (3 to 20)

In my final build I'll have separate Backlight and  Contrast for each row in my setup. 

 

There was enough power from the USB port to power all LCD's and backlights (backlights are set to fairly dim on purpose; they look better).

Link to comment
Share on other sites

  • 4 weeks later...

Hi, i´m sorry if that sounds stupid, but...

 

i want to connect 16 ssd1306 displays and afaik the first 8 chip select lines are connected to j15, that does work on my side, and for the next 8 (9-16) displays i have to use a dout module for the chip select lines. Is that correct? I tried all evening to connect the displays to a dout module, but all i got are the first 8 displays working correct and the 9th displays shows lcd16, the remaining 7 displays stay dark. Anyone can help?

 

Greetings

Link to comment
Share on other sites

The individual CS lines have been tested, they are working.

For my it sounds like the DOUT shift register isn't connected correctly, or that the configuration in the bootloader setup is wrong.

 

Please describe exactly what you did:

- your LCD configuration in the Bootloader setup

- the hardware connections

- tests that you already did - and describe the observations

 

Without this input, remote diagnosis isn't possible!

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK, thanks for the fast reply. After I checked the whole wiring again, I believe this is simply the case of bad wiring. I´m not 100% sure yet, but I found some bad connections and I´m going to fix them first before I jump to any more conclusions (sorry about that  :whistle: ).

 

Thanks for the help

 

Greetings

Link to comment
Share on other sites

Yeah, it turned out to be a wiring problem, it´s working now.

 

But I came across another problem with the Mackie Control message: "^txt56" only seems to work with a font that has a height of 8 pixels. The problem seems to be that the "^txt56" syntax sets the cursor to the second line after 56 characters regardless of what the current font height is. If I use a bigger font, then the lower half of the first line is printed over by the second line.

 

Greetings

Link to comment
Share on other sites

This needs some work in the display output routine in MBNG_EVENT_ReceiveSysEx()

It will be difficult to find a proper solution which even covers your special case, but I could think about this in April.

 

Best Regards, Thorsten.

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...