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.

DS90UB928QEVM: DS90UB925QEVM - DS90UB928QEVM can`t send audio over I2S interface

Part Number: DS90UB928QEVM
Other Parts Discussed in Thread: ALP

hi, we can't configure evaluations kits in order to send audio over I2S interface; the signals  MCLK, I2S_WC, I2S_CLK are working but no data on I2S_DA; 

video is 18bit, we want to use only channel A for audio (channel B disable)

data is 16 bits 32kHz sampled (at 8KHz  I2S_WC, I2S_CLK doesn't work).

We can`t find the correct register configurations.

thanks.

  • Hello-

    How are the control registers currently configured on the 925/928 devices?

    The following application note discusses Using the I2S Audio Interface of DS90Ux92x FPD-Link III Devices :

    www.ti.com/.../snla221.pdf

    Regards,
    Davor
  • we configure the following registers:

    Serializer

    reg value
    0x12 0x4
    0x0e 0x55
    0x0f 0x05
    0x03 0xDA

    deserializer

    reg value
    0x1e 0x33
    0x1f 0x03
    0x2B 0xC0

    all others default values.

    some captures of signals

    in the output off 928 DA signal we see a envelope of the signal which is very rare

    same capture with zoom

  • hi, please can i have some response about this? I need it in order to continue our development.

    thanks
  • Hello-

    We couldn't conclude anything based on the data provided so far. Could you please provide full register dumps of both 925 and 928?

    Regards,
    Davor
  • Hello Davor, this is our configuration.

    The I2S data signal works at 400 Hz max then the signal corners start to round up, like small band width see the captures above.

    thanks

    Register Display - ALP Nano USB 1 - DS90UB925, Connector 1

    Register Data Name
    0x0000 0x1A I2C Device ID
    0x0001 0x00 Reset
    0x0003 0xDA General Configuration
    0x0004 0x80 Reserved
    0x0005 0x00 I2C Master Config
    0x0006 0x58 DES ID
    0x0007 0x30 SlaveID
    0x0008 0x18 SlaveAlias
    0x000A 0x02 CRC Errors
    0x000B 0x00 CRC Errors
    0x000C 0x07 General Status
    0x000D 0xA5 GPIO[0] Config
    0x000E 0x55 GPIO[1] and GPIO[2] Config
    0x000F 0x03 GPIO[3] and GPIO[4] Config
    0x0010 0x00 GPIO[5] and GPIO[6] Config
    0x0011 0x00 GPIO[7] and GPIO[8] Config
    0x0012 0x04 Datapath Control
    0x0013 0x10 Mode Status
    0x0014 0x00 BIST and DOPL Control
    0x0015 0x00 Deemphasis Control
    0x0016 0xFE BCC Watchdog Control
    0x0017 0x5E I2C Control
    0x0018 0xA1 SCL High Time
    0x0019 0xA5 SCL Low Time
    0x0022 0x25 Reserved
    0x0023 0x00 Reserved
    0x0024 0x00 Reserved
    0x0025 0x00 Reserved
    0x0026 0x00 Link Detect Control
    0x0027 0x00 Reserved
    0x0028 0x00 Reserved
    0x0029 0x24 Reserved
    0x002A 0x00 Reserved
    0x002B 0xA8 Reserved
    0x002C 0x00 Reserved
    0x0030 0x03 Reserved
    0x0031 0x10 Reserved
    0x0032 0x00 Reserved
    0x0033 0x00 Reserved
    0x0034 0x00 Reserved
    0x0035 0x00 Reserved
    0x0036 0x08 Reserved
    0x0037 0x34 Reserved
    0x0038 0x00 Reserved
    0x0039 0x0A Reserved
    0x003A 0x20 Reserved
    0x003B 0x21 Reserved
    0x003C 0x00 Reserved
    0x003D 0x00 Reserved
    0x003E 0xF0 Reserved
    0x003F 0x00 Reserved
    0x0040 0x00 Reserved
    0x0041 0x00 Reserved
    0x0042 0x00 Reserved
    0x0050 0x20 Reserved
    0x0064 0x10 PGCTL
    0x0065 0x00 PGCFG
    0x0066 0x00 PGIA
    0x0067 0x00 PGID
    0x0068 0x00 Reserved
    0x0069 0x00 Reserved
    0x0080 0x00 Reserved
    0x0081 0x00 Reserved
    0x0082 0x00 Reserved
    0x0083 0x00 Reserved
    0x0084 0x00 Reserved
    0x0090 0x00 Reserved
    0x0091 0x00 Reserved
    0x0092 0x00 Reserved
    0x0093 0x00 Reserved
    0x0094 0x00 Reserved
    0x0098 0x00 Reserved
    0x0099 0x00 Reserved
    0x009A 0x00 Reserved
    0x009B 0x00 Reserved
    0x009C 0x00 Reserved
    0x009D 0x00 Reserved
    0x009E 0x00 Reserved
    0x009F 0x00 Reserved
    0x00A0 0x00 Reserved
    0x00A1 0x00 Reserved
    0x00A2 0x00 Reserved
    0x00A3 0x00 Reserved
    0x00C0 0x00 HDCP_DBG
    0x00C1 0x00 Reserved
    0x00C2 0x80 Reserved
    0x00C3 0x00 Reserved
    0x00C4 0x38 Reserved
    0x00C5 0x00 Reserved
    0x00C6 0x00 Reserved
    0x00C7 0x60 Reserved
    0x00C8 0x40 Reserved
    0x00C9 0x00 Reserved
    0x00CA 0x00 Reserved
    0x00CB 0x00 Reserved
    0x00CC 0x00 Reserved
    0x00D0 0x00 Reserved
    0x00D1 0x00 Reserved
    0x00D2 0x00 Reserved
    0x00D3 0x00 Reserved
    0x00F0 0x5F HDCP_TX_ID0
    0x00F1 0x55 HDCP_TX_ID1
    0x00F2 0x42 HDCP_TX_ID2
    0x00F3 0x39 HDCP_TX_ID3
    0x00F4 0x32 HDCP_TX_ID4
    0x00F5 0x35 HDCP_TX_ID5
    0x00F6 0x00 SIL_REV
    0x00F8 0x00 Reserved
    0x00F9 0x00 Reserved

    Register Display - ALP Nano USB 1 - DS90UB928, Connector 1

    Register Data Name
    0x0000 0x58 I2C Device ID
    0x0001 0x04 Reset
    0x0002 0x00 General Configuration 0
    0x0003 0xF0 General Configuration 1
    0x0004 0xFE BCC Watchdog Control
    0x0005 0x1E I2C Control 1
    0x0006 0x00 I2C Control 2
    0x0007 0x1A REMOTE ID
    0x0008 0x00 SlaveID[0]
    0x0009 0x00 SlaveID[1]
    0x000A 0x00 SlaveID[2]
    0x000B 0x00 SlaveID[3]
    0x000C 0x00 SlaveID[4]
    0x000D 0x00 SlaveID[5]
    0x000E 0x00 SlaveID[6]
    0x000F 0x00 SlaveID[7]
    0x0010 0x00 SlaveAlias[0]
    0x0011 0x00 SlaveAlias[1]
    0x0012 0x00 SlaveAlias[2]
    0x0013 0x00 SlaveAlias[3]
    0x0014 0x00 SlaveAlias[4]
    0x0015 0x00 SlaveAlias[5]
    0x0016 0x00 SlaveAlias[6]
    0x0017 0x00 SlaveAlias[7]
    0x0018 0x00 Reserved
    0x0019 0x01 Reserved
    0x001A 0x00 Reserved
    0x001B 0x00 Frequency Counter
    0x001C 0x0B Reserved
    0x001D 0x23 GPIO[0] Config
    0x001E 0x33 GPIO[1] and GPIO[2] Config
    0x001F 0x05 GPIO[3] and GPIO[4] Config
    0x0020 0x00 GPIO[5] and GPIO[6] Config
    0x0021 0x00 GPIO[7] and GPIO[8] Config
    0x0022 0x46 Datapath Control
    0x0023 0x10 RX Mode Status
    0x0024 0x08 BIST Control
    0x0025 0x00 BIST ERROR COUNT
    0x0026 0x83 SCL High Time
    0x0027 0x84 SCL Low Time
    0x0028 0x00 Datapath Control 2
    0x0029 0x00 FRC Control
    0x002A 0x00 White Balance Control
    0x002B 0x00 I2S Control
    0x002C 0x00 Reserved
    0x002D 0x00 Reserved
    0x002E 0x00 Reserved
    0x002F 0x00 Reserved
    0x0030 0x00 Reserved
    0x0031 0x00 Reserved
    0x0032 0x10 Reserved
    0x0033 0x25 Reserved
    0x0034 0xFA Reserved
    0x0035 0x00 Reserved
    0x0036 0x00 Reserved
    0x0037 0x00 Reserved
    0x0038 0x00 Reserved
    0x0039 0x00 Reserved
    0x003A 0x00 I2S_DIVSEL
    0x003B 0x03 Reserved
    0x003C 0x00 Reserved
    0x003D 0xA0 Reserved
    0x003E 0x00 Reserved
    0x003F 0x10 Reserved
    0x0040 0x43 Reserved
    0x0041 0x03 LINK ERROR COUNT
    0x0042 0x03 Reserved
    0x0043 0x00 Reserved
    0x0044 0x60 ADAPTIVE EQ
    0x0045 0x88 Reserved
    0x0046 0x00 Reserved
    0x0047 0x00 Reserved
    0x0048 0x0F Reserved
    0x0049 0x80 reg_49
    0x004A 0x00 Reserved
    0x004B 0x08 Reserved
    0x004C 0x00 Reserved
    0x004D 0x00 Reserved
    0x004E 0x63 Reserved
    0x004F 0x00 Reserved
    0x0050 0x03 Reserved
    0x0051 0x10 Reserved
    0x0052 0x00 Reserved
    0x0053 0x01 Reserved
    0x0054 0x80 Reserved
    0x0055 0x00 Reserved
    0x0056 0x08 Reserved
    0x0057 0x00 Reserved
    0x0058 0x00 Reserved
    0x0059 0x3F Reserved
    0x005A 0x20 Reserved
    0x005B 0x20 Reserved
    0x005C 0x00 Reserved
    0x005D 0x00 Reserved
    0x005E 0x00 Reserved
    0x005F 0x00 Reserved
    0x0060 0x00 Reserved
    0x0061 0x00 Reserved
    0x0062 0x00 Reserved
    0x0063 0x00 Reserved
    0x0064 0x10 PGCTL
    0x0065 0x00 PGCFG
    0x0066 0x00 PGIA
    0x0067 0x00 PGID
    0x0068 0x00 Reserved
    0x0069 0x00 Reserved
    0x0070 0x00 Reserved
    0x0071 0x00 Reserved
    0x0072 0x00 Reserved
    0x0073 0x07 Reserved
    0x0074 0x07 Reserved
    0x0075 0x08 Reserved
    0x0076 0x00 Reserved
    0x0077 0x00 Reserved
    0x0078 0x00 Reserved
    0x0079 0x00 Reserved
    0x007A 0x00 Reserved
    0x007B 0x6D Reserved
    0x007C 0x02 Reserved
    0x0080 0x00 Reserved
    0x0081 0x00 Reserved
    0x0082 0x00 Reserved
    0x0083 0x00 Reserved
    0x0084 0x00 Reserved
    0x0090 0x00 Reserved
    0x0091 0x00 Reserved
    0x0092 0x00 Reserved
    0x0093 0x00 Reserved
    0x0094 0x00 Reserved
    0x0098 0x00 Reserved
    0x0099 0x00 Reserved
    0x009A 0x00 Reserved
    0x009B 0x00 Reserved
    0x009C 0x00 Reserved
    0x009D 0x00 Reserved
    0x009E 0x00 Reserved
    0x009F 0x00 Reserved
    0x00C0 0x00 Reserved
    0x00C1 0x00 Reserved
    0x00C4 0x00 Reserved
    0x00C5 0x00 Reserved
    0x00C8 0xC0 Reserved
    0x00C9 0x00 Reserved
    0x00CA 0x00 Reserved
    0x00CB 0x00 Reserved
    0x00CC 0x00 Reserved
    0x00E0 0x00 Reserved
    0x00E1 0x00 Reserved
    0x00E2 0x00 Reserved
    0x00E3 0x00 Reserved
    0x00F0 0x5F HDCP_RX_ID0
    0x00F1 0x55 HDCP_RX_ID1
    0x00F2 0x42 HDCP_RX_ID2
    0x00F3 0x39 HDCP_RX_ID3
    0x00F4 0x32 HDCP_RX_ID4
    0x00F5 0x38 HDCP_RX_ID5
    0x00F6 0x00 Reserved
    0x00F8 0x00 Reserved
    0x00F9 0x00 Reserved

  • Hello-

    The I2S Transport Mode does not seem to be matched on the 925 (Register bit 0x12[1]) and 928 (Register bit 0x22[1]). Suggest setting the 925 register 0x12 to 0x6.

    Regards,
    Davor
  • thanks Davor,
    we change the registers values but it doesn't work

    DS90UB925
    0x0012 0x06 Datapath Control

    DS90UB928
    0x0022 0x46 Datapath Control

    Regards,
    Mariano
  • Hello-

    We're still looking into this. In the mean time, is there anything that's loading the data line and limiting its bandwidth?

    Regards,
    Davor
  • thanks Davor,

     is there anything that's loading the data line and limiting its bandwidth? NO, we use a signal generator as input and we measure the output with the oscilloscope at the pin isolated from the circuit.

    Our system has a 1024 * 768 display and the frame rate is 25 Hz ; Can this affect I2S communication and limit the bandwidth? .

    We try with pattern generator (ALP framework)  at XGA configuration and nothing change.

    How the serializer detects the display blanking ? Can the blanking time affect the I2S comm?

    Video Signal

    pixel clock signal capture

    Regards,

    Mariano

  • Hi Davor, 

    what do you think about the video signal capture? Can the signal be a problem?.

    Any comment are welcome.

    thanks

    Regards,

    Mariano

  • Hi Mariano,

    We have done bench testing with our EVM with the same register setting as provided and cannot reproduce the problem.

    Simulation was also done with the same setting and everything looked OK.

    I have a question regarding provided register 0x12 on 925 and 0x22 on 928. 0x22 on 928 is suppose to auto-load from 0x12 on 925. How did you get it to read 0x46?

    Is there any modification done to the EVMs? Would it be possible for you to get another set of EVMs and try?


    Sincerely,
    Charley Cai
  • Hi Charley Cai,

    we set the register [0x12] = 0x06 on 925 using our main uC, then we read all register on both 925 and 928 using TI analog launch pad (usb); it look strange for me that the register [0x22] = 0x46 doesn´t match,  i put register [0x22] = 0x6 on 928 using TI analog launch pad but the I2S channel doesn't work either.

    we are waiting for 925 and 928 chips replacement for our EVM.

    thanks

    Sincerely,

    Mariano

  • Hi Mariano,
    Could you try to set register 0x22=0x86 on 928? This will force 0x22 to match 0x12 0n 925.

    Sincerely,
    Charley Cai
  • Charley,
    i set the registers but nothing...
    [0x12] = 0x06 on 925
    [0x22] = 0x86 on 928
  • Please let me know if the issue still exists after chip replacement.

    Sincerely,
    Charley Cai
  • Hi Charley Cai,

    We made the chip replacement on both SER and DESER but  I2S_DA pin has the same behaviour as before ; we enable I2S_DB and it works, but we need I2S_DA.

    these are the development kits we are using: (some wires were unplugged to get a better picture)

    We also check I2S_DA connection on kit doesn't have any low pass filter:

    Sincerely,

    Mariano

  • Hi Charley Cai,

    do you have update or comment about this?
    We can make a workaround using I2S_DB but we need some final report about this issue.

    thanks
    Mariano
  • Hi Mariano,
    So the chip replacement fixed I2S_DB but not I2S_DA?
    If this is the case, we suspect that there's hardware issue with the EVMs. Would it be possible for you to get new EVM boards.




    Sincerely,
    Charley Cai
  • Hi Charley Cai,

    We didn't try I2S_DB before chip replacement, we test it after chip replacement as a workaround.

    We check connections on EVM boards, connections for I2S are very simple we didn't find any short or open circuit.

    Sincerely,
    Mariano
  • Hi Mariano,

    Please use the I2S_DB workaround if possible.
    We will log the issue in our database and see if we can reproduce the issue and solve it.

    Sincerely,
    Charley Cai