Jump to content

Display options


Duggle
 Share

Recommended Posts

  • 2 weeks later...
  • 3 weeks later...

Hi 

I have problems figuring out how to connect additional SSD1306 displays on a second shift register for display 9-16.

I used the Pin 9 (Q8*) from the SR1 - for Serial IN, Pin 14 on the SR2. Then i connected SC (J28 Pin 8) to Pin 11 and RC (J28 Pin 10) to Pin 12 on SR2

Now i looked at the existing SR1 and see that there are more connections. There are connections between OE# and D1 on the Display that seam to be necessary but also over 1k to GND. 

I want to be sure before i blow up one of my nice smal OLEDs... 

 

Thanks

novski

Link to comment
Share on other sites

I used the Pin 9 (Q8*) from the SR1 - for Serial IN, Pin 14 on the SR2. Then i connected SC (J28 Pin 8) to Pin 11 and RC (J28 Pin 10) to Pin 12 on SR2

 

Correct - this matches with a common DOUT chain as you can see here: http://www.ucapps.de/mbhp/mbhp_doutx4.pdf

 

 

 

Now i looked at the existing SR1 and see that there are more connections. There are connections between OE# and D1 on the Display that seam to be necessary but also over 1k to GND. 

 

There is no connection between OE# of SR2 and D1 of the display, because OE# of the "CS line extension" has to be tied to ground like on a common MBHP_DOUTX4 module.

 

I guess that you mean the connection to J15:RW of the core module, which is also connected to OE# of MBHP_CORE_LPC17:IC2 - but this shift register is used for a different purpose and not related to the "CS line extension".

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Boothold, exactly. But i have connected the RW from J15 also to D1 as drawn in this schematic:

http://ucapps.de/mbhp/mbhp_lcd_ssd1306_single_mios32.pdf

Same is the E line from J15 that is connected to D0 on the Displays. it has a 1k Resistor to GND as well.

 

I made a pdf of my eagle schematic that works for the first 8 Dispays and a pdf of the schematic im drawing named FaderSlave. You can see that there is a normal DOUT SR built up and D0,D1 are not connected to any other line than between them self. What i don't now is, where to connect those two lines D1 and D0.

Thanks for your Time

Novski

FaderSlaveModulV1.2.pdf

FaderCore_V1.2.3Disp.pdf

Link to comment
Share on other sites

OK. Thanks TK.

 

Then, i have one more Line to the DC Connection on the Displays. On Display 1-8 its connected parallel to the SERIAL IN (Pin 14) of the First Shift-register, also called RS on J15. 

Is the second Shift-register Serial IN (Pin 14) connected to the DC line like the first 8 Displays or is the DC line to be connected to the Serial IN of the first Shift-register? 

 

In short: is DC of Disp 9-16 connected parralell to Serial IN of first SR or second SR?

 

Im neither an Electronic Engineer nor a Software so please don't hesitate to correct me but:

I think that there is a difference in Time (clock) between those two of one bit (from IN to OUT?) and because the D0/1 are clocked with the first SERIAL IN line i do not know what cold happen if i eventually ad another 8 Displays or more. 

 

Best Regards

Novski

Edited by novski
Link to comment
Share on other sites

In short: is DC of Disp 9-16 connected parralell to Serial IN of first SR or second SR?

 

You are really mixing things.

The shift register MBHP_CORE_LPC17:IC2 works independent from the shift register chain which is used as CS line extension, and connected to J28.

 

Just ignore that IC2 is a shift register, please focus on the J15A port, and take the logic on the MBHP_CORE_LPC17 module as a black box!

This would avoid some confusion at your side... ;-)

 

So: please connect all D0 (SCLK) to J15A:E, all D1 (SDA) to J15A:RW, and all DC to J15A:RS

The first 8 CS lines are connected to J15A:D0..D7

The remaining CS lines are connected to the outputs of a separate shift register chain which is controlled from J28

 

I hope that no further explanation is required.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 6 months later...

Hi,

Im sorry to have to bother again. I still have a issue with my displays.

