Setup OLED display for WARP7

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Setup OLED display for WARP7

1,554 Views
chaunguyenngoc
Contributor III

I'm trying to setting up OLED display (display use MikroBus) for WARP7.

Is it possible to combine these item together ?

When i use FBTFT Driver (support SSD1351 controller).

It always return error.

=====

#modprobe fbtft_device name=pioled debug=3

> spi_busnum_to_master(0) returned NULL
> fbtft_device: failed to register spi device

=====

I also tried to modify linux kernel (check (*) or (M) for almost all "graphic device support" & "spi" support in menuconfig to use framebuffer but error return.

=====

> Error opening /dev/fb0: No such file or directory

=====

I really lost here since I did not work much with linux or embedded before.

The questions are:

- Is there any knowledge or tutorial or something that I should learn / follow as newbie.

- Do i go in right ways ?

====== i think the ways should be below =====

1. Plug board & display together (use MikroBus standard)

2. Power up for BOARD via USB (picocom)

3. Enable all PINs (except AN & 3.3V PIN) by linux command "echo" for GPIO

4. Run FBTFT Driver to enable display (use fb_ssd1351 modules of FBTFT driver) 

5. Run "echo" command to send data to framebuffer (/dev/fb0) to display console or something on OLED display

===================================

Note: I 've read user_guideline many times and do "google-ing" for OLED display but results are about Raspberry, Arduino, others board, or LCD (not OLED).

:smileysad: :smileysad: :smileysad: 

Ref: 

- Linux kernel

- FBTFT Driver: GitHub - notro/fbtft: Linux Framebuffer drivers for small TFT LCD display modules 

Labels (3)
6 Replies

950 Views
igorpadykov
NXP Employee
NXP Employee

Hi

please check below link where oled fbtft driver was used

https://community.nxp.com/thread/451152

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

950 Views
chaunguyenngoc
Contributor III

I follow schematic file of WARP7 & link you sent.

I added in imx7s-warp.dts as below:

=====

pinctrl_mkbus_ecspi3: mkbusgrp_ecspi3 {
fsl,pins = <
MX7D_PAD_ECSPI2_SCLK__MKBUS_ESPI3_SCLK 0x80000000
MX7D_PAD_ECSPI2_MISO__MKBUS_ESPI3_MISO 0x80000000
MX7D_PAD_ECSPI2_MOSI__MKBUS_ESPI3_MOSI 0x80000000
MX7D_PAD_ECSPI2_SS0__MKBUS_ESPI3_SS0_B 0x80000000
>;
};
pinctrl_mkbus_uart5: mkbusgrp_uart5 {
fsl,pins = <
MX7D_PAD_ECSPI1_SCLK__MKBUS_UART5_TXD 0x80000000
MX7D_PAD_ECSPI1_MOSI__MKBUS_UART5_RXD 0x80000000
>;
};

=====

When I run "make" command. I got this error

====

Error: arch/arm/boot/dts/imx7s-warp.dts:460.5-6 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [arch/arm/boot/dts/imx7s-warp.dtb] Error 1
make: *** [dtbs] Error 2

====

is there something wrong with my added code ?

0 Kudos

950 Views
chaunguyenngoc
Contributor III

One more thing, I'm using "core-image-base" is it ok ?

If not, which image should I changed ?

"fsl-image-gui" i guess

0 Kudos

950 Views
igorpadykov
NXP Employee
NXP Employee

yes better to use "fsl-image-gui"

~igor

0 Kudos

950 Views
chaunguyenngoc
Contributor III

@@

Can you help me explain question above.

About PIN and value

0 Kudos

950 Views
chaunguyenngoc
Contributor III

Hi igor


I 've read it before.

Please help me some infomation:

1. in code below

- where can I get pins full name, and value assigned.

for example "MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO" and "0x70a1"

and CS PIN is "SS0" PIN, is it right ?

- other information, can we use the same as imx6 which is posted in discussion ?

=======

&iomuxc {

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_hog_1>;

    imx6ul-evk {

...

        pinctrl_ecspi4: ecspi4grp {

            fsl,pins = <

                MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO   0x70a1

                MX6UL_PAD_ENET2_TX_ENi__ECSPI4_MOSI    0x70a1

                MX6UL_PAD_ENET2_TX_DATA1__ECSPI4_SCLK 0x70a1

                MX6UL_PAD_ENET2_RX_ER__ECSPI4_SS0     0x70a1

            >;

        };

...

};

...

&ecspi4 {

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_ecspi4>;

    status = "okay";

};

=======

2. in code below, I do not clearly understand about it.

- "reset", "dc" name is automatically read by Linux, isn't it ?

- "30", "31" where can I find these value ?

======

  { "reset", 30 },

  { "dc", 31 },

  {},

======

- When I use "echo" command for GPIO, I can enable PIN #RST = GPIO 198, #PWM = GPIO 200, #INT = GPIO 199

Can I use these value to replace above code ?

For example

=======

{"RST", 198} -> I think it is for power on (when I echo 1, power led of Oled display is ON)

{"PWM", 200}

{"INT", 199} -> is this neccessary ?

=======

0 Kudos