Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 05:02 04 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 : ILI9481 IPS on PicoMite

     Page 2 of 4    
Author Message
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 10:58pm 27 Jun 2022
Copy link to clipboard 
Print this post

  bigmik said  GDay All,


It doesn't seem to have the MISO problem as I can successfully do a GUI CALIBRATE with the MISO pin connected,


Mick,
The pictures you have posted show the MISO for the LCD snipped off. If you do have the MISO available we can attempt to read the ID via SPI. This will show whether you can communicate with the chip or not. If you can read the ID then it might just be configuration. If you get &HFF back then you don't have successful SPI communications.
Latest F4 Latest H7
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 1793
Posted: 12:08am 28 Jun 2022
Copy link to clipboard 
Print this post

"The pictures you have posted show the MISO for the LCD snipped off"

If that is how the supplier sent it then it suggests they may have the same issue as the ILI9488. As a precaution for testing solder a 680? to the top side of that pin and bend the other leg around to go in the socket. A more permanent fix is to cut the track going to that pin and solder a very small SMD resistor across the gap, though replacing the cut pin will be a bit tricky.

From the manual page 36 near the bottom.

"ILI9488/86 (connect MISO with a 680? series resistor as the controller does not tri-state its output properly)"
.
Edited 2022-06-28 10:32 by phil99
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 12:34am 28 Jun 2022
Copy link to clipboard 
Print this post

Hi Phil,

Yes they are (the ILI9488 needs it) but for the test I referenced above I soldered a wire to reinstate the MISO to the TFT.

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 12:59am 28 Jun 2022
Copy link to clipboard 
Print this post

Hi All,

@Lizby,
MISO (master input, Slave Output) goes to both the touch pins and the tft pins, removing the pin as I did only removed MISO from the TFT pins, the touch still has MISO else it couldn’t communicate touch data back to the CPU, for the test I did I rejoined the MISO line to the tft (wire from the tft to the pcb it is fitted to)

@Gerry,
I am happy to do the test read the requested data if you can provide some sample code (you know I am pretty lame at programming) and also should I have an LCD PANEL option set or not set to run the code?

I have been working In Conjunction with another ‘shedder, on a new design pico product that I will share details of on TBS soon. I found a few minor problems with both boards it is a 50mm x 50mm pcb for TFT use with a plug in daughter board 20mm x 50mm if you want to use it as a vga/PS2 board. This makes a VERY small footprint for a mini VGA pico PC. Also I have been using my CNC to cut fascia panels out of blank wall plates (same size as light switches) to house my new board to be the home unit for a weather station.

News on these will be posted soon, the boards were mainly to be for the other ‘shedder and mine use but will be available on request if there is any interest.
Once I finalise the cnc files I will also post them for others who might want the same. BTW the cnc is for the 3.5” ILI948x displays hence why I tried the display in question in this thread.

The Pico Pi has sparked my interest in mites again as they are cheaper and more readily available than the MX170 plus it already has USB and 5V to 3v3 power supplies

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 03:14am 28 Jun 2022
Copy link to clipboard 
Print this post

Hi Mick,
Here is my results from the code below. You need to set the configuration section to match your wiring. Then do an
OPTION RESET so nothing is configured.

This is a good ILI9341.
Note: ID is not all 0s and not all FF and TEMP from touch has values.
This shows we are communicating with the chips.

Hard Reset
Send NOP
Soft Reset
ID &H04 HEX
0
0
0
7F

TEST TOUCH CHIP
Read TEMP1
907
Read TEMP2
1072

This is a display like yours that works but touch is BAD
Note: ID is not all 0s and not all FF but TEMP from touch is 0.

Hard Reset
Send NOP
Soft Reset
ID &H04 HEX
2A
40
33
0

TEST TOUCH CHIP
Read TEMP1
0
Read TEMP2
0


This is a display like yours where screen does not work but touch is GOOD
Note: ID is all FFs  but TEMP from touch has values


Hard Reset
Send NOP
Soft Reset
ID &H04 HEX
FF
FF
FF
FF

TEST TOUCH CHIP
Read TEMP1
864
Read TEMP2
1024

This is a result when I tried with an SPI that does not match my wiring

Hard Reset
Send NOP
Soft Reset
ID &H04 HEX
0
0
0
0