After several attempts in summer, i sat down for about 5h today to try and get those displays running. I just cant.

I drawn a schematic thats more clear what i tried.

I just can't find a solution. If somebody wold be so patient to have a eye on this i wold really appreciate...

post-10711-0-05090900-1383055767_thumb.p

Thanks

best regards

novski

 

biger version: link on dropbox

Edited by novski
Link to comment
Share on other sites

I can only see a single error: P1.27 has to be connected to SDA and the OE# line of IC2

But this could also be a drawing mistake in the schematic, right?

 

Which LCD configuration are you using exactly?

You can find this out by uploading the MIOS32 bootloader update application (makes sense to use the latest release)

Enter "help" and copy&paste the terminal output into this posting.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK. First thanks a lot for your patient.

Your assume as i have forgot to draw the connection between P1.27 is correct. It is short between OE# - P1.27 and D1. I just corrected the Schematic right now.

this is the help output in MIOS_Studio Terminal after loading MIOS32:

[65664.980] ====================
[65664.982] Bootloader 1.012
[65664.992] ====================
[65664.995] 
[65665.006] Checking Bootloader...
[65665.294] No mismatches found.
[65665.296] The bootloader is up-to-date!
[65665.312] You can upload another application now!
[65665.333] Or type 'help' in MIOS Terminal for additional options!
[65673.225] help
[65673.227] Welcome to Bootloader 1.012!
[65673.227] Following commands are available:
[65673.227]   set fastboot <1 or 0>:   if 1, the initial bootloader wait phase will be skipped (current: 0)
[65673.227]   set single_usb <1 or 0>: if 1, USB will only be initialized for a single port (current: 0)
[65673.227]   set device_id <value>:   sets MIOS32 Device ID to given value (current: 0 resp. 0x00)
[65673.228]   set usb_name <name>:     sets USB device name (current: 'FaderCore1.3.3')
[65673.228]   set lcd_type <value>:    sets LCD type ID (current: 0x85 - GLCD_SSD1306_ROTATED)
[65673.228]   set lcd_num_x <value>:   sets number of LCD devices (X direction, current: 16)
[65673.229]   set lcd_num_y <value>:   sets number of LCD devices (Y direction, current: 1)
[65673.229]   set lcd_width <value>:   sets width of a single LCD (current: 128)
[65673.229]   set lcd_height <value>:  sets height of a single LCD (current: 64)
[65673.229]   lcd_types:               lists all known LCD types
[65673.229]   testlcdpin:     type this command to get further informations about this testmode.
[65673.229]   store:                   stores the changed settings in flash (and updates all LCDs)
[65673.229]   restore:                 restores previous settings from flash
[65673.230]   reset:                   resets the MIDIbox (!)
[65673.230]   help:                    this page

Display 1-8 are showing some text (semicolon as new line):

Disp1= BootloaderUpdate; Checking 0x38d0

Disp2= Bootloader is; up-to-date! :-)

Disp3= Bootloader is; up-to-date! :-)

Disp4= Bootloader is; up-to-date! :-)

Disp5= Bootloader is; up-to-date! :-)

Disp6= Boot#oader Mode;            0x38d0

Disp7= Bootloader is; up-to-date! :-)

Disp8= Bootloader is; up-to-date! :-)

 

Display 9-16 are dark.

 

best regards

novski

 

Link to comment
Share on other sites

Ok, but this gives me a totally new impression about what you mean with "get these displays running".

 

Actually at least the first 8 displays are working, because it seems that they are properly initialized (which is already a big success) and print out messages.

 

Of course, it's wrong that (almost) all of the first 8 displays print out the same message, and that the remaining 8 displays don't print anything.

I would expect, that after a "store" or "restore" command each display prints out a different message.

But these symptoms bring much more light into the story.

 

Before we continue the remote analysis, it would be interesting to know, if you've used sockets for the display connections, so that you are able to remove displays?

 

Because the first interesting test would be the following: what happens, if you upload this application:

