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.

OPT8241 ILLUM_EN/ILLUM_P/N has no output

Other Parts Discussed in Thread: OPT8241, OPT9221

Hi, TI

We've developed a board with OPT8241 and OPT9221 with reference to CDK. Currently, signals related with OPT9221 are all OK, but the modulation output signals (ILLUM_EN/ILLUM_P/N) of OPT8241 are not work.

Firstly, we set environments as follows:

  • All voltages of OPT8241 and OPT9221 are setting according to the datasheet, and VSUB_BIAS set to -5v.
  • OPT9221's sysclk is 48MHz (MCLK to opt8241 is also 48MHz)
  • OPT9221 loads it's firmware (0v23) from EEPROM. 
  • Keep all register of OPT9221 and OPT8241 in reset state (TG/DE register read/write are OK)

Then, we write to TG's 0x80 register  with TG_DIS = 0 to make TG to work 

After that, we check the signals from oscilloscope. The DVP (or Generic parallel ) signals of OPT9221 are OK. The signals between OPT9221 and OPT8241 are OK. But the illumination modulation signals of OPT8241 is not working as expected:

  • ILLUM_EN is always low.
  • ILLUM_N is always HIGH
  • ILLUM_P is always low

My questions are :

  1. Is there any register must be set before TG_DIS=0 to make ILLUM_X signals to output?
  2. Anything else we should check in the hardware?
  3. Besides, ILLUM_MOD_FB and IO_MOD_REF are connected together, and we found it's like gated 24MHz clock in the oscilloscope, is it OK?

Thanks in advance.

