Raspberry Pi a LCD-TFT HY28A

fahacz

Raspberry Pi a LCD-TFT HY28A
« kdy: 12. 03. 2014, 21:23:03 »
Zdravim, snazim se rozbehnout LCD HY28A s Raspberry, zadratoval jsem GPIO s LCD dohromady, prakticky se drzim tohoto postupu, http://www.raspberrypirobot.com/tft-lcd-display-2-8-touch-screen-320x240-hy28a .

Dotykova vrstva zda-se funguje OK, pomoci evtest se mi vraceji hodnoty, ale displej po celou dobu sviti bile, mel jsem podezreni, ze jsem neco spatne zapojil kolem SPI, ale overil jsem znovu a promeril merakem a zda se to v poradku.

Zkusim nahodit x server, ale bez efektu, tedy spusti se, bezi, ale LCD stale komplet bile, porad chci verit, ze je problem nekde v dratech, netusite jak dlouha muze byt SPI sbernice, mam tu plochy "IDE" kabel cca 40cm neni to prilis?

Kód: [Vybrat]
FRAMEBUFFER=/dev/fb1 startx -- -dpi 60

# fbset -fb /dev/fb1
mode "320x240"
    geometry 320 240 320 240 16
    timings 0 0 0 0 0 0 0
    nonstd 1
    rgba 5/11,6/5,5/0,0/0
endmode

Netusite kde by mohl byt chybka?

dmesg:

Kód: [Vybrat]
[    5.343707] bcm2708_spi bcm2708_spi.0: SPI Controller at 0x20204000 (irq 80)
[    5.434131] bcm2708_spi bcm2708_spi.0: SPI Controller running in dma mode
[    6.275450] bcm2708-i2s bcm2708-i2s.0: Failed to create debugfs directory
[    9.409600] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    9.861778] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   10.761211] fbtft_device:  SPI devices registered:
[   10.768123] fbtft_device:      spidev spi0.0 500kHz 8 bits mode=0x00
[   10.776362] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
[   10.784453] fbtft_device:  'fb' Platform devices registered:
[   10.791773] fbtft_device:      bcm2708_fb id=-1 pdata? no
[   10.798874] fbtft_device: Deleting spi0.0
[   10.807411] fbtft_device:  GPIOS used by 'hy28a':
[   10.822635] fbtft_device:    'reset' = GPIO25
[   10.828717] fbtft_device:    'led' = GPIO18
[   10.843993] fbtft_device:  SPI devices registered:
[   10.850501] fbtft_device:      spidev spi0.1 500kHz 8 bits mode=0x00
[   10.858579] fbtft_device:      fb_ili9320 spi0.0 500kHz 8 bits mode=0x03
[   11.018635]
[   11.018635]
[   11.018635] ads7846_device: ads7846_device_init()
[   11.042559] ads7846_device: SPI devices registered:
[   11.049001] ads7846_device:    spidev spi0.1 500kHz 8 bits mode=0x00
[   11.072505] ads7846_device:    fb_ili9320 spi0.0 500kHz 8 bits mode=0x03
[   11.080678] ads7846_device:
[   11.102482] ads7846_device: Settings:
[   11.107563] ads7846_device:   model = 7846
[   11.122558] ads7846_device:   gpio_pendown = 17
[   11.128521] ads7846_device:   swap_xy = 1
[   11.140916] ads7846_device:   x_min = 230
[   11.150596] ads7846_device:   x_max = 3850
[   11.162650] ads7846_device:   y_min = 190
[   11.168005] ads7846_device:   y_max = 3850
[   11.173525] fb_ili9320 spi0.0: Unrecognized Device code: 0xFFFF (expected 0x9320)
[   11.183623] ads7846_device:   x_plate_ohms = 100
[   11.189521] ads7846_device:   pressure_min = 0
[   11.197008] ads7846_device:   pressure_max = 255
[   11.203170] ads7846_device:   keep_vref_on = 1
[   11.208941] ads7846_device:   vref_delay_usecs = 0
[   11.215129] ads7846_device:   vref_mv = 0
[   11.220429] ads7846_device:   settle_delay_usecs = 0
[   11.226709] ads7846_device:   penirq_recheck_delay_usecs = 0
[   11.233678] ads7846_device:   y_plate_ohms = 0
[   11.239375] ads7846_device:   debounce_max = 0
[   11.245117] ads7846_device:   debounce_tol = 0
[   11.250814] ads7846_device:   debounce_rep = 0
[   11.256551] ads7846_device: Deleting spi0.1
[   11.266716] ads7846_device: SPI devices registered:
[   11.282765] ads7846_device:    fb_ili9320 spi0.0 500kHz 8 bits mode=0x03
[   11.290694] ads7846_device:    ads7846 spi0.1 2000kHz 8 bits mode=0x00
[   11.312579] ads7846_device:
[   14.618577] graphics fb1: fb_ili9320 frame buffer, 320x240, 150 KiB video memory, 4 KiB DMA buffer memory, fps=50, spi0.0 at 0 MHz
[   14.660979] ads7846 spi0.1: touchscreen, irq 187
[   14.708134] input: ADS7846 Touchscreen as /devices/platform/bcm2708_spi.0/spi_master/spi0/spi0.1/input/input0
« Poslední změna: 12. 03. 2014, 22:16:26 od Petr Krčmář »