http://www.ucapps.de/tmp/mios32_test_app_lcd_ssd1306_LPC1769.zip

 

The second interesting test: what happens, if only the second display is connected to the socket, and all others are removed.

IMPORTANT: power-off the core while removing the OLEDs!

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK.

Thats correct. The first 8 Displays are running normally if i initialize just 8 they all work correct. The problem occurs from 9-16 as soon as i initialize 16 Displays also the first 8 do not work correctly.

As you assume the displays change the characters after store, restore or re-power.

Yes i use sockets for the Displays and i can remove them. I also have the first 8 Displays on a single PCB and the second 8 Displays on a PCB that is connected with a 10pin Header to the first PCB.

 

i uploaded the mios32_test_app_lcd_ssd1306_LPC1769/project.hex and powered all 16 Displays. The first 8 now showed a MIOS32 Text and some Grafical Bars growing and shrinking. At least one Display was always dark but it was never the same after re-powering. Display 9-16 stay always dark.

 

Strange message after power-up

[75003.991] SSD1306 Demo started.
[75003.991] Configured LCD Parameters in MIOS32 Bootloader Info Range:
[75003.991] lcd_type: 0x85 (GLCD_SSD1306_ROTATED)
[75003.991] num_x:      16
[75003.991] num_y:       1
[75003.991] width:     128
[75003.991] height:     64
[75003.992] WARNING: your core module hasn't been configured for the SSD1306 GLCD!
[75003.992] Please do this with the bootloader update application!

Is seams to be configured as "GLCD_SSD1306_ROTATED" but it has this warning on line 7...

In the second test the Display #2 alone always stays dark. If i ad the Display#1 that one shows the MIOS32 and Graphical bars hopping fast... Display#2 stays dark...

I also measured the connections a 3 time. Its al as noted in the schematic.

 

Thanks for the Help!

best regards

novski

Edited by novski
Link to comment
Share on other sites

Thats correct. The first 8 Displays are running normally if i initialize just 8 they all work correct. The problem occurs from 9-16 as soon as i initialize 16 Displays also the first 8 do not work correctly.

 

This sounds like a power integrity issue, which could maybe be solved by adding 100n caps between some (or all) 3.3V and GND inputs of the OLEDs.

I would start with OLED 9: add a 100 nF cap there. Do you already notice a change with this measure?

If not: add also 100 nF caps to OLED 1, 5, (9), 13 (each fourth display) - any change?

 

 

The first 8 now showed a MIOS32 Text and some Grafical Bars growing and shrinking.

 

Each display should show the GLCD number.

The first one "SSD1306 #1", the second one "SSD1306 #2", etc...

Can you see this as well, or are the numbers changing?

 

 

s seams to be configured as "GLCD_SSD1306_ROTATED" but it has this warning on line 7...

 

I fixed the warning.

I wrote this test at a time where the ROTATED feature didn't exist.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK.

I made those Tests. And it all got better. But unfortunately not good. 

The hieroglyphs and Fast changing Displaynr. SSD1306 #1-64 are gone. It now pumps those graphs slowly up and down. And the Display numbers are fixed and correct. All seams good for about 30sek. Then randomly it spreads the Text as it wold miss every second pixel. Or a different issue (that doesn't accrue contemporaneous) the Content hops up to half of the screen and the top comes in again at the bottom like it wold roll over the edge and swaps in on the bottom again.. :-)

I Started with your suggestion to solder to every 4th a Cap then went on to every second, now i have soldered a 100n Cap to every Display. 1-16 Display 9-16 are dark as they always were.

post-10711-0-69519600-1383227859_thumb.jpost-10711-0-16965900-1383227890_thumb.j

https://www.dropbox.com/s/gj4u8a8o4oqhp19/2013-10-31%2007.36.24.jpg

https://www.dropbox.com/s/rxliw8hf98g84sy/2013-10-31%2007.35.42.jpg

I also see something strange. It seams to me as the luminosity changes. I always thought that OLEDs do not have different luminosity? Vd is constant 3.282-3.298V