Yao

  • Hi Yao,

    Writing only TG_DIS = 0 should be sufficient. Could you confirm that no other registers were written?

    Also, could you confirm that all I2C accesses from your host are only to the OPT9221 and that you are not writing to OPT8241 directly?

    Thanks,
    Anand

  • Thanks for your quick reply.

    Before TG_DIS=0, only DE's 0x0 register is written with 0 to issue software reset, and we confirm all registers operation are issued through OPT9221 with different I2C address.

    All registers are dumped as follow.
    Some register's reset values are different with datasheet.
    * DE's 0x29 register : 0x304040, datasheet (0x304000)
    * TG's 0x02 register: 0x00000018, datasheet(0x0)

    ----DE registers----
    DE_REG[0x00]: 00000000
    DE_REG[0x01]: 00000117
    DE_REG[0x02]: 00100C81
    DE_REG[0x03]: 00100000
    DE_REG[0x04]: 00000000
    DE_REG[0x05]: 00007FFF
    DE_REG[0x06]: 00000000
    DE_REG[0x07]: 00008001
    DE_REG[0x08]: 00000000
    DE_REG[0x09]: 00000000
    DE_REG[0x0A]: 00007FFF
    DE_REG[0x0B]: 00000000
    DE_REG[0x0C]: 00008001
    DE_REG[0x0D]: 00000000
    DE_REG[0x0E]: 00000000
    DE_REG[0x0F]: 00000000
    DE_REG[0x10]: 00000000
    DE_REG[0x11]: 00006ED9
    DE_REG[0x12]: 00009127
    DE_REG[0x13]: 00000000
    DE_REG[0x14]: 00006ED9
    DE_REG[0x15]: 00009127
    DE_REG[0x16]: 00007FFF
    DE_REG[0x17]: 0000C000
    DE_REG[0x18]: 0000C000
    DE_REG[0x19]: 00007FFF
    DE_REG[0x1A]: 0000C000
    DE_REG[0x1B]: 0000C000
    DE_REG[0x1C]: 00054321
    DE_REG[0x1D]: 00054321
    DE_REG[0x1E]: 00054321
    DE_REG[0x1F]: 00054321
    DE_REG[0x20]: 00000F00
    DE_REG[0x21]: 00000140
    DE_REG[0x22]: 000000F0
    DE_REG[0x23]: 00022140
    DE_REG[0x24]: 000FFC43
    DE_REG[0x25]: 00080001
    DE_REG[0x26]: 0000009E
    DE_REG[0x27]: 00002000
    DE_REG[0x28]: 00000000
    DE_REG[0x29]: 00304040
    DE_REG[0x2A]: 00000014
    DE_REG[0x2B]: 00000000
    DE_REG[0x2C]: 00000000
    DE_REG[0x2D]: 00000870
    DE_REG[0x2E]: 00000871
    DE_REG[0x2F]: 003C0001
    DE_REG[0x30]: 00500001
    DE_REG[0x31]: 00001802
    DE_REG[0x32]: 00000000
    DE_REG[0x33]: 00000030
    DE_REG[0x34]: 00000000
    DE_REG[0x35]: 00800000
    DE_REG[0x36]: 00000000
    DE_REG[0x37]: 00000000
    DE_REG[0x38]: 00000000
    DE_REG[0x39]: 00000000
    DE_REG[0x3A]: 00000000
    DE_REG[0x3B]: 00000000
    DE_REG[0x3C]: 00004000
    DE_REG[0x3D]: 00000000
    DE_REG[0x3E]: 00000080
    DE_REG[0x3F]: 0000000B
    DE_REG[0x40]: 00050455
    DE_REG[0x41]: 00000000
    DE_REG[0x42]: 00000000
    DE_REG[0x43]: 00000000
    DE_REG[0x44]: 00000000
    DE_REG[0x45]: 00000000
    DE_REG[0x46]: 00000000
    DE_REG[0x47]: 00000000
    DE_REG[0x48]: 00000000
    DE_REG[0x49]: 00000000
    DE_REG[0x4A]: 00000000
    DE_REG[0x4B]: 00000000
    DE_REG[0x4C]: 00800006
    DE_REG[0x4D]: 00000000
    DE_REG[0x4E]: 00000108
    DE_REG[0x4F]: 00000000
    DE_REG[0x50]: 00000000
    DE_REG[0x51]: 00140000
    DE_REG[0x52]: 00000000
    DE_REG[0x53]: 00000000
    DE_REG[0x54]: 00000000
    DE_REG[0x55]: 00000040
    DE_REG[0x56]: 00000000
    DE_REG[0x57]: 00000000
    DE_REG[0x58]: 00000000
    DE_REG[0x59]: 00000000
    DE_REG[0x5A]: 00000000
    DE_REG[0x5B]: 00000000
    DE_REG[0x5C]: 00000000
    DE_REG[0x5D]: 00000000
    DE_REG[0x5E]: 00000000
    DE_REG[0x5F]: 00000000
    DE_REG[0x60]: 0000249F
    DE_REG[0x61]: 00000023
    DE_REG[0x62]: 000000FF
    DE_REG[0x63]: 0000001F
    DE_REG[0x64]: 00000023
    DE_REG[0x65]: 00000744
    DE_REG[0x66]: 000007A9
    DE_REG[0x67]: 00FFF000
    DE_REG[0x68]: 00000000
    DE_REG[0x69]: 00000000
    DE_REG[0x6A]: 00000000
    DE_REG[0x6B]: 00000000
    DE_REG[0x6C]: 00000000
    DE_REG[0x6D]: 00000000
    DE_REG[0x6E]: 00000000
    DE_REG[0x6F]: 00000000
    DE_REG[0x70]: 00000000
    DE_REG[0x71]: 00000000
    DE_REG[0x72]: 00000000
    DE_REG[0x73]: 00000000
    DE_REG[0x74]: 00000000
    DE_REG[0x75]: 00000000
    DE_REG[0x76]: 00000000
    DE_REG[0x77]: 00000000
    DE_REG[0x78]: 00000000
    DE_REG[0x79]: 00000000
    DE_REG[0x7A]: 00000000
    DE_REG[0x7B]: 00000000
    DE_REG[0x7C]: 00000000
    DE_REG[0x7D]: 00000000
    DE_REG[0x7E]: 00000000
    DE_REG[0x7F]: 00000000
    DE_REG[0x80]: 00000000
    DE_REG[0x81]: 00000000
    DE_REG[0x82]: 00000000
    DE_REG[0x83]: 00000000
    DE_REG[0x84]: 00000000
    DE_REG[0x85]: 00000000
    DE_REG[0x86]: 00000000
    DE_REG[0x87]: 00000000
    DE_REG[0x88]: 00000000
    DE_REG[0x89]: 00000000
    DE_REG[0x8A]: 00000000
    DE_REG[0x8B]: 00000000
    DE_REG[0x8C]: 00000000
    DE_REG[0x8D]: 00000000
    DE_REG[0x8E]: 00000000
    DE_REG[0x8F]: 00000000
    DE_REG[0x90]: 00000000
    DE_REG[0x91]: 00000000
    DE_REG[0x92]: 00000000
    DE_REG[0x93]: 00000000
    DE_REG[0x94]: 00000000
    DE_REG[0x95]: 00000000
    DE_REG[0x96]: 00000000
    DE_REG[0x97]: 00000000
    DE_REG[0x98]: 00000000
    DE_REG[0x99]: 00000000
    DE_REG[0x9A]: 00000000
    DE_REG[0x9B]: 00000000
    DE_REG[0x9C]: 00000000
    DE_REG[0x9D]: 00000000
    DE_REG[0x9E]: 00000000
    DE_REG[0x9F]: 00000000
    DE_REG[0xA0]: 00000000
    DE_REG[0xA1]: 00000000
    DE_REG[0xA2]: 00000000
    DE_REG[0xA3]: 00000000
    DE_REG[0xA4]: 00000000
    DE_REG[0xA5]: 000078A0
    DE_REG[0xA6]: 00000000
    DE_REG[0xA7]: 00000000
    DE_REG[0xA8]: 00000000
    DE_REG[0xA9]: 00000000
    DE_REG[0xAA]: 00000000
    DE_REG[0xAB]: 00000000
    DE_REG[0xAC]: 00000000
    DE_REG[0xAD]: 00000000
    DE_REG[0xAE]: 00000000
    DE_REG[0xAF]: 00000000
    DE_REG[0xB0]: 00005A64
    DE_REG[0xB1]: 00005604
    DE_REG[0xB2]: 00000C00
    DE_REG[0xB3]: 00000800
    DE_REG[0xB4]: 00000000
    DE_REG[0xB5]: 00000000
    DE_REG[0xB6]: 00000000
    DE_REG[0xB7]: 00000000
    DE_REG[0xB8]: 00000000
    DE_REG[0xB9]: 00000000
    DE_REG[0xBA]: 00000000
    DE_REG[0xBB]: 00000000
    DE_REG[0xBC]: 00000000
    DE_REG[0xBD]: 00000000
    DE_REG[0xBE]: 00000000
    DE_REG[0xBF]: 00000000
    ----TG registers----
    TG_REG[0x00]: 00000008
    TG_REG[0x01]: 00000006
    TG_REG[0x02]: 00000018
    TG_REG[0x03]: 00000000
    TG_REG[0x04]: 00000000
    TG_REG[0x05]: 00000000
    TG_REG[0x06]: 00000000
    TG_REG[0x07]: 00000000
    TG_REG[0x08]: 00000044
    TG_REG[0x09]: 00000000
    TG_REG[0x0A]: 00000000
    TG_REG[0x0B]: 00000000
    TG_REG[0x0C]: 00100000
    TG_REG[0x0D]: 00100000
    TG_REG[0x0E]: 00000004
    TG_REG[0x0F]: 0000049A
    TG_REG[0x10]: 00FAC688
    TG_REG[0x11]: 00022110
    TG_REG[0x12]: 00000000
    TG_REG[0x13]: 00000000
    TG_REG[0x14]: 00000000
    TG_REG[0x15]: 00000000
    TG_REG[0x16]: 00000000
    TG_REG[0x17]: 00000000
    TG_REG[0x18]: 00000000
    TG_REG[0x19]: 00000000
    TG_REG[0x1A]: 00000000
    TG_REG[0x1B]: 00000000
    TG_REG[0x1C]: 00000000
    TG_REG[0x1D]: 00000000
    TG_REG[0x1E]: 00000000
    TG_REG[0x1F]: 00EF0000
    TG_REG[0x20]: 00000000
    TG_REG[0x21]: 0040009F
    TG_REG[0x22]: 00012020
    TG_REG[0x23]: 00000000
    TG_REG[0x24]: 00000000
    TG_REG[0x25]: 00000000
    TG_REG[0x26]: 00000000
    TG_REG[0x27]: 00000000
    TG_REG[0x28]: 00000000
    TG_REG[0x29]: 00000000
    TG_REG[0x2A]: 00000000
    TG_REG[0x2B]: 00000000
    TG_REG[0x2C]: 00000000
    TG_REG[0x2D]: 00000000
    TG_REG[0x2E]: 00000000
    TG_REG[0x2F]: 00000000
    TG_REG[0x30]: 00000000
    TG_REG[0x31]: 00080000
    TG_REG[0x32]: 00000000
    TG_REG[0x33]: 00000000
    TG_REG[0x34]: 00000000
    TG_REG[0x35]: 00400441
    TG_REG[0x36]: 00000000
    TG_REG[0x37]: 00000000
    TG_REG[0x38]: 00000000
    TG_REG[0x39]: 00000000
    TG_REG[0x3A]: 00000200
    TG_REG[0x3B]: 00000000
    TG_REG[0x3C]: 00000000
    TG_REG[0x3D]: 00000000
    TG_REG[0x3E]: 00000000
    TG_REG[0x3F]: 00000000
    TG_REG[0x40]: 00000000
    TG_REG[0x41]: 00000000
    TG_REG[0x42]: 00000000
    TG_REG[0x43]: 00000000
    TG_REG[0x44]: 00000000
    TG_REG[0x45]: 00000000
    TG_REG[0x46]: 00000000
    TG_REG[0x47]: 00000000
    TG_REG[0x48]: 00000000
    TG_REG[0x49]: 00000000
    TG_REG[0x4A]: 00000000
    TG_REG[0x4B]: 00000000
    TG_REG[0x4C]: 00000000
    TG_REG[0x4D]: 00000000
    TG_REG[0x4E]: 00000000
    TG_REG[0x4F]: 00000000
    TG_REG[0x50]: 00000000
    TG_REG[0x51]: 00000000
    TG_REG[0x52]: 00000000
    TG_REG[0x53]: 00000000
    TG_REG[0x54]: 00000000
    TG_REG[0x55]: 00000000
    TG_REG[0x56]: 00000000
    TG_REG[0x57]: 00000000
    TG_REG[0x58]: 00000000
    TG_REG[0x59]: 00000000
    TG_REG[0x5A]: 00000000
    TG_REG[0x5B]: 00000000
    TG_REG[0x5C]: 00000000
    TG_REG[0x5D]: 00000000
    TG_REG[0x5E]: 00000000
    TG_REG[0x5F]: 00000000
    TG_REG[0x60]: 00000000
    TG_REG[0x61]: 00000000
    TG_REG[0x62]: 00000000
    TG_REG[0x63]: 00000000
    TG_REG[0x64]: 00000000
    TG_REG[0x65]: 00006800
    TG_REG[0x66]: 00000000
    TG_REG[0x67]: 00000000
    TG_REG[0x68]: 00000000
    TG_REG[0x69]: 00000000
    TG_REG[0x6A]: 00000000
    TG_REG[0x6B]: 00000000
    TG_REG[0x6C]: 00000444
    TG_REG[0x6D]: 00000000
    TG_REG[0x6E]: 00000000
    TG_REG[0x6F]: 00000000
    TG_REG[0x70]: 00000000
    TG_REG[0x71]: 00000000
    TG_REG[0x72]: 00000000
    TG_REG[0x73]: 00000000
    TG_REG[0x74]: 00000000
    TG_REG[0x75]: 00000000
    TG_REG[0x76]: 00000000
    TG_REG[0x77]: 00000000
    TG_REG[0x78]: 00000000
    TG_REG[0x79]: 00000000
    TG_REG[0x7A]: 00000000
    TG_REG[0x7B]: 00000000
    TG_REG[0x7C]: 00000000
    TG_REG[0x7D]: 00000000
    TG_REG[0x7E]: 00000000
    TG_REG[0x7F]: 00000000
    TG_REG[0x80]: 00000000
    TG_REG[0x81]: 000000A0
    TG_REG[0x82]: 000186A0
    TG_REG[0x83]: 00000044
    TG_REG[0x84]: 00000000
    TG_REG[0x85]: 00000000
    TG_REG[0x86]: 00000000
    TG_REG[0x87]: 00000008
    TG_REG[0x88]: 00000001
    TG_REG[0x89]: 00000009
    TG_REG[0x8A]: 00000001
    TG_REG[0x8B]: 00000009
    TG_REG[0x8C]: 000000A1
    TG_REG[0x8D]: 00000000
    TG_REG[0x8E]: 0000292F
    TG_REG[0x8F]: 0000C0E4
    TG_REG[0x90]: 00000000
    TG_REG[0x91]: 00000000
    TG_REG[0x92]: 00000008
    TG_REG[0x93]: 00000000
    TG_REG[0x94]: 00000000
    TG_REG[0x95]: 00000000
    TG_REG[0x96]: 00400003
    TG_REG[0x97]: 00400300
    TG_REG[0x98]: 00C02866
    TG_REG[0x99]: 00800000
    TG_REG[0x9A]: 00000081
    TG_REG[0x9B]: 00000000
    TG_REG[0x9C]: 00000000
    TG_REG[0x9D]: 00400120
    TG_REG[0x9E]: 00000210
    TG_REG[0x9F]: 00400000
    TG_REG[0xA0]: 00800000
    TG_REG[0xA1]: 00000081
    TG_REG[0xA2]: 00000000
    TG_REG[0xA3]: 00000000
    TG_REG[0xA4]: 00000000
    TG_REG[0xA5]: 00000000
    TG_REG[0xA6]: 00000000
    TG_REG[0xA7]: 00000000
    TG_REG[0xA8]: 00000000
    TG_REG[0xA9]: 004002D2
    TG_REG[0xAA]: 00002852
    TG_REG[0xAB]: 00400000
    TG_REG[0xAC]: 00800000
    TG_REG[0xAD]: 00000081
    TG_REG[0xAE]: 00400302
    TG_REG[0xAF]: 00002852
    TG_REG[0xB0]: 00400000
    TG_REG[0xB1]: 00800000
    TG_REG[0xB2]: 00000081
    TG_REG[0xB3]: 00402853
    TG_REG[0xB4]: 00002854
    TG_REG[0xB5]: 00400000
    TG_REG[0xB6]: 00800000
    TG_REG[0xB7]: 00000081
    TG_REG[0xB8]: 00000000
    TG_REG[0xB9]: 00000000
    TG_REG[0xBA]: 00000000
    TG_REG[0xBB]: 00000000
    TG_REG[0xBC]: 00000000
    TG_REG[0xBD]: 00000000
    TG_REG[0xBE]: 00000000
    TG_REG[0xBF]: 00000000
    TG_REG[0xC0]: 00000000
    TG_REG[0xC1]: 00000000
    TG_REG[0xC2]: 00400003
    TG_REG[0xC3]: 00400120
    TG_REG[0xC4]: 00C0285C
    TG_REG[0xC5]: 008028D4
    TG_REG[0xC6]: 00000081
    TG_REG[0xC7]: 00400003
    TG_REG[0xC8]: 004000F0
    TG_REG[0xC9]: 00C0285C
    TG_REG[0xCA]: 00802924
    TG_REG[0xCB]: 00000081
    TG_REG[0xCC]: 00400003
    TG_REG[0xCD]: 0000285C
    TG_REG[0xCE]: 00400000
    TG_REG[0xCF]: 00000000
    TG_REG[0xD0]: 00000081
    TG_REG[0xD1]: 0040292F
    TG_REG[0xD2]: 00002937
    TG_REG[0xD3]: 00400000
    TG_REG[0xD4]: 00800000
    TG_REG[0xD5]: 00000081
    TG_REG[0xD6]: 00000001
    TG_REG[0xD7]: 00000000
    TG_REG[0xD8]: 00000000
    TG_REG[0xD9]: 00000000
    TG_REG[0xDA]: 00000000
    TG_REG[0xDB]: 00000000
    TG_REG[0xDC]: 00000000
    TG_REG[0xDD]: 00000000
    TG_REG[0xDE]: 00000000
    TG_REG[0xDF]: 00000000
  • Hi Yao,

    Could you please confirm if you do an explicit external reset of the OPT9221 before accessing the registers over I2C?

    - Anand
  • Hi, Anand

    Yes, we do external hardware reset of OPT9221 by RESETZ pin before accessing the registers

    I checked result with no external reset, the illumination signals now changed to following constant value (all with inverse voltage)

     ILLUM_EN = 1, ILLUM_P = 1 and ILLUM_N = 0

    Maybe the hardware reset conflicts the firmware loading of OPT9221?

    Yao

  • Yao,

    Could you ensure the OPT9221 is booted before doing an explicit hardware reset? You can monitor the INIT_DONE signal to ensure the OPT9221 is ready.

    Best Regards,
    Anand
  • Hi, Anand

    This problem is solved after we changing another power supply board.

    Based on our experiment, the most probable reason is that the power supply cannot provide sufficient current for OPT8241.

    • The origin board all use LDOs to supply all voltage and each channel has 1A limit, when we changed to a  power board with 3A  limit, everything is OK now.
    • We also did software experiment on hw/sw resetting opt9221 during power-on configuration or after configuration. And both results are the same, which indicates there's no relation between resetting sequence and the ILLUM_X signals output problem. 

    If TI can provide more information on datasheet, it'll be better for both sw/hw developers, such as:

    • Power supply criteria and recommended chips
    • OPT9221/OPT8241 power-on/configuration/resetting flow or state machine.

    Yao

  • Dear Yao,


    We don't see this problem on our boards. We are trying to understand what could be different. We will get back to you after we reproduce the issue and get to the root cause.

    Could you tell us if your board is an exact copy of OPT8241-CDK or if there are any significant changes in the power management portion?

    Regards

  • The power supply parts are different with OPT8241-CDK.

    We do no use TPS659122 PMU to supply power. Previously we use independent 7 LDOs to supply all power, each channel has a 1A current limit, and then we changed to use 3A limit independent DC/DCx4 and LDOx3 to supply all power. This change fixes our problem.

    ---Updated-----

    we found that if the 1.8V AVDD_PLL is not supplied properly, the ILLUM_X signals will not work and other signals seems all work fine! 

    Yao