r23

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #1 kdy: 13. 03. 2014, 07:47:13 »
40 cm je dost. Jak rychle to běží?
Chtělo by to osciloskop, jak to vypadá. Případně by mohlo pomoci dát na dráty do série odpory, 30-50 ohm. Ale je to vaření z vody. Já na dlouhé SPI používám lvds.

fahacz

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #2 kdy: 13. 03. 2014, 11:14:12 »
Rychlost:
fbtft_device name=hy28a rotate=270 speed=48000000 fps=50
48MHz? ale zkousel ji i nizsi hodnoty napr. 500kHz bohuzel bez efektu.

Zajimave je, ze dotyka vrstva funguje OK, zde jsem zadnou rychlost nezadaval, proste
to fungovalo.  ads7846 spi0.1 2000kHz 8 bits mode=0x00
(nevim jestli to chapu spravne, nejsem v hw kovanej, ale jak LCD radic tak radic sdili
 stejnou SPI sbernici a pomoci chip select [CS] se ovlada jedno druhe a driver k tomu
 s tim nejak pocita, ale mozna varim z vody, asi spis ano )

Zkusim zkratit kabel na polovinu. F.

Ondra....

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #3 kdy: 13. 03. 2014, 20:45:09 »
48 MHz je strasne moc. Displej HY28A s SPI sbernici ma radic ILI9320 a ten dava max. hodinovy kmitocet SPI sbernice 10MHz tusim. Prectete si datasheet, zajimave cteni. Na strane 107 je casovani SPI sbernice. http://www.displayfuture.com/Display/datasheet/controller/ILI9320.pdf
A 40cm je take proklate hodne :) Urcite je treba to zkratit na polovinu.

Drzim palce at to vyjde, ja tento displej spokojene pouzivam s MCU STM32F105. Na bastelni je to dobry vyrobek.

fahacz

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #4 kdy: 13. 03. 2014, 21:30:24 »
Diky, zkratil jsem na vice jak polovinu.
Trochu mi jeste dela starost tahle hlaska v dmesg, ktere jsem si prve nevsimnul, ale nevim jestli se mam o ni starat, google tvrde mlci.
fb_ili9320 spi0.0: Unrecognized Device code: 0xFFFF (expected 0x9320)

F.


Ondra....

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #5 kdy: 14. 03. 2014, 10:20:43 »
Hm... to je hned prvni prikaz v inicializacni sekvenci displeje: dotaz na obsah registru 0x00-Driver Code Read. Pokud to vraci 0xFFFF, pak je mozna na dratu LCD_SPI_MISO (data LCD->Pi) trvale log.1 tj. napeti 3.3V. Chtelo by na to kouknout osciloskopem jestli tam opravdu komunikace probiha :( Jeste jeden chytak ma radic ILI9320 a to, ze zapisovat do nej lze s SPI_CLK = 10MHz, ale cist se muze jen 5MHz! Je to divne, ale opravdu to tak je :) Mozna nestiha cist Device Code registr?
Je mi lito, ze nemohu poradit vice. Znam jen hardware, s linux-drivery a s Pi-ckem nemam zkusenosti.

fahacz

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #6 kdy: 14. 03. 2014, 18:34:31 »
Diky, k osciloskopu se dostanu v pondeli, tak si chci prohlednout jestli tam neco chodi, kazdopadne diky.
V driveru jsem nasel, ze pokud to vraci cokoliv jineho nez 0x9320 tak se vyhodit ta varovna hlaska, ale kod bezi dal, mate pravdu ze me taky zarazi, ze to vraci zrovna 0xFFFF, coz jsou same 1, tak v pondeli snad budu chytrejsi.

Diky F.

Hm... to je hned prvni prikaz v inicializacni sekvenci displeje: dotaz na obsah registru 0x00-Driver Code Read. Pokud to vraci 0xFFFF, pak je mozna na dratu LCD_SPI_MISO (data LCD->Pi) trvale log.1 tj. napeti 3.3V. Chtelo by na to kouknout osciloskopem jestli tam opravdu komunikace probiha :( Jeste jeden chytak ma radic ILI9320 a to, ze zapisovat do nej lze s SPI_CLK = 10MHz, ale cist se muze jen 5MHz! Je to divne, ale opravdu to tak je :) Mozna nestiha cist Device Code registr?
Je mi lito, ze nemohu poradit vice. Znam jen hardware, s linux-drivery a s Pi-ckem nemam zkusenosti.

r23

Re:Raspberry Pi a LCD-TFT HY28A
« Odpověď #7 kdy: 14. 03. 2014, 20:49:06 »
Já jsem tyhle LCD používal jen v paralelním režimu. Ale 8MHz je moc. Stáhni to na zkoušku 100KHz. Taky je možná nutné mít některé řítící piny v definovaném stavu, i když se v tom režimu nepoužívají.