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.

TPS61310: Rising-edge flash mode behaving like level-sensitive

Part Number: TPS61310

Hi,

we are trying to use the rising-edge flash mode of the TPS61310 to trigger flash pulses of different lengths on multiple TPS61310s via the STRB0 pin.

Figure 45 on page 27 of the datasheet describes exactly what we want to achieve: A short trigger pulse on the STRB0 line starts a flash pulse that goes on for the exact time programmed with the STIM/SELSTIM bits in register 0x03. The length of the trigger pulse and flash pulse are supposed to be unrelated.

Our test scenario consists of two flash pulses with different lengths (5.3ms and 852ms). To set this scenario up we used the following settings in the TPS61310:

  • STRB1 pin:        permanently LOW
  • Tx-MASK pin:    NC
  • Register 0x00:   0x00
  • Register 0x01:   0x81 [flash mode; 25mA]
  • Register 0x02:   0x81 [flash mode; 25mA]
  • Register 0x03:   first pulse: 0x0C [5.3ms STIM; rising-edge] second pulse: 0xE4 [852ms STIM; rising-edge]
  • Register 0x04:   default
  • Register 0x05:   0x6F [default + all 3 LEDs enabled]
  • Register 0x06:   default
  • Register 0x07:   default

Both flash pulses are triggered by pulses on STRB0. Those trigger pulses have a HIGH-time of 5ms.

By observation it is clear that both flash pulses are the same length, approximately the length of the HIGH-time of the trigger pulse. Increasing the HIGH-time of the trigger pulse proportionally increases the flash pulse length.

Some experiments and observations:

  • The behaviour is the same when setting the SFT bit in register 3 and then triggering with the STRB0 pulse.
  • When the HIGH-time of the trigger pulse is increased to 10ms, the TO bit in register 3 is set after the first (5.3ms) pulse. After the second (852ms) pulse the TO bit is not set.
  • When the HIGH-time of the trigger pulse is increased to 900ms, the TO bit in register 3 is set after the first (5.3ms) and the second (852ms) pulse.

This behaviour does make perfect sense when you are expecting a level-sensitive trigger mode. However we set the trigger mode to rising-edge via the STT bit in register 3 and therefore expect rising-edge behaviour.

Is there a configuration setting we are missing? Are any of the other hardware pins of the TPS61310 important in that use case?

Thanks in advance.

  • Hi Stefan

        It seems fine, you need to use the rising -edge trigger mode with external "STRBx" pins.

    BR

    Sean

  • Hi Sean

    I am not quite sure if I understand your suggestion.

    I have now tried to only use the STRBx pins and a few configurations via I2C:

    • STRB1 pin: LOW
    • Register 0: 0x00
    • Register 1: 0x01
    • Register 2: 0x01
    • Register 3: 0xE4
    • Register 5: 0x6F

    I then trigger the flash pulse with a pulse on STRB0 of length 5ms.

    This leads to no light on the LEDs. I am quite certain that is because the MODE_CTRL in register1/2 is shutdown mode.

    In fact I am not sure how the hardware interface STRBx works in general, since I can not get a LED to turn on using only those pins unless I also set a MODE_CTRL via I2C.

    If I, additionally, set the MODE_CTRL to flash mode via I2C, I get the same behaviour as before. There must be something I am missing.

    Is there an example that shows the I2C settings and STRBx states necessary for a rising-edge flash pulse?

    BR

    Stefan

  • Hi Stefan,

         What's your input voltage and LED configuration?

         I think you regs configuration is ok, you need to set to flash mode if you user STRBx signals to trigger. MODE_CTRL[1:0] = 10

         Can you try just use the I2C, have you successfully communicate with our device?

    BR

    Sean

  • Hi Sean,

    We are supplying the TPS61310 with +5V. We have three LEDs connected to VOUT with their anodes, and to LED1, LED2, LED3 with their respective cathodes.

    Following your suggestion I tried to use the SFT bit in register3 to start a flash pulse. To do so I used the following settings:

    • STRB0: HIGH (needs to be HIGH for the SFT bit to be active, according to datasheet)
    • STRB1: LOW
    • Register 0: 0x00
    • Register 1: 0x81
    • Register 2: 0x81
    • Register 3: 0xE4
    • Register 5: 0x6F

    I would then set the SFT bit in register3 by writing 0xE6 to it.

    However before I even get to do that, the LEDs start to light up already. And it makes perfect sense, if you consider the TPS61310 to be in level-sensitive flash mode: As soon as the I2C write on register5 is finished the driver samples the STRB0 line, sees that it is HIGH and therefore starts the flash pulse. The flash length is the exact time I programmed with STIM since the TO event happens before any falling-edge on STRB0.

    Again this behaviour is conclusive as long as you accept the driver to be in level-sensitive flash mode. If it was in rising-edge mode, I would expect the LEDs not to light up until I set the SFT bit via I2C.

    Somehow my TPS61310 modules seem to be stuck in level-sensitive flash mode.

    Is there some connection to the TPS61310 that is necessary for it to allow rising-edge mode? We do not have Tx-MASK, TS, GPIO/PG or INDLED connected currently.

    By the way, I managed to adapt my control interface for the TPS61310 to be able to use the level-sensitive trigger in almost the same way as it would have used the rising-edge trigger. So solving this mystery is not hugely important to me, since I do not rely on getting the rising-edge trigger to work.

    However I am personally still interested in figuring out why I am configuring the driver for rising-edge operation and yet only observing level-sensitive behaviour.

    BR

    Stefan

  • Hi Stefan,

        That's a little strange and happy to know that this doesn't have much effect on your application.

        I guess since for external strobe signal to trigger the flash pulse, for the level-sensitive trigger mode, this makes sense since it needs to keep the same  pulse width with the input signal. That may be changed automatically with the internal state machine. But I will try to check with the designer when I have some chance to talk with them. Please go ahead. thanks.

    BR

    Sean