TEST TOUCH CHIP
Read TEMP1
0
Read TEMP2
0

  Quote  '================================================================================================
' Set the #DEFINE to get the corrected target for MMCC
'================================================================================================
'target port\com14:115200 s\pico 



DIM INTEGER SPITX,SPIRX,SPICLK,LCD_CS,LCD_DC,LCD_RST,T_IRQ,T_CS,SD_CS
DIM rdata(15AS INTEGER
DIM sdata(15AS INTEGER
DIM RDID1 AS INTEGER :RDID1=&HDA
DIM RDID2 AS INTEGER :RDID2=&HDB 
DIM RDID3 AS INTEGER :RDID1=&HDC
DIM RDID4 AS INTEGER :RDID2=&HDD   

DIM CMD_MEASURE_X AS INTEGER:CMD_MEASURE_X=&B10010000
DIM CMD_MEASURE_Y AS INTEGER:CMD_MEASURE_Y=&B11010000
DIM CMD_PENIRQ_ON AS INTEGER:CMD_PENIRQ_ON=&B10010000 
DIM CMD_VBAT AS INTEGER:CMD_VOLTAGE=&B10100111
DIM CMD_TEMP1 AS INTEGER:CMD_TEMP1=&B10000111 
DIM CMD_TEMP2 AS INTEGER:CMD_TEMP2=&B11110111
DIM INTEGER DOTOUCH ,MYSPI   

'---------------------------------------------------------
' !!!!!!!!! Set configuration here !!!!!!!!!!!!!!!!!!!!!!!!
' Needs to match your wiring
' Also set SPI=2 if you are using pins for SPI2
'----------------------------------------------------------
''MY CONFIGURATION
'LCD_DC=MM.INFO(PINNO GP18)
'LCD_RST=MM.INFO(PINNO GP17)
'LCD_CS=MM.INFO(PINNO GP16)
'SD_CS=MM.INFO(PINNO GP5)
'T_CS=MM.INFO(PINNO GP19)
'T_IRQ=MM.INFO(PINNO GP22)
'
'MYSPI=1   '2 id using spi2 pins
'SPITX=MM.INFO(PINNO GP3)
'SPIRX=MM.INFO(PINNO GP2)
'SPICLK=MM.INFO(PINNO GP4)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'----------------------------------------------------------
'MICKS CONFIGURATION
LCD_DC=MM.INFO(PINNO GP15)
LCD_RST=MM.INFO(PINNO GP14)
LCD_CS=MM.INFO(PINNO GP13)
SD_CS=MM.INFO(PINNO GP5)
T_CS=MM.INFO(PINNO GP19)
T_IRQ=MM.INFO(PINNO GP22)

MYSPI=
2   '2 id using spi2 pins
SPITX=MM.INFO(PINNO GP11)
SPIRX=MM.INFO(PINNO GP12)
SPICLK=MM.INFO(PINNO GP10)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''


'Set all pins to initial state
SETPIN LCD_CS,DOUT:PIN(LCD_CS)=1
SETPIN LCD_RST,DOUT:PIN(LCD_RST)=1
SETPIN LCD_DC,DOUT:PIN(LCD_DC)=1

SETPIN SD_CS,DOUT:PIN(SD_CS)=1
SETPIN T_CS,DOUT:PIN(T_CS)=1

'Set up interupt routine to handle touch
DOTOUCH=
0
SETPIN T_IRQ,INTL,touchdown,PULLUP




IF MYSPI=1 THEN
  
SETPIN SPIRX,SPITX,SPICLK,SPI
  
SPI OPEN 1000,0,8
  
PIN(LCD_CS)=0
  ? 
"Hard Reset"
  
PIN(LCD_RST)=0:PAUSE 20
  
PIN(LCD_RST)=1:PAUSE 150

  ? 
"Send NOP"
  
PIN(LCD_DC)=0
  junk = 
SPI(&H00)
  
PIN(LCD_DC)=1
  
PIN(LCD_CS)=1
  
PAUSE 200

  ? 
"Soft Reset"
  
PIN(LCD_DC)=0
  junk = 
SPI(&H01)
  
PIN(LCD_DC)=1
  
PIN(LCD_CS)=1
  
PAUSE 200


  ? 
"ID &H04 HEX"
  
PIN(LCD_CS)=0
  
PIN(LCD_DC)=0
  junk = 
SPI(&H04)
  
PIN(LCD_DC)=1
  ? 
HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0))
  junk=
