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.

PCA9535: If a 25% duty cycle square wave is applied to input pin before power-on, outputs don't change

Part Number: PCA9535
Other Parts Discussed in Thread: TCA9535

Tool/software:

We make an AM64xx DAQ board that uses the PCA9535.

Our lead customer has discovered that, if a signal is applied to the input pins before VCC is powered up, the output pins won't work.

Specifically, when the power-on sequence is complete a Linux service program runs which configures the I/O directions of the 16 digital bits, about half as outputs.  If a square wave is present on an input pin before the power-up has begun the pins configured as outputs don't toggle when commanded to do so.

We have read-back the I/O configuration register and the data register and both show valid data: the 0x5570 bit pattern for inputs vs outputs reads back properly, etc: so we know the problem is not a locked up I2C interface. (As seems to occur so often here on the forums, and which the TCA9535 is the recommended fix.)

All 16 of the digital I/O pins have 10kΩ pull-downs.

We've shipped a bunch of these units so swapping to TCA9535 is not completely plausible.

Thoughts?

  • Hi John,

    I need some more time to look into this issue. I have not heard of this specific problem before. 

    In the mean time, clarification on the PWM, it is a 25% duty cycle square wave with 25% ON time, 75% OFF time. What is the voltage on the supply and is the PWM the same voltage level on the I/O side? 

    Regards,

    Tyler

  • Yes, 25% of the time the signal is +5V.  The output is from an opto-coupler, which is driven by a valve controller that goes “high” for one second, then switches to 25% duty cycle to cut power consumption.

    When you ask “what is the voltage on the supply” do you refer to Vcc?  I’m not certain but I believe +3.3 (I’m a programmer).  I can confirm, tomorrow, if you’d like.

  • The IIOK specification in the absolute maximum ratings table implies that there are clamping diodes to VCC. Does your circuit limit the current to less than 20 mA?

  • This forum post suggests there is no diode to Vcc: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1300291/pca9535-remote-16-bit-i2c-and-smbus-low-power-i-o-expander-with-interrupt-output-and-configuration-registers/4937040?tisearch=e2e-sitesearch&keymatch=pca9535%2520diode#4937040

    Our design has 10kΩ pullups on each of the 16 DIO lines, but no current-limiting (series) resistors.  I'm uncertain how much current the opto-couplers driving the oscillating signal are producing but I will check into it.

  • Hi John,

    I should have some time to check these characteristics in lab. I want to test on my end the behavior of PWM wave on the IO during a power up. 

    Do we have a waveform of the power up sequence? Is the customer powering up directly from GND? Is there a lot trace code number associated with these devices? 

    Regards,

    Tyler

  • Thank you.  Our customer is going to attempt adding a current limiting resistor as well.  He might take a few days, however, so any data you can provide will be useful.

    These are SR1 devices.  I may be able to find a lot code trace number if that's still pertinent, but I wouldn't know where to begin looking.  On the chip, I presume? (Sorry, programmer here.)

    I'm uncertain what "powering up directly from GND" means: the unit our card is in takes 24V through a big switch; turning the switch off disconnects the 24V from the system.  The 24V eventually reaches our card once the switch is turned on.  (Our design takes in anything from 7VDC to 31VDC IIRC.)

    I'm afraid *I* don't have a waveform of the power up sequence.  I'm uncertain what that would entail: Our card regulates the input VDC and produces VCC and related voltages (for the AM64xx and the FPGA, and the rest of the circuits like the PCA9535).  I believe all these chip-power voltages come up "at the same time".  Please let me know how I might provide additional details.

    Note: in addition to "the outputs don't respond after power-up while PWM connected" we get another symptom here in our office: our eNET-AIO16-16F module can simply fail to come out of reset mode.  Recovering from this requires removing our card from the overall system and powering it up once.  Nothing we've done recovers while our card remains in the system, not even powering the system off over the weekend, with or without power cables and signal lines connected.  I mention this only in case it is related; it may prove to be a red herring — a problem with the overall system rather than the PCA9535 and/or our circuits.

  • Hi John,

    Looking forward to hearing the results of the current limiting resistance. 

    The LTC would have been along with the ordering information or on the ESD bag. I just wanted to verify the devices were from a reputable TI source. 

    Powering up from GND, meaning, powering from a GND level voltage to 3.3V. Completing a successful power on reset sequence so that the registers reset properly. 

    That is okay that no power sequencing waveform is available. We can do without. 

    Note: in addition to "the outputs don't respond after power-up while PWM connected" we get another symptom here in our office: our eNET-AIO16-16F module can simply fail to come out of reset mode.  Recovering from this requires removing our card from the overall system and powering it up once.  Nothing we've done recovers while our card remains in the system, not even powering the system off over the weekend, with or without power cables and signal lines connected.  I mention this only in case it is related; it may prove to be a red herring — a problem with the overall system rather than the PCA9535 and/or our circuits.

    Are there multiple boards that are experiencing this issue? Are there any boards that are working? 

    If so, take a working boards PCA9535 and replace with a fail board's PCA9535 to see if the failure tracks the IC. If the PCA9535 replacement causes a known good board to fail, then it is possible it is an IC related issue. 

    I wouldn't be knowledgeable about your system to know whether the issue is more system level or IC related. Given that the system cannot come out of reset mode, would the PCA9535 be affected in some way due to this system level issue? 

    Regards,

    Tyler

  • I am informed we always purchase direct from TI, unlike some manufacturers from whom we acquire parts via Arrow etc.

    re: powering up from GND: Today we confirmed the system provides zero volts to our board while the on/off switch is in the off position, and 24VDC when on.  The 24V takes ~10 seconds to drop below 0.2V but our regulator would have turned off relatively quickly (circa 7V).

    We have tested the failure-to-come-out-of-reset problem on only two boards; before we figured out how to recover a unit we'd believed it to be *bricked* (as I mentioned, even letting it sit in a bag over the weekend failed to recover it).  Our customers have *never* seen this symptom: it only occurs in my office, in the one system we have from our lead customer.

    The customer's only symptom is that the outputs refuse to activate (we have pull-downs and the outputs are stuck at zero) if the PWM is applied during power up.

    I, too, am looking forward to the current limiting resistor test results.  Have you had the time to attempt replicating the customer's symptom at your facility?

  • The customer has reported that they added a 1kΩ series resistor and the problem still occurs. No luck.

    They are now considering redesigning their board to have extra AND gates to disable the PWM signal until our board toggles an output bit to enable them...pretty evil given the 200 units in the field.

    I look forward to results from your testing

  • Hi John,

    I understand the gravity of the issue. 

    This is what we plan to test in lab today. 

    The PWM waveform of high for 1 second, then 25% duty cycle after that during power up might be hard to replicate. Might need to change P00 to 10k pullup, use a separate 5V supply, and then toggle the P00 pin with PWM from a function generator with 25% duty cycle. PWM starts approximately 1 second after power supply reaches 3.3V. 

    Regards,

    Tyler

  • In the typical scenario the 1-second DC ON time of the valve control has occurred hours or days before the digital chip (and our board) are powered.  The box our system goes in is usually powered for weeks, generating PWM for much of that time.

    Thus, you can probably ignore the 1 sec DC ON time for the purposes of recreating the scenario.

  • Hi John,

    The conclusion of today's lab results show that we are able to operate the I2C bus and configure the Pxx pins on both port 0 and port 1 setting pins to output and configuring the output to be HIGH or LOW. 

    We powered up VCC from 0V to 3.3V with PWM 25% 0V to 5V square wave onto P00 pin, and saw no lockups in the output configuration. 

    The device works as normal with and without the PWM signal input on power up. Please let us know if there are any further questions from your end or the customer in terms of setup. 

    Regards,

    Tyler

  • Excellent.  Thank you for ruling out the chip itself as the sensitive component.

  • In case your testing was significantly different: The frequency of the valve controller's square wave is either 10 kHz or 100 kHz.

  • Hi John, 

    We only tested 1kHz duty cycle. 

    We would have to test on Monday 10kHz or 100 kHz to cover all test conditions. 

    Regards,

    Tyler

  • The customer would really appreciate it.  Otherwise we have no ideas what could be provoking such a symptom(s).

    Thank you.

  • Hi John,

    Going to lab before lunch. Testing 10kHz and 100kHz. Will hopefully have a response by end of day today. 

    Regards, 

    Tyler

  • John,

    10kHz and 100kHz were tested 0V to 5V / 25% duty cycle square wave. No lock up issues, and the PCA9535 can issue commands correctly on the I2C bus via the output toggling HIGH/LOW. 

    Regards,

    Tyler