This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB947-Q1: Some questions on DS90UB947/948

Part Number: DS90UB947-Q1
Other Parts Discussed in Thread: DS90UH947-Q1, DS90UH940-Q1

Hi Sirs,

Sorry to bother you.

We have use DS90UB947/948 and have some question.

  1. Does it need to operate these two chips 947/948 by i2C?
  2. Regarding to different panel timing, does it need to have extra setting?
  3. Is it enough to operate touch IC through 948 by i2c or other interface needed? How many ms of delay time? 
  4. Interrupt of Touch connected with CPU by 948/947, how long for the transmission delay time?
  5. Is there another way to operate GPIO of 948 except by i2c/SPI? 
  6. Can i2c and SPI of 947 can work to different host at the same time?

  • Shu-cheng,
    1. in most cases, you need configure the registers of touch control via UB947/948 link, so you need use I2C.
    2. no special need.
    3. yes, you can visit touch controller via UB947. the delay time is ~10us.
    4. ~10usyes.
    5. have remote GPIO control
    6. yes.

    best regards,
    Steven
  • Hi Junqiang, 

    Thank for your reply.

    We have three new questions.

    1. Have any suggestion on 947/948 pin setting that could meet function block?

    2. If we need follow function block, do we need any setting of 947/948 on turn on system moment?


    3. Because touch is control by main chip, the panel control by another MCU. We need had screen before turn on system. The I2C is used on Touch, we couldn't use MCU to control 947 by I2C when turn on .

    Have any suggestion on this?

    Thanks for your help!!!

  • 1. Yes
    2. Yes, you need configure the GPIO and I2C pass through
    3. is the MCU connected with I2C of UB948? if NOT, it does NOT visit UB947 via I2C.

    regards,
    Steven
  • Hi Junqiang,

    Thanks for your reply

    Some question on I2C setting

    The I2C looks only connect to 947, But 947 will to pass non 947 packet to 948, if not 947/948  packet that will send to next device....

    Looks like pic

    If we need communication to touch IC, we don't need modify the touch driver, right??

    In addition, if need pass I2C to touch, do we need any setting? 947 0x17[7] and 948 0x05[7] I2C Pass All? 947 and 948 0x03[3] I2C pass-through?

    Do we need registered slave id and slave alias??

    Thanks for your kindly help.

  • Shucheng,
    yes, it is right.
    one example for I2C control is:
    Set I2C Pass-through
    Set SlaveID0
    Set SlaveAlias
    Read/Write to Slave using SlaveAlias address

    also, you can visit my.ti.com, to get the FPD-Link I2C application note, thanks.
    (www.ti.com/.../snla131a.pdf)

    best regards,
    Steven
  • Hi Junqiang,

    Thanks for your quick help.

    1. From function block, we have one pin to do interrupt from touch to 947. May i know what difference between use REM_INTB、INTB_IN and GPIO??

    2. What pin could sent PWM on 947? corresponds on 948 which pin could sent output to panel?

    3. Do we need any register setting on LVDS signal?or only need power on?

  • Shuling,
    1. The INTB_IN pin is an active low interrupt input pin. This interrupt signal, when configured, will propagate to the paired serializer. You need consult the appropriate Serializer datasheet for details of how to configure this interrupt functionality. GPIO means general purpose IOs, you can use it for local or remote control.
    2. you can use GPIO for PWM signal transmission, please take care of the PWM rate.
    3. the mode_sel can make ub947/948 work in the correct mode. in most case, you do not need more register setting.

    best regards,
    Steven
  • Hi Junqiang,

    Thanks for your reply.

    As below function block

    I would like use MCU to control 948 or panel by I2C signal

    1. We only need write 948 or panel's slave address then 947 will by pass signal to 948 and panel, right??

    2. If not, do we need setting 947 Slave ID?

    3. If need setting, could you explain how to do it?

     

  • Shu-Cheng,

    1.Yes

    2. you need configure the I2C

    3. One example for I2C control is--
    a. Set register I2C Pass-through in UB947
    c. Set register SlaveID0 in UB947 with 0x0D
    d. Set register SlaveAlias in UB947 with 0x0D (or others)
    e. Read/Write to Slave using SlaveAlias address 0x0D (or others) through MCU

    best regards,

    Steven

  • Hi Steven

    Thanks for your quick feedback.

    So we config 948 step is follow as below, right?

    a. Set register I2C Pass-through in UB947
    c. Set register SlaveID0 in UB947 with 0x58
    d. Set register SlaveAlias in UB947 with 0x58 (or others)
    e. Read/Write to Slave using SlaveAlias address 0x58 (or others) through MCU

    or we could use MCU send 0x58 to config 948?

    As below table, for our design it's mean if we config 1 on red circle, besides 0x34 slave address will by passed to rear end, right?

    If yes ,could we don't setting SlaveID0 and SlaveAlias the direct control 948 and Panel?? Have any risk or restrictions

     

  • Shu-cheng,
    you just need configure UB947 not ub948. the UB948 I2C address would be transmitted to UB947 automatically, you can read the register 0x06 of UB947.

    0x06[7:1] in UB947 d/s: ---------------------------------------------------------
    7-bit I2C address of the remote Deserializer. A value of 0 in this field
    Port0/Port1 disables I2C access to the remote Deserializer. This field is
    automatically configured by the Bidirectional Control Channel once RX
    Lock has been detected. Software may overwrite this value, but
    should also assert the FREEZE DEVICE ID bit to prevent overwriting
    by the Bidirectional Control Channel.
    If PORT1_SEL is set, this field refers to Port1 operation.
    ---------------------------------------------------------------------------------

    best regards,
    Steven
  • Hi Junqiang,

    Thanks for your reply.

     We read register 0x06 of UB947, the value is show  “0x58”, it's can do W/R on 948 . So looks  948 is OK.

    It can't communicate with 948 touch device

    We found no output on 948 I2C Clk/Data

    Have any setting we missing?

     947/948 init as belwo :

           #define I2CAddress_947  0x34

    #define I2CAddress_948  0x58

          

          

           WriteI2C947(I2CAddress_947, 0x03, 0xDA);       //Set I2C pass-through mode enable.

           WriteI2C947(I2CAddress_947, 0x07, 0xB0); //Set Slave ID.

           WriteI2C947(I2CAddress_947, 0x08, 0xB0); //Set Slave Alias.

          

           WriteI2C947(I2CAddress_947, 0x1E, 0x02);       //PORT1_SEL set 1. use 947 D_GPIO.

           WriteI2C947(I2CAddress_947, 0x0D, 0x03);       //set 947 D_GPIO0 is GPIO input

           WriteI2C947(I2CAddress_947, 0x0E, 0x33); //set 947 D_GPIO1&2 is GPIO input

           WriteI2C947(I2CAddress_947, 0x0F, 0x03); //set 947 D_GPIO3 is GPIO input

          

           WriteI2C947(I2CAddress_947, 0xC6, 0x21);       //Enable global interrupt, and Enable interrupt on receiver interrupt.

     

           WriteI2C947(I2CAddress_947, 0x17, 0x9E);

                    

          

           WriteI2C947(I2CAddress_948, 0x34, 0x02);       //PORT1_SEL set 1. use 948 D_GPIO.

           WriteI2C947(I2CAddress_948, 0x1D, 0x05);       //set 948 D_GPIO0 is GPIO output, and Enable remote GPIO control.

           WriteI2C947(I2CAddress_948, 0x1E, 0x55); //set 948 D_GPIO1&2 is GPIO output, and Enable remote GPIO control.

           WriteI2C947(I2CAddress_948, 0x1F, 0x05); //set 948 D_GPIO3 is GPIO output, and Enable remote GPIO control.

      

  • Hi Sirs,

    Update issue.

    As yesterday code, we tried to read register 0x07h & 0x08h of UB947. 

    The value is “0x00”, not we wrote “0xB0”

    Do we need pay attention of Slave ID & Alias setting?

  • Shucheng,

    for the de-serialzer, it has no I2C alias address. in above case, you just need use 0x58 as UB948's i2c address.

    best regards,

    Steven 

  • Hello,
    I2C pass all is not recommended, please use "pass through" and slave alias registers for configuring remote slaves.
  • Yes, you can visit UB948 via 0x58 address. by the way, if you have other I2C device is connected in the local i2c bus, please use the "I2C pass" NOT "I2C pass all", thanks.

    best regards,
    Steven
  • Shucheng,

    Yes, you can visit UB948 with I2C address 0X58 from I2C master connected with UB947's I2C BUS. You can enable "I2C pass" in the register 0x03[3] to get better application if it has more I2C slave in the bus.

    also, you can visit panel through the I2C master in the UB947 side, this is one very mature solution for FPD-Link III.

    best regards,

    Steven

  • Shucheng,
    yes, you can use MCU to visit UB948 with I2C ID 0x58.
    it is recommended to configure I2C Pass-through (0x03[3]). as you need visit UB948 and panel in the UB947 side, so you should set the panel as remote slave ID and give its slave alias. after doing it, you can visit the panel with slavealias in the UB947 side. thanks.

    regards,
    Steven
  • Hi ,

    I think you know about DS90UH947-Q1, DS90UH940-Q1. Can you help me figure out setting both DS90UH947-Q1 and DS90UH940-Q1.

    Both IC are dual link. I convert LVDS signal from camera Hitachi DI-SC233 to MIPI CSI-2. LVDS singal have 4 lane data and 1 lane clock. DS90UH947-Q1 can up to 8 lane data LVDS input, and 2 lane FPD -Link III output connect to DS90UH940-Q1. DS90UH940-Q1 have 2 lane CSI-2 output.

    So I have question bellow:

    DS90UH947-Q1:   Input: 4 lane data + 1 lane clock LVDS signal; output: 1 or 2 lane FPD Link III?. And speed transfer data LVDS signal can up to 2Gbps?.

    DS90UH940-Q1: Input: 1 FPD Link III ; Output: 1 or 2 lane CSI-2?

      Input: 2 FPD Link III; Output: 1 or 2 lane CSI-2?

    I do not understand setting I2C to control single or dual link both IC. So can you help me about that?.

    My english is not good so sorry if you dont understand.

    I 'm looking forward to hearing from you respone soon.

    Thanks.

    Best regards, 

    Bang

     

  • Hi Shucheng,
    Yes, you can use alias address to visit I2C slaver through i2c master (connected to MCU).

    best regards,
    Steven
  • Shucheng,
    Yes. you can visit i2c slaver with alias address through MCU.

    best regards,
    Steven
  • Shucheng,
    yes, you are correct. please follow up our suggestion. you can visit UB948 and its attached panel through UB947's I2C bus.

    best regards,
    Steven