Hallo, ich versuche auf einem neuen aktuellen Raspbian Jessie Pixel Image ein fbtft module zu laden genau nach dieser Anleitung: https://github.com/notro/fbtft/wiki 1.) auf /boot/config.txt => das hier aktivieren: dtparam=spi=on (steht zwar nicht in der Anleitung, aber modprobe fbtft bringt sonst error) 2.) sudo modprobe fbtft_device name=adafruit22 3.) dmesg dabei kommt ganz was anderes, hier der Schluss: ################################## [ 12.644214] Bluetooth: BNEP socket layer initialized [ 130.430750] fbtft: module is from the staging directory, the quality is unknown, you have been warned. [ 130.435285] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned. [ 130.436071] spidev spi0.0: spidev spi0.0 500kHz 8 bits mode=0x00 [ 130.436083] spidev spi0.1: spidev spi0.1 500kHz 8 bits mode=0x00 [ 130.436104] bcm2708_fb soc:fb: soc:fb id=-1 pdata? no [ 130.436130] spidev spi0.0: Deleting spi0.0 [ 130.437155] fbtft_device: GPIOS used by 'adafruit22': [ 130.437165] fbtft_device: 'reset' = GPIO25 [ 130.437170] fbtft_device: 'led' = GPIO23 [ 130.437180] spidev spi0.1: spidev spi0.1 500kHz 8 bits mode=0x00 [ 130.437188] spi spi0.0: fb_hx8340bn spi0.0 32000kHz 8 bits mode=0x00 [ 130.441533] fb_hx8340bn: module is from the staging directory, the quality is unknown, you have been warned. [ 130.442265] fb_hx8340bn spi0.0: 9-bit SPI not available, emulating using 8-bit. [ 130.442321] fb_hx8340bn spi0.0: fbtft_request_gpios: gpio_request_one('reset'=25) failed with -16 [ 130.442363] fb_hx8340bn: probe of spi0.0 failed with error -16 pi@raspberrypi:~ $ ######################################## 4.) FRAMEBUFFER=/dev/fb1 startx ######################################## ) Using system config directory "/usr/share/X11/xorg.conf.d" (EE) Fatal server error: (EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied) (EE) (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. (EE) Please also check the log file at "/home/pi/.local/share/xorg/Xorg.1.log" for additional information. (EE) (EE) Server terminated with error (1). Closing log file. xinit: giving up xinit: unable to connect to X server: Connection refused xinit: server error Couldn't get a file descriptor referring to the console ######################################## 5.) con2fbmap 1 1 ######################################## pi@raspberrypi:~ $ con2fbmap 1 1 ioctl FBIOPUT_CON2FBMAP: Invalid argument pi@raspberrypi:~ $ ######################################## Nach 4.) oder 5.) kein Signale am SPI Output oder Clock.... welcher Schritt fehlt? was ist falsch?
Ich glaube, du musst auch noch das richtige DeviceTree File laden. Das gibt dir dann Zugang zu den verschiedenen Pins.
Harry L. schrieb: > was sagt "ls /dev/fb*" ? pi@raspberrypi:~ $ ls /dev/fb* /dev/fb0 macload1 schrieb: > Ich glaube, du musst auch noch das richtige DeviceTree File laden. Das > gibt dir dann Zugang zu den verschiedenen Pins. welches overlay wäre dann zuständig um fbtft zu aktivieren? auf jedenfall ist es keine Step für Step Anleitung die man für neue Raspbian benutzen kann..... Eine Anleitung um per device tree ili9341 oder ST7735 zu aktivieren findet man auch nicht, bzw. die vorhandenen Overlays im Image sind wohl nicht die richtigen. D.h. ich müsste die Overlays irgendwie heineinkopieren vom internet? Deswegen wollte ich es wie oben versuchen ohne overlays....
was natürlich funktioniert ist ein einfaches: dtoverlay=rpi-display aber in den overlays darin: ls /boot/overlays/rpi* habe ich keine ahnung welcher controller was ist und es sind sehr wenige... :-( Naja und sonst muss man wohl so ein overlay decompilieren, anpassen und wieder compilieren... nur wenn die GRAM,Command Adressen nicht passen - dann bringt es auch nichts so ein overlay anzupassen, deshalb hatte ich gehofft per modprobe was machen zu können. Da scheint mir hat man zumindest mehr Treiber zur Verfügung....
epidam schrieb: > Harry L. schrieb: >> was sagt "ls /dev/fb*" ? > > pi@raspberrypi:~ $ ls /dev/fb* > /dev/fb0 Dann ist das Modul zwar im Speicher, aber die Initialisierung ist fehlgeschlagen. alles, was in der /boot/config.txt drin sein muß ist:
1 | dtparam=spi=on |
Der Rest geschieht später. Die Modul-Parameter stehen in einer Datei in /etc/modprobe.d Für mein 3,5" Waveshare-Display sieht das z.B. so aus:
1 | root@octopi:/etc/modprobe.d# cat /etc/modprobe.d/waveshare35.conf |
2 | # Raspbery Pi Rev. >1.00 |
3 | options flexfb width=320 height=480 regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3 |
4 | options fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:25,dc:24 |
Wie du siehst, befindet sich in der cmd-line auch die Initialisierungs-Sequenz. Das alles musst du für dein Display natürlich entsp rechend anpassen. Alle erforderlichen Infos finden sich im fbtft-Wiki.
das zeug mit modprobe funktioniert irgendwie nicht mehr. Das hier per dt overlay aber schon: http://lallafa.de/blog/2015/03/fbtft-setup-on-modern-raspbian/ einzig bei x11 das eine file mit ..99.. heisst wenig anders irgendwas mit turbo..99 jetzt muss ich halt nur noch herausfinden wie man das rasberry-display overlay mit init-code ergänzen kann. Den Treiber kann man im overlay bequem anpassen.
ah da ein beispiel overlay inkl. initialisierung.. schaut aber ein wenig
komisch aus...
fragment@2 {
target = <&spi0>;
_overlay_ {
/* needed to avoid dtc warning */
#address-cells = <1>;
#size-cells = <0>;
piscreen: piscreen@0{
compatible = "ilitek,ili9486";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&piscreen_pins>;
spi-max-frequency = <32000000>;
rotate = <270>;
bgr;
fps = <30>;
buswidth = <8>;
regwidth = <16>;
reset-gpios = <&gpio 25 0>;
dc-gpios = <&gpio 24 0>;
led-gpios = <&gpio 22 1>;
debug = <0>;
init = <0x10000b0 0x00
0x1000011
0x20000ff
0x100003a 0x55
0x1000036 0x28
0x10000c2 0x44
0x10000c5 0x00 0x00 0x00 0x00
0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a
0x13 0x04 0x11 0x0d 0x00
0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06
0x10 0x03 0x24 0x20 0x00
0x10000e2 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06
0x10 0x03 0x24 0x20 0x00
0x1000011
0x1000029>;
Den Weg kannte ich noch nicht - erscheint mir ziemlich umständlich.
Harry L. schrieb: > Den Weg kannte ich noch nicht - erscheint mir ziemlich > umständlich. wenn man den init anpassen muss oder den treiber, dann muss man das overlay neu kompilieren. Ja dann ist es vielleicht umständlicher... gut und aktuell habe ich das problem den init-code richtig zu verstehen. Aber wieso das per modprobe und modernes Raspbian nicht mehr läuft ist mir ein Rätsel....
bzgl. Init, also diese Werte => 0x10000b0, 0x1000011 ...0x100003a das sind alles commands, also Register Index. Die zahlen danach wie 0x55 etc. das sind Daten. z.B. ist 0x10000e0 bis e2 das Gamma-Register. je nach TFT-Controller benötigt man ja auch noch delays zwischen den commands, wie setzt man die wohl? z.B. zwischen 0x1000011 (was exit sleep bedeutet) und den nächsten commands müsste eigentlich ein delay folgen?!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.