SPI(0):junk=SPI(0)
  
PIN(LCD_CS)=1
  ?

  ? 
"TEST TOUCH CHIP
  ? 
"Read TEMP1"
  
PIN(T_CS)=0
  junk = 
SPI(CMD_TEMP1)
  
PAUSE 2
  byte1=
SPI(0)
  byte2=
SPI(0)
  temp1 = (byte1 
AND &B1111111) << 5   '         // the top 7 bits
  temp1 = temp1 
OR ((byte2 >> 3AND &B11111)
  
'temp1=byte1<<8 OR byte2
  ? temp1

  
'? hex$(SPI(0)):? hex$(SPI(0)):? hex$(SPI(0)):? hex$(SPI(0))
  
PIN(T_CS)=1
  
PAUSE 200

  ? 
"Read TEMP2"
  
PIN(T_CS)=0
  junk = 
SPI(CMD_TEMP2)
  
PAUSE 2
  byte1=
SPI(0)
  byte2=
SPI(0)
  temp2 = (byte1 
AND &B1111111) << 5   '         // the top 7 bits
  temp2 = temp2 
OR ((byte2 >> 3AND &B11111)
  
'temp2=byte1<<8 OR byte2
  
'temp2=temp2>>3
  ? temp2
  
SPI CLOSE

ELSE
  
SETPIN SPIRX,SPITX,SPICLK,SPI2
  SPI2 
OPEN 1000,0,8
  
PIN(LCD_CS)=0
  ? 
"Hard Reset"
  
PIN(LCD_RST)=0:PAUSE 20
  
PIN(LCD_RST)=1:PAUSE 150

  ? 
"Send NOP"
  
PIN(LCD_DC)=0
  junk = SPI2(&H00)
  
PIN(LCD_DC)=1
  
PIN(LCD_CS)=1
  
PAUSE 200

  ? 
"Soft Reset"
  
PIN(LCD_DC)=0
  junk = SPI2(&H01)
  
PIN(LCD_DC)=1
  
PIN(LCD_CS)=1
  
PAUSE 200


  ? 
"ID &H04 HEX"
  
PIN(LCD_CS)=0
  
PIN(LCD_DC)=0
  junk = SPI2(&H04)
  
PIN(LCD_DC)=1
  ? 
HEX$(SPI2(0)):? HEX$(SPI2(0)):? HEX$(SPI2(0)):? HEX$(SPI2(0))
  junk=spi2(
0):junk=spi2(0)
  
PIN(LCD_CS)=1
  ?

  ? 
"TEST TOUCH CHIP
  ? 
"Read TEMP1"
  
PIN(T_CS)=0
  junk = SPI2(CMD_TEMP1)
  
PAUSE 2
  byte1=SPI2(
0)
  byte2=SPI2(
0)
  temp1 = (byte1 
AND &B1111111) << 5   '         // the top 7 bits
  temp1 = temp1 
OR ((byte2 >> 3AND &B11111)
  
'temp1=byte1<<8 OR byte2
  ? temp1

  
'? hex$(SPI(0)):? hex$(SPI(0)):? hex$(SPI(0)):? hex$(SPI(0))
  
PIN(T_CS)=1
  
PAUSE 200

  ? 
"Read TEMP2"
  
PIN(T_CS)=0
  junk = SPI2(CMD_TEMP2)
  
PAUSE 2
  byte1=SPI2(
0)
  byte2=SPI2(
0)
  temp2 = (byte1 
AND &B1111111) << 5   '         // the top 7 bits
  temp2 = temp2 
OR ((byte2 >> 3AND &B11111)
  
'temp2=byte1<<8 OR byte2
  
'temp2=temp2>>3
  ? temp2
  SPI2 
CLOSE
ENDIF



'DOTOUCH=1
'do:pause 100:loop
END

SUB TOUCHDOWN
 
IF DOTOUCH THEN
  DOTOUCH=
0
  ? 
"GOT TOUCH"
  
SETPIN SPIRX,SPITX,SPICLK,SPI
  
IF SPI=1 THEN
    
SPI OPEN 1000,0,8
    junk = 
SPI(&H00)
    
PIN(T_CS)=0
    junk = 
SPI(CMD_MEASURE_X)
    byte1=
SPI(0)
    byte2=
SPI(0)
  
ELSE
    SPI2 
OPEN 1000,0,8
    junk = SPI2(&H00)
    
PIN(T_CS)=0
    junk = SPI2(CMD_MEASURE_X)
    byte1=SPI2(
0)
    byte2=SPI2(
0)
  
ENDIF
  
  
PIN(T_CS)=1
  Tvalx = (byte1 
AND &B1111111) << 5   '         // the top 7 bits
  Tvalx = Tvalx 
OR ((byte2 >> 3AND &B11111)    '  // the bottom 5 bits
  ? 
"X=",Tvalx
  
  
PIN(T_CS)=0
  
IF SPI=1 THEN
    junk = 
SPI(CMD_MEASURE_Y)
    byte3=
SPI(0)
    byte4=
SPI(0)
  
ELSE
    junk = SPI2(CMD_MEASURE_Y)
    byte3=SPI2(
0)
    byte4=SPI2(
0)
  
ENDIF
  
PIN(T_CS)=1
  Tvaly = (byte3 
AND &B1111111) << 5   '         // the top 7 bits
  Tvaly = Tvaly 
OR ((byte4 >> 3AND &B11111)    '  // the bottom 5 bits
  ? 
"Y=",Tvaly
  
  
IF SPI=1 THEN 
   
SPI CLOSE
  
ELSE
   SPI2 
CLOSE
  
ENDIF  
  
   
PAUSE 500
   DOTOUCH=
1
 
END IF
END SUB

END

Latest F4 Latest H7
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 01:46am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi All,

@Gerry,

Thank you for that quite extensive program.

I ran it on my ILI9341 to see if I get the same result as you but It (from my understanding) fails the TFT chip read test

This is the result I get with an ILI9341 (I tried two different ones a 2.8" and a 3.2")

> RUN
Hard Reset
Send NOP
Soft Reset
ID &H04 HEX
0
0
0
0

TEST TOUCH CHIP
Read TEMP1
845
Read TEMP2
995
>


I changed the configuration for my setup as follows:

'MICKS CONFIGURATION
LCD_DC=MM.INFO(PINNO GP15)
LCD_RST=MM.INFO(PINNO GP14)
LCD_CS=MM.INFO(PINNO GP13)
SD_CS=MM.INFO(PINNO GP22)
T_CS=MM.INFO(PINNO GP12)
T_IRQ=MM.INFO(PINNO GP11)

MYSPI=1   '2 id using spi2 pins
SPITX=MM.INFO(PINNO GP19)
SPIRX=MM.INFO(PINNO GP16)
SPICLK=MM.INFO(PINNO GP18)


I have checked and triple checked I think I set all of the PINNO correctly. This is the list of the Pin Allocation on my PCB. Note My allocations are in Dark Blue




The Result with the ILI9488 returned a very similar result, the only difference was the TEMP values which were close but a few numbers off

I think the RESET/ID &H04 HEX should not return all 0 for all four positions

Is there some other setting I need to make in your code?

Kind Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 03:07am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi Mick,
Looks like it talks to the TOUCH OK as it can read the temperature.
Did you have MISO from the display connected.

Your config seems to match your wiring.
I have added a couple more reads below, just put them after the read of the ID.

I would first concentrate of getting the ILI9341 to return some values other than 0 to fully prove your wiring. This display works? so just make sure it can be read i.e. MISO is OK. I suspect it wont successfully do a BLIT.

If you can get it to read then try the ILI9488/ILI9481

This is what I get on an ILI9341 with the extra reads.

Hard Reset
Send NOP
Soft Reset
Sleep out
ID &H04 HEX
0
0
0
7F

ID &H09 HEX -Display Status
0
30
80
0

ID &H0A HEX -Display POWER Mode
8
FF
FF
FF

ID &H0F HEX -Display Self Diagnosis
0
FF
FF
FF

TEST TOUCH CHIP
Read TEMP1
841
Read TEMP2
987
>





  Quote    ? "ID &H09 HEX -Display Status
  
PIN(LCD_CS)=0
  
PIN(LCD_DC)=0
  junk = 
SPI(&H09)
  
PIN(LCD_DC)=1
  ? 
HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0))
  junk=
SPI(0):junk=SPI(0)
  
PIN(LCD_CS)=1
  ?
  
PAUSE 1000
 ? 
"ID &H0A HEX -Display POWER Mode
  
PIN(LCD_CS)=0
  
PIN(LCD_DC)=0
  junk = 
SPI(&H0A)
  
PIN(LCD_DC)=1
  ? 
HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0))
  junk=
SPI(0):junk=SPI(0)
  
PIN(LCD_CS)=1
  ?
  
PAUSE 1000 
  
  ? 
"ID &H0F HEX -Display Self Diagnosis"
  
PIN(LCD_CS)=0
  
PIN(LCD_DC)=0
  junk = 
SPI(&H0F)
  
PIN(LCD_DC)=1
  ? 
HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0))
  junk=
