Linux | Device Tree | NHD ‐ 4.3 ‐ 480272EF

Comments

5 comments

  • Paul_B

    Hello,

    Your timing characteristics look correct, one thing I did notice from the elinux wiki is that your panel-info {},needs to change from bpp <16> to bpp <24>.

    Please keep me posted on your progress, looks like a great project

    0
  • Alias_Alias

    Hello,

    ok second try. I have now created an Overlay. The Overlay looks like :

    /* 
    * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Purpose License Version 2 as
    * published by the Free Software Foundation
    *
    * Original from: https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/BB-BONE-LCD4-01-00A1.dts
    *
    */

    /dts-v1/;
    /plugin/;

    /{
    compatible = "ti,beaglebone", "ti,beaglebone-black";

    /* identification */
    part-number = "BBB-NHD-TEST";
    version = "00A1";

    /* state the resources this cape uses */
    exclusive-use =
    /* the pin header uses */
    "P8.45", /* lcd: lcd_data0 */
    "P8.46", /* lcd: lcd_data1 */
    "P8.43", /* lcd: lcd_data2 */
    "P8.44", /* lcd: lcd_data3 */
    "P8.41", /* lcd: lcd_data4 */
    "P8.42", /* lcd: lcd_data5 */
    "P8.39", /* lcd: lcd_data6 */
    "P8.40", /* lcd: lcd_data7 */
    "P8.37", /* lcd: lcd_data8 */
    "P8.38", /* lcd: lcd_data9 */
    "P8.36", /* lcd: lcd_data10 */
    "P8.34", /* lcd: lcd_data11 */
    "P8.35", /* lcd: lcd_data12 */
    "P8.33", /* lcd: lcd_data13 */
    "P8.31", /* lcd: lcd_data14 */
    "P8.32", /* lcd: lcd_data15 */
    "P8.15", /* lcd: lcd_data16 */
    "P8.16", /* lcd: lcd_data17 */
    "P8.11", /* lcd: lcd_data18 */
    "P8.12", /* lcd: lcd_data19 */
    "P8.17", /* lcd: lcd_data20 */
    "P8.14", /* lcd: lcd_data21 */
    "P8.13", /* lcd: lcd_data22 */
    "P8.19", /* lcd: lcd_data23 */

    "P9.15", /* keys: gpio1_16 */
    "P9.23", /* keys: gpio1_17 */
    "P9.16", /* keys: gpio1_19 */

    "P9.27", /* lcd: gpio3_19 */
    "P9.12", /* led: gpio1_28 */

    "P8.27", /* lcd: lcd_vsync */
    "P8.29", /* lcd: lcd_hsync */
    "P8.28", /* lcd: lcd_pclk */
    "P8.30", /* lcd: lcd_ac_bias_en */
    "P9.14", /* pwm: ehrpwm1a */
    "P9.21", /* keys: gpio0_3 */

    /* the hardware IP uses */
    "gpio3_19",
    "gpio1_28",
    "gpio1_16",
    "gpio1_17",
    "gpio1_19",
    "gpio0_3",
    "lcd",
    "ehrpwm1a";



    fragment@0 {
    target = <&am33xx_pinmux>;

    __overlay__ {

    bone_lcd4_cape_led_00A1_pins: pinmux_bone_lcd4_cape_led_00A1_pins {
    pinctrl-single,pins = <
    0x078 0x2f      /* gpmc_be1n.gpio1_28, INPUT | PULLDIS | MODE7 */
    >;
    };

    pwm_bl_pins: pinmux_pwm_bl_pins {
    pinctrl-single,pins = <
    0x48 0x06       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT */
    >;
    };


    lcd_pins_example_NH:  pinmux_lcd_pins_example_NH {
    pinctrl-single,pins = <
    0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */
    0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */
    0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */
    0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */
    0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */
    0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */
    0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */
    0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */

    0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */
    0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */
    0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */
    0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */
    0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */
    0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */
    0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */
    0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */
    0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */
    0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */
    0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */
    0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */
    0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */
    0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */
    0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */
    0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */

    0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */
    0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */
    0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */
    0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */
    >;
    };
    };
    };

    fragment@1 {
    target = <&epwmss1>;
    __overlay__ {
    status = "okay";
    };
    };

    fragment@2 {
    target = <&ehrpwm1>;
    __overlay__ {
    status = "okay";
    };
    };


    fragment@3 {
    target = <&ocp>;

    __overlay__ {

    /* avoid stupid warning */
    #address-cells = <1>;
    #size-cells = <1>;

    backlight {
    compatible      = "pwm-backlight";
    pinctrl-names   = "default";
    pinctrl-0       = <&pwm_bl_pins>;

    pwms = <&ehrpwm1 0 500000 0>;
    pwm-names = "LCD4";
    brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
    default-brightness-level = <101>; /* index to the array above */
    status = "okay";
    };

    tscadc {
    compatible = "ti,ti-tscadc";
    reg = <0x44e0d000 0x1000>;

    interrupt-parent = <&intc>;
    interrupts = <16>;
    ti,hwmods = "adc_tsc";
    status = "okay";

    tsc {
    ti,wires = <4>;
    ti,x-plate-resistance = <200>;
    ti,coordinate-readouts = <5>;
    ti,wire-config = <0x00 0x11 0x22 0x33>;
    };

    adc {
    ti,adc-channels = <4 5 6 7>;
    };
    };

    gpio-leds-cape-lcd4 {
    compatible = "gpio-leds";
    pinctrl-names = "default";

    pinctrl-0 = <&bone_lcd4_cape_led_00A1_pins>;

    lcd4-led0 {
    label = "lcd4:green:usr0";
    gpios = <&gpio2 28 0>;
    linux,default-trigger = "heartbeat";
    default-state = "off";
    };

    };

    /* Settings for NHD */
    panel {
    compatible = "tilcdc,panel";
    pinctrl-names = "default";
    pinctrl-0 = <&lcd_pins_example_NH>;
    panel-info {
    ac-bias           = <255>;
    ac-bias-intrpt    = <0>;
    dma-burst-sz      = <16>;
    bpp               = <24>;
    fdd               = <0x80>;
    tft-alt-mode      = <0>;
    stn-565-mode      = <0>;
    mono-8bit-mode    = <0>;
    sync-edge         = <0>;
    sync-ctrl         = <1>;
    raster-order      = <0>;
    fifo-th           = <0>;
    };
    display-timings {
    native-mode = <&timing0>;
    timing0: 480x272 {
    clock-frequency = <90000000>;
    hactive = <482>;
    vactive = <272>;
    hfront-porch = <2>;
    hback-porch = <2>;
    hsync-len = <41>;
    vback-porch = <2>;
    vfront-porch = <2>;
    vsync-len = <3>;
    hsync-active = <0>;
    vsync-active = <0>;
    };
    };
    };

    fb {
    compatible = "ti,am33xx-tilcdc";
    reg = <0x4830e000 0x1000>;
    interrupt-parent = <&intc>;
    interrupts = <36>;
    ti,hwmods = "lcdc";
    };

    };
    };
    };

    My Display doesn't start and i have a few questions:
    My first question is:
    1. In an old version of the document NHD-4.3-480272EF-ATXL at the page "Mechanical Drawing" the "Pin layout" was 1.LED+ and 2.LED-.
    In the new verson the "Pin layout" is 1.LED- and 2.LED+.
    What is right here ? Pease check it.

    2. The next is: What must i connect to LED+ ?
    The 3.3V ? The 5V ? I really don't understand that.

    3. The last Pin question is: If i connect the PIN 31 DISP to HIGH do i start the display ?
    Or what is this Pin for ?

    To the Overlay:

    4. I compiled it with CODE and then started the Overlay with CODE. Does the Display now start or must i do more ?
    I think i have now applied the Overlay and the Display must start.
    Maybe this is a stupid question but I'm really not sure.

    5. Please take a look at this Lines:

    panel-info {
    ac-bias           = <255>;
    ac-bias-intrpt    = <0>;
    dma-burst-sz      = <16>;
    bpp               = <24>;
    fdd               = <0x80>;
    tft-alt-mode      = <0>;
    stn-565-mode      = <0>;
    mono-8bit-mode    = <0>;
    sync-edge         = <0>;
    sync-ctrl         = <1>;
    raster-order      = <0>;
    fifo-th           = <0>;
    };
    display-timings {
    native-mode = <&timing0>;
    timing0: 480x272 {
    clock-frequency = <90000000>;
    hactive = <482>;
    vactive = <272>;
    hfront-porch = <2>;
    hback-porch = <2>;
    hsync-len = <41>;
    vback-porch = <2>;
    vfront-porch = <2>;
    vsync-len = <3>;
    hsync-active = <0>;
    vsync-active = <0>;
    };
    };

    Is this the right Code for the Panel Info ?



    THANK YOU VERY MUCH FOR YOUR TIME. If you like. I would share this code if I'm ready and see some thing on the Display. 
    Have a nice Day.

    0
  • Paul_B

    Hello,

    Question 1: What is the correct pin out?

    Answer: The pin description can be seen on page 4 in the displays datasheet.

    https://newhavendisplay.com/content/specs/NHD-4.3-480272EF-ATXL.pdf

    Pin 1: LED‐
    Pin 2: LED+


    Question 2: What must I connect to LED+ ?

    Answer: You must supply 19.2V @ 40mA.


    Question 3: If I connect the PIN 31 DISP to HIGH do i start the display ?

    Answer: The DISP pin is used to turn on and off the TFT display. If DISP is pulled high the display will turn on.


    Regarding your timing values everything looks correct  


    Hope this helps!

    0
  • Alias_Alias

    Hello,

    thanks for your reply.

    I have now checked the Backlight setting.
    I would like to run it with a PWM signal of the BeagleBoneBlack.


    Since I cannot start the display, I suppose that there is still missing a LED backlight block in my setup.
    Unfortunately, I do not know which of the following blocks I do have to choose.

    Currently, I am using the BeagleBoneBlack.
    Its documentation says that I have a 5V and a 3.3V input currency.
    The display has: 12‐LED backlight.
    The PWM pin is coming from the BeagleBoneBlack and gives max 3.3V.

     

    I think I must choose between these three:

    Little :  http://www.ti.com/product/tps61160/description

    Speed : http://www.ti.com/product/tps61165/description

    Overpowered : http://www.ti.com/product/tps61162/description


    Am I on the right way?

    If yes: I would like to take the Speed Chip.

     
    What do you think ? Can I pick one  of them?

    Thank you very much for your help.

    0
  • Paul_B

    Hello,

    TPS61165 from TI is an acceptable choice. You can also use FAN5333BSX:

    http://www.digikey.com/product-detail/en/FAN5333BSX/FAN5333BSXCT-ND/3042778

    Both will get the job done :)

    0

Please sign in to leave a comment.