Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 19:04 17 May 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Multiple LCD panels on single Micromite

Author Message
CaptainBoing

Guru

Joined: 07/09/2016
Location: United Kingdom
Posts: 1994
Posted: 03:26am 07 Aug 2017
Copy link to clipboard 
Print this post

I have a requirement for driving two LCD panels from a single micromite (I need wide not big). I have no requirement for touch or gadgets on the screen, just display space. They will be mounted behind a piece of smoked perspex to hide the gap between the panels.

I have a proof of concept working here

The reset to both panels are pulled HI and the CS pins are handled in the code, not by MMBasic.

Keen to hear any comments/warnings.

 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3167
Posted: 04:29am 07 Aug 2017
Copy link to clipboard 
Print this post

Neat idea.
Geoff Graham - http://geoffg.net
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 06:37am 07 Aug 2017
Copy link to clipboard 
Print this post

Good idea.
I would use a single LS138 or use half of a LS139.
This will save one chip, which can be a lot on a PCB.
If you choose a LS139 you would be able to use maximum 4 LCD's and you still have the other half available to for instance connect 4 other SPI device like SD cards.
Edited by MicroBlocks 2017-08-08
Microblocks. Build with logic.
 
CaptainBoing

Guru

Joined: 07/09/2016
Location: United Kingdom
Posts: 1994
Posted: 07:25am 07 Aug 2017
Copy link to clipboard 
Print this post

yes a proper selector would reduce the chip count for the CS reverse mux... I was trying to do it from spare gates.

I was surprised how little aggro this gave me. It would be a degree more complex if you wanted touch input. I was thinking of using pages to handle the on-screen gadgets etc... will play with this later but for now I just need display space and this fits the bill.

I think it opens up a range of possibilities, the use of a single '154 would give 16 displays! It has to be one of the simplest solutions to a "display wall" yet! The bezel round the displays would get in the way a bit, but much less than old school


 
GoodToGo!

Senior Member

Joined: 23/04/2017
Location: Australia
Posts: 188
Posted: 03:13pm 07 Aug 2017
Copy link to clipboard 
Print this post

I like it!

...... Don't worry mate, it'll be GoodToGo!
 
Nathan
Regular Member

Joined: 10/01/2016
Location: Germany
Posts: 49
Posted: 03:05pm 22 Aug 2017
Copy link to clipboard 
Print this post

  CaptainBoing said   I have a requirement for driving two LCD panels from a single micromite (I need wide not big). I have no requirement for touch or gadgets on the screen, just display space. They will be mounted behind a piece of smoked perspex to hide the gap between the panels.

I have a proof of concept working here

The reset to both panels are pulled HI and the CS pins are handled in the code, not by MMBasic.

Keen to hear any comments/warnings.



Hi please take a look into the following folder:

Micromite_Firmware 5.04.05
Embedded C Modules\ST7735 LCD\Driver with Transparency

dispLoad.bas
dualDisplay.bas
dispDriverSPI_R0-pdf

there is an implementation for 28 and 44 pin available.

It supports ST7735 and ILI9341 up to two displays (mixture possible)

Nathan


 
CaptainBoing

Guru

Joined: 07/09/2016
Location: United Kingdom
Posts: 1994
Posted: 11:05pm 22 Aug 2017
Copy link to clipboard 
Print this post

Thanks Nathan - that is really interesting. I hadn't seen it before as I was still using 5.04.04 documentation so the embedded C modules weren't there - downloaded x.x.05 from Geoff's site.

Interested to see that the 7735 driver will work with the 9341 with a connection tweak.

Will play

cheers
 
Nathan
Regular Member

Joined: 10/01/2016
Location: Germany
Posts: 49
Posted: 09:27am 23 Aug 2017
Copy link to clipboard 
Print this post

  CaptainBoing said  

Interested to see that the 7735 driver will work with the 9341 with a connection tweak.



Hi,

it is a little bit more komplex.
Both displays requires different initialization sequences and
interface handling. Also the display size is different so
during switching between the displays some additional things have
to be done. The driver is doing it under the hood.

The driver has also an C-API so that the maintenance/support function
can call the main driver. So you can include only the C-Functions,
which are required for your program.

required:
main driver is: dispDriverSPI_SI (dispLoad.bas -> instructions in the file)

on demand:
c-api functions are:
description in --> dualDisplay.bas
dSetDisplay(num) 0,1 to select the display
dSetOri(num) 1,2,3,4 to set orientation (text rotate for example)

description in --> move.bas
dCopyVRam2Array( array,x,y,width,heigth) copy area of tft into array
dCopyArray2VRamXY( array,x,y) copy array data at screen positio
dSetSyncMagicNum(num) only ili9341 sync output do reduce flicker
dRestoreCopyDrawArea(rem mode=0, sourceArray, backupArray, x, y, sync=0,1)
restore old background ->
save new background at x,y ->
draw new source Array at x,y(if valid)
dCopyArray2VRam(array,sync) copy the background array back
dSetOri(num) look at dualDisplay.bas

I have some more functions, which I did not opened, yet.
dDefineWriteRegion(x1,y1,x2,y2) set drawing window
dWriteRGB2VRAM(bitMapRGBarray,bitMapLength) write rgb data to screen
dSyncXY(x,y) sync to screen ili9341 only

Nathan
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024