SPI(0):junk=SPI(0)
  
PIN(LCD_CS)=1
  ?
  
PAUSE 1000


P.S. I also added this after the soft reset, should not make a difference but is where the sleep out message is coming from.


  Quote  "Sleep out"
  
PIN(LCD_DC)=0
  junk = 
SPI(&H11)
  
PIN(LCD_DC)=1
  
PIN(LCD_CS)=1
  
PAUSE 200

Edited 2022-06-29 13:10 by disco4now
Latest F4 Latest H7
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 1793
Posted: 05:16am 29 Jun 2022
Copy link to clipboard 
Print this post

Another way to test display MISO

> pixel 1,1, rgb(blue) : ? pixel(1,1)
254
>
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 05:56am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi All,

I buzzed out Miso and it is indeed connected through to Pico pin21 (GP16)
@Gerry,
I have added those 2 chunks of code and this is the output on my ILI9341 display (yes with MISO connected)

run
Hard Reset
Send NOP
Soft Reset
Sleep out
ID &H04 HEX
0
0
0
0

ID &H09 HEX -Display Status
0
30
80
0

ID &H0A HEX -Display POWER Mode
8
0
0
0

ID &H0F HEX -Display Self Diagnosis
0
0
0
0

TEST TOUCH CHIP
Read TEMP1
758
Read TEMP2
910
>


