Shop OBEX P1 Docs P2 Docs Learn Events
ILI9481B 3.5" 320 x 480 TFT LCD Display Spin Driver — Parallax Forums

ILI9481B 3.5" 320 x 480 TFT LCD Display Spin Driver

mikeologistmikeologist Posts: 337
edited 2017-11-21 07:08 in Propeller 1
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

Comments

  • Just took a look at your free-lancer project.

    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

  • Yea, I tried that service that they have with a "recruiter" was not pleased with the result. Sorry about that.
    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.
  • AleAle Posts: 2,363
    I did a driver for that display, alas in verilog :), it is not difficult, you only have to have the right delays after the reset pulse, if not the display controller ignores your commands :).
  • Ale wrote: »
    I did a driver for that display, alas in verilog :), it is not difficult, you only have to have the right delays after the reset pulse, if not the display controller ignores your commands :).

    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.
  • There is a ILI9341 SPI Driver listed in the OBEX site but I am not sure what the differences are between the two products.

    obex.parallax.com/object/723

  • JonM wrote: »
    There is a ILI9341 SPI Driver listed in the OBEX site but I am not sure what the differences are between the two products.

    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.
  • RaymanRayman Posts: 14,646
    edited 2017-11-21 18:24
    There have been a few examples of this kind of interface posted to the forum before...
    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?




  • Rayman wrote: »
    There have been a few examples of this kind of interface posted to the forum before...
    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
    updooted

    Thank you very much, Rayman.
    I will spend the next few days breaking down this logic.
    I will post my updates back here.

  • Rayman wrote: »
    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

    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
Sign In or Register to comment.