I also can't figure out why the Displays 9-16 are total dark. It seams as those are not initialized but i tryed the non rotated version as well (16x1 - 0x84 -128x64 ) but it stays the same...

made the schematic how i now have it.. Link

 

Any Ideas?

 

best regards

novski

 
Link to comment
Share on other sites

The strange display behaviour could be related to corrupted data transmissions.

E.g. changes in the brightness, ghost pictures, missing pixels, etc. can happen when a command word isn't transferred correctly.

 

In order to check this, I compiled another test where the serial data (via D0/D1) is transferred slower than in the original configuration.

Please try it: http://www.ucapps.de/tmp/mios32_test_app_lcd_ssd1306_LPC1769__slow_serdata.zip

 

2) to displays 9-16: in order to find out, if this is related to the 74HC595 shift register which drives the CS lines, it would be interesting what happens if the displays are always selected. Means: remove the 74HC595 ( named "IC DISP-SEL" in your schematic) from the socket, and tie all CS lines (QA..QH) to ground.

Any change?

 

3) also to displays 9-16 (regardless if test 2 is passing): disconnect displays 1-8 if possible.

If not possible (you haven't mentioned yet, if the LCDs are plugged into sockets), remove IC2 from the socket, and tie QA..QH to 3.3V in order to ensure, that the CS lines are not activated

 

For each test it will be required that you power-off the core for at least 5 seconds.

This ensures, that all LCDs are starting with a fresh power-on reset

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK.

Thanks a lot for that help.

My Displays are al in sockets.

I just found a wrong net on my schematic. Its the connection between RES of Display 8 and RES of Display 9. This connection did not exist until now on my Prototype. I connected it to have a look if it wold change something, but unfortunately as soon as i connect RES of Display 1-8 with RES of Display 9-16 none of the Displays work.

I think this connection doesn’t have to be anyway. But i whanted to let you know about my fail drawing. The schematic is now corrected and Available under this link.

The low serial data test even made tha spreading of Text and Flipping over happen earlier. It now does that about 2 sek. after starting, sometimes immediately after repower.. bevor it was longer.

Second test of tying all IC-DISP_SEL selection lines QA-QH to ground didn’t show any changes. Disp 1-8 still flip and spread and 9-16 is dark. And this doesn’t change if i take out Disp. 1-8 by letting 9-16 remain tied to ground (by mentioning that they have a R220 Resistor between CS and GND/QA-QH)

I then tried to make some test that seamed logical to me, in this order:

I loaded the bootloader v1.13 and reduced the lcd_num_x to 8 Displays.

with the test - low_serdata app - no change = still flipping and spreading

with the test app (high_serdata) - no change

disconnected D1,D0, DC between Disp. 1-8 and Disp. 9-16 connections - Disp 1-8 work!

connect DC - Disp 1-8 work!

disconnect DC

connect D0 - Disp 1-8 flipp and spread again

disconnect D0

connect D1 - Disp 1-8 work!

connect DC with D1 - Disp 1-8 work!

load bootloader V1.13 and increase lcd_num_x to 16 Displays

install high serdata app - Disp 1-8 work!

connect D0 - Disp 1-8 flipp and spread again

so to me it seams D0 is the problem...

but then i swaped Display 9-16 with Display 1-8 and they stayed dark. ommg... but. also 9-16 stayed dark. soo,

changed Display #1 with #16 and 1-8 worked again. so this display seams to have a problem.

Tryed to place the problematic display on socket #7 made all 1-8 (& 9-16 anyway) stay dark.

Throwed it to the bash and took a new one. Tested it on socket #7 and left it there.

powerd all and had some displays obove 8 working beside 1-8 that worked always... but 9+ with some hieroglyphics on them.

Disp. 1-4 still flipp and spread

Disp. 5-8 are correct showing the right #

Disp. 9-11 are dark.

Disp. 12 has stars. (dots al over)

Disp. 13 has text SSD1306 #12

Disp. 14 has text SSD1306 #11

Disp. 15 is dark

Disp. 16 has text SSD1306 #9

swap displ 1-8 with 9-16

stays same as bevor.

Tryed to connect RES1-8 with RES9-16

stays same.

Tryed again to disconnect D0 between Disp.1-8 and Disp.9-16

Disp 1-8 work correct.

Disp 9-16 stay dark.

well its a step forward, but i don't know how to go further...

best regards

novski

Edit:

Reading my post i thaught it cold be interessting to see what happens if i tie the IC_Disp_Sel to ground as TK mentioned in the last post.

Without D0 Disp.1-8 are OK but 9-16 stay dark.

Disp.1-8 still flipp and Spread as soon as i connect D0.

With D0 connected

Disp.# 9 Shows the Demo but the SSD1306 #hops_throu1-64, same does

Disp.#11,13,14,16

Disp#10 is dark

Disp#12 still shows dots but now snowing (changing fast)

Disp#15 is dark

??? clueless...

Edited by novski
Link to comment
Share on other sites

Could you please doublecheck, that the BS0/BS1/BS2 jumpers are soldered to ground (0) and not to Vcc (1) for all displays?

If the jumper settings are incorrect at one or more displays, D0 will have a different function and would disturb other displays.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

But then the failure must go with the display if i swap it to a other place.

I swaped the displays now a third time from 1-8 to posistion 9-16 and from position 9-16 to 1-8.

In other words i took Display one and placed it to Socket 9 and so on till 16. Then i took the Display of Socket 9 and placed it to socket 1. 

and the Displays behave (show) the same... 

 

best regards,

novski

Link to comment
Share on other sites

Hm...

 

maybe it makes sense to talk about your layout. How are the D0/D1 (resp. SCLK/SDA) lines routed? 

 

If you haven't routed short connections between the displays, then this could explain the issues as well, especially your last test where the CS lines of display 9..16 are tied to ground.

 

Termination could help.

Here an interesting thread about this topic with many pictures and possible solutions:

 

Best Regards, Thorsten.

Link to comment
Share on other sites

My Layout is huge. There is a LPC17 Core with a MF_NG with 8 Faders. 32 Buttons, 8 Encoders with LED Matrix and the 8 OLEDs on one Board. 22cm Wide, 25cm Hight. Layouted in 10 mil. net width and 8 mil. distance from net to net. 

 

The distances between the displays are as short as possible. 

 

I now tried to Terminate the 3 lines D0/D1/DC with a R+C section. R=100Ohm C=2x56pf Paralell (112pf) as mentioned in the post you showed me. You write its better to hook that section against VDD as VSS. I tried both without any result. I still have the selection lines of Disp.1-8 on GND. I don't have a Osziloscope to look at those signals...

 

what R/C values wold you recommend? 

 

best regards

novski

Link to comment
Share on other sites

Wow - 10mil is pretty small!

Are you also using this width for the 3.3V and GND tracks?

 

If yes: solder a cable between a central GND and central 3.3V point to the Vs/Vd inputs of an OLED which currently doesn't work if CS is connected to ground, does this help?

If not: do the same for SDA and SCLK, solder the cables directly from pin P1.27 and P1.29

You could use wires from a ribble cable for this test.

 

 

what R/C values wold you recommend? 

 

you could try it without C, and with R=100 and R=220, maybe this works better (but without a scope it will be difficult to find out the best fitting values)

 

But it seems that we should more focus on your layout ;-)

 

Best Regards, Thorsten.

Link to comment
Share on other sites

All Supply Lines are 32mil.  :phone:

I soldered cables between all Pin 9 and all Pin10 to ensure its not the track with. no change

I soldered cables between P1.27/P1.29 to Pin 9/10. no change.

I tryed with a 100Ohm from SDA to ground. All Disp. dark.

I tryed with a 100Ohm from SCLK to ground. no change.

I tryed with a 220Ohm from SDA to Ground. All Disp. dark.

I tryed with a 220Ohm from SCLK to Ground. no change.

 

I can call a friend with a scope. I will maybe do that on Monday....

 

best regards

novski

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