I removed the display and ran the program and it has a lot of FF and other stuff so I assume then the data must be at least partially valid.

This is with NO display fitted

run
Hard Reset
Send NOP
Soft Reset
Sleep out
ID &H04 HEX
0
0
0
0

ID &H09 HEX -Display Status
0
0
0
0

ID &H0A HEX -Display POWER Mode
0
0
0
0

ID &H0F HEX -Display Self Diagnosis
0
0
0
0

TEST TOUCH CHIP
Read TEMP1
0
Read TEMP2
0
>


@Phil99,
I will try that and see what happens.

Kind Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 06:03am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi Phil99, All,

  phil99 said  Another way to test display MISO

> pixel 1,1, rgb(blue) : ? pixel(1,1)
254
>


I had to reconfigure for the System SPI and all of the display options but this is what I received doing your test on my ILI9341

>  pixel 1,1, rgb(blue) : ? pixel(1,1)
252
>  pixel 1,1, rgb(red) : ? pixel(1,1)
16515072
>


I also tried RGB(RED)

Now I assume this means that the chip can be read? but your example showed a result of 254 mine returned 252

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 06:17am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi All,

@Phil,
I tried to be smart, and set the LCD PANEL to the ILI9841 option and I get this error after running your test line.

These tests were done with the ILI9481 display and MISO connected

>  pixel 1,1, rgb(blue) : ? pixel(1,1)
Error : Invalid on this display
>


When I set it for the ILI9488 display driver it ran the test but returned a large Number 65xxxx or similar)

Anyway I will await and see what Gerry finds in the data I sent in the previous post.

I think we have proved that I can read the TFT with the ILI9341 at least.

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 06:33am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi Mick,
Looks good for the ILI9341. Looks like the ID is just not programed in. The results you get other than that match mine.

So what happens when you swap to the suspect display.

Gerry
Latest F4 Latest H7
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 06:49am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi Gerry,

This is what I get with MISO connected and option list cleared with the ILI9481 display

> option list
> RUN
Hard Reset
Send NOP
Soft Reset
Sleep out
ID &H04 HEX
0
0
0
0

ID &H09 HEX -Display Status
0
0
0
0

ID &H0A HEX -Display POWER Mode
8
0
0
0

ID &H0F HEX -Display Self Diagnosis
0
0
0
0

TEST TOUCH CHIP
Read TEMP1
836
Read TEMP2
984
>


I will check a few more ILI9341 displays I bought from other times if I can find any and check the ID on them I think you got 7a or 7F on the last read of your ID

Regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 1793
Posted: 06:52am 29 Jun 2022
Copy link to clipboard 
Print this post

"These tests were done with the ILI9481 display and MISO connected

>  pixel 1,1, rgb(blue) : ? pixel(1,1)
Error : Invalid on this display
>"

I guess that currently the ILI948x display driver does not support MISO for the ILI9481. I guess you will have to wait till Peter receives his and has a play. Perhaps he can find a way to adapt the driver to cover the ILI9481.

Re the pixel read back, any value other than 16777215 or 0 would indicate MISO is working, I think. Small differences might be due to the way 24 bits gets mapped to 16 bits for the display and back again?

16777215 =  24 bit white
0 = black
Edited 2022-06-29 17:00 by phil99
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 07:29am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi All,

@Phil,
I think you are correct in assuming the current ILI9481 driver doesnt support MISO hence the error message.

@Gerry,
I have 3 ILI9341 displays, 2 older 2.8" types both with Touch chips but one had a broken touch screen that I have removed, and a brand new 3.2".
I also had an ancient 2.4" that was in an old water tank using the ultrasonic sensors but in typical mick style soldered directly to the BackPack board and hot glued into the box. That I have had to rip apart and desolder the pins to test the display.

ALL 4 displays seem to show the exact same readings and none show the ID (they are all 0)

I think we have confirmed that MISO is connected and working we just need to wait for Peter to get a driver going if he can.

I do have a second display I guess I should tear its baggie open and try it.
I will shoot myself if that works.

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 07:32am 29 Jun 2022
Copy link to clipboard 
Print this post

Mick

Please try the attached using driver ILI9481N


PicoMite.zip

Option syntax same as everything else
 
disco4now

Guru

Joined: 18/12/2014
Location: Australia
Posts: 844
Posted: 07:37am 29 Jun 2022
Copy link to clipboard 
Print this post

This should return the ID for an ILI9481 according to the data sheet.


  Quote    ? "ID &HBF HEX"
  
PIN(LCD_CS)=0
  
PIN(LCD_DC)=0
  junk = 
SPI(&HBF)
  
PIN(LCD_DC)=1
  ? 
HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0)):? HEX$(SPI(0))
  junk=
SPI(0):junk=SPI(0)
  
PIN(LCD_CS)=1
  ?

Latest F4 Latest H7
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 07:54am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi Peter,

Thanks for trying that but I am Sorry to say there is no change.

Here is my OPTION LIST

> option list
OPTION SYSTEM SPI GP18,GP19,GP16
OPTION LCDPANEL ILI9481N, PORTRAIT,GP15,GP14,GP13,GP20
OPTION TOUCH GP12,GP11
GUI CALIBRATE 1, 3441, 3568, -973, -1515
OPTION SDCARD GP22
>


I will open the other module that I was trying to keep sealed just in case

Regards,

Mick

PS.

I just tried the other screen and the same result. Of course they may NOT even be ILI9481 knowing some of these `err' lets say third world suppliers. Once again the Gui Calibrate can be performed blind.

I still have MISO connected on the NEW display do you need that removed from the TFT to try your new code?

After loading that version this is the version I get displayed

> ? mm.ver
5.070512
>

Kind regards,

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 08:38am 29 Jun 2022
Copy link to clipboard 
Print this post

Mick

The new driver uses the standard ili9481 initialisation but communicated using normal SPI (like the ILI9341). The previouse ILI9481 driver used special communication as the display (like the Waveshare 3.5") is wired parallel but with shift register chips to convert the parallel to serial. Can you find anywhere on the web that gives the initialisation sequence for your display? If you can I can incorporate it into the driver.
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2870
Posted: 08:47am 29 Jun 2022
Copy link to clipboard 
Print this post

Hi Peter,

I will look and try to contact the seller about the init sequence or data sheet.

Fingers crossed

Mick
Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
     Page 2 of 4    
Print this page
© JAQ Software 2024