ILI9481B 3.5" 320 x 480 TFT LCD Display Spin Driver
mikeologist
Posts: 337
I was looking to set up a freelance project for the development of a driver for the ILI9481B 3.5" 320 x 480 TFT LCD Display.
I have a pro I'm talking to for an asm version, but I'm preparing my own in spin as a self teaching exercise.
I will post the work on my spin version below.
Perhaps with some guidance I can put together something neat to share on obex
I have a pro I'm talking to for an asm version, but I'm preparing my own in spin as a self teaching exercise.
I will post the work on my spin version below.
Perhaps with some guidance I can put together something neat to share on obex
Comments
You mention PICs and Arduinos and whatever, but no mention of the Propeller and Parallax, to me this sounds quite confusing.
What exactly are you asking for?
Mike
I'll post a better request and redo the project description, but basically I need a driver for this display that runs 8-bit parallel directly from the propeller. All the posts that I've found are for smaller displays, displays with touch, or are written in conjunction with a serial ram driver.
I'm trying to make one in spin myself. I'm also talking to a pro about making one in asm.
I'm going to post my work here tomorrow after I put in a few more hours. Perhaps you'd be kind enough to provide some feedback. I read the entire datasheet and translated all the commands and notes in an effort to understand them better.
My startup sequence is fubar, but I think my functions are starting to look good.
obex.parallax.com/object/723
I sure appreciate that. I've looked through this before. The problem I have is that it's SPI and I need parallel. It also has ram and touch mixed in.
Thank you for linking it though.
I've attached my beginning of an attempt for a parallel interface in spin.
It needs a lot of work but I hope it demonstrates that I'm willing to read and work and that it's worth helping out with so everyone can have it.
I've done a couple...
I did a lot with one, think chip was ILI9325.
Think I did an 8-bit bus with 16-bit color for the drivers on this page:
http://www.rayslogic.com/propeller/Products/PSM/Files.htm
PSM Text Demo might be something to look at
There's code for a similar, but tiny LCD here:
http://www.rayslogic.com/propeller/Products/PKS/PKS.htm
Maybe you can adapt one of these?
Thank you very much, Rayman.
I will spend the next few days breaking down this logic.
I will post my updates back here.
I extracted this from your PSM_TV_Text and over-commented it to try to understand it.
Did I get it right?
What about the three middle lines?
DAT WriteCmdSub
' "or" a mask to turn specific pins and leave the other values unchanged
or outa, CS_mask1 ' raise chip select to begin communication series
or outa, DC_mask1 ' raise data / command *must also be high to begin write sequence
or outa, WR_mask1 ' raise write *must also be high to begin write sequence
or outa, RD_mask1 ' raise read *must also be high to begin write sequence
and outa, DC_mask0 ' lower dc to signify a command
and outa, CS_mask0 ' lower chip select to begin write
and outa, bytemask0
and outa, WR_mask0
or outa, WR_mask1
rev CommandData,#0 ' something with lower half of command
shr CommandData,#16 ' something with upper half of command
and CommandData, bytemask1 ' tack on cammand pin status
or outa, CommandData ' load cammand onto bus, leave cammand pins as is
and outa, WR_mask0 ' lower write, preparing display to read
or outa, WR_mask1 ' raise write, causing display to read on rising edge
or outa, DC_mask1 ' raise data / command
or outa, CS_mask1 ' raise chip select to end communication series
WriteCmdSub_Ret
RET ' return to previous function