Loading ...
Sorry, an error occurred while loading the content.

I2C Slave blocks bus

Expand Messages
  • christian.heidler
    I m using a system with ADuC7024 (-62 I31) running as I2C slave. In some cases - which are not really reproducable - the ADuC blocks the I2C bus by pulling the
    Message 1 of 4 , Nov 28, 2007
    • 0 Attachment
      I'm using a system with ADuC7024 (-62 I31) running as I2C slave. In
      some cases - which are not really reproducable - the ADuC blocks the
      I2C bus by pulling the signals - SDA and SCL! - to a non valid
      level of about 2 V.

      The set up of the I2C hardware (e.g. pull-up resistors) is ok and
      other peripherals on the bus (RTC, stepper motor driver, temperature
      sensor etc.) are working without any problems - until the problem
      occurs. The I2C master is a Marvel PXA270 processor.

      The very odd thing is that in some cases even if I switch off the
      whole system (removing power supply completely and waiting for all
      capacitors to discharge) the bus is blocked when I switch the system
      on again! When I remove the ADuC slave from the system everythings
      works fine again.

      I read about the er021 (I2C Slave not Releasing the Bus). But this
      seems not to be the problem because the level is not pulled low -
      its in an intermedate state...

      Did anyone have a similar problem - or better: a solution?

      Thanks for fast reply!
    • Rick Collins
      ... I would suggest that you explore the problem a bit further. It is hard to imagine an output driving the bus to an invalid voltage. Also, although it may
      Message 2 of 4 , Nov 28, 2007
      • 0 Attachment
        --- In ADuC_ARM@yahoogroups.com, "christian.heidler"
        <christian.heidler@...> wrote:
        >
        > I'm using a system with ADuC7024 (-62 I31) running as I2C slave. In
        > some cases - which are not really reproducable - the ADuC blocks the
        > I2C bus by pulling the signals - SDA and SCL! - to a non valid
        > level of about 2 V.
        >
        > The set up of the I2C hardware (e.g. pull-up resistors) is ok and
        > other peripherals on the bus (RTC, stepper motor driver, temperature
        > sensor etc.) are working without any problems - until the problem
        > occurs. The I2C master is a Marvel PXA270 processor.
        >
        > The very odd thing is that in some cases even if I switch off the
        > whole system (removing power supply completely and waiting for all
        > capacitors to discharge) the bus is blocked when I switch the system
        > on again! When I remove the ADuC slave from the system everythings
        > works fine again.
        >
        > I read about the er021 (I2C Slave not Releasing the Bus). But this
        > seems not to be the problem because the level is not pulled low -
        > its in an intermedate state...
        >
        > Did anyone have a similar problem - or better: a solution?

        I would suggest that you explore the problem a bit further. It is
        hard to imagine an output driving the bus to an invalid voltage.
        Also, although it may appear that the ADuC is at fault, you might want
        to verify that by causing the problem, then isolating the ADuC and
        seeing what voltage you get on the two new busses.

        When the ADuC hangs the bus, is the ADuC otherwise working correctly?
        If the ADuC is crapped out at that point, you may be looking at a
        problem with an extraneous voltage on the bus upsetting the ADuC.

        Just a few thoughts.
      • christian.heidler
        ... In ... the ... and ... temperature ... problem ... the ... all ... system ... everythings ... this ... want ... correctly? ... well its hard to explore it
        Message 3 of 4 , Nov 28, 2007
        • 0 Attachment
          --- In ADuC_ARM@yahoogroups.com, "Rick Collins" <gnuarm.2006@...>
          wrote:
          >
          > --- In ADuC_ARM@yahoogroups.com, "christian.heidler"
          > <christian.heidler@> wrote:
          > >
          > > I'm using a system with ADuC7024 (-62 I31) running as I2C slave.
          In
          > > some cases - which are not really reproducable - the ADuC blocks
          the
          > > I2C bus by pulling the signals - SDA and SCL! - to a non valid
          > > level of about 2 V.
          > >
          > > The set up of the I2C hardware (e.g. pull-up resistors) is ok
          and
          > > other peripherals on the bus (RTC, stepper motor driver,
          temperature
          > > sensor etc.) are working without any problems - until the
          problem
          > > occurs. The I2C master is a Marvel PXA270 processor.
          > >
          > > The very odd thing is that in some cases even if I switch off
          the
          > > whole system (removing power supply completely and waiting for
          all
          > > capacitors to discharge) the bus is blocked when I switch the
          system
          > > on again! When I remove the ADuC slave from the system
          everythings
          > > works fine again.
          > >
          > > I read about the er021 (I2C Slave not Releasing the Bus). But
          this
          > > seems not to be the problem because the level is not pulled low -

          > > its in an intermedate state...
          > >
          > > Did anyone have a similar problem - or better: a solution?
          >
          > I would suggest that you explore the problem a bit further. It is
          > hard to imagine an output driving the bus to an invalid voltage.
          > Also, although it may appear that the ADuC is at fault, you might
          want
          > to verify that by causing the problem, then isolating the ADuC and
          > seeing what voltage you get on the two new busses.
          >
          > When the ADuC hangs the bus, is the ADuC otherwise working
          correctly?
          > If the ADuC is crapped out at that point, you may be looking at a
          > problem with an extraneous voltage on the bus upsetting the ADuC.
          >
          > Just a few thoughts.
          >


          well its hard to explore it that way because the ADuC system is
          sealed almost completely - it's a serial product :-(

          But I discovered that it has something to do with temperature. By
          cooling it down it works. Heating it up to some more than ambient
          temperature make the problem to come up.

          By the way:
          is it important to have the exposed pad soldered to ground for
          cooling reasons?

          I will research a bit tonight

          Thanks for your thoughts
        • christian.heidler
          ... slave. ... blocks ... valid ... low - ... is ... might ... and ... a ... ADuC. ... so after weeks of testing I discovered that the ADuC itself is ok. There
          Message 4 of 4 , Feb 26 4:02 AM
          • 0 Attachment
            --- In ADuC_ARM@yahoogroups.com, "christian.heidler"
            <christian.heidler@...> wrote:
            >
            > --- In ADuC_ARM@yahoogroups.com, "Rick Collins" <gnuarm.2006@>
            > wrote:
            > >
            > > --- In ADuC_ARM@yahoogroups.com, "christian.heidler"
            > > <christian.heidler@> wrote:
            > > >
            > > > I'm using a system with ADuC7024 (-62 I31) running as I2C
            slave.
            > In
            > > > some cases - which are not really reproducable - the ADuC
            blocks
            > the
            > > > I2C bus by pulling the signals - SDA and SCL! - to a non
            valid
            > > > level of about 2 V.
            > > >
            > > > The set up of the I2C hardware (e.g. pull-up resistors) is ok
            > and
            > > > other peripherals on the bus (RTC, stepper motor driver,
            > temperature
            > > > sensor etc.) are working without any problems - until the
            > problem
            > > > occurs. The I2C master is a Marvel PXA270 processor.
            > > >
            > > > The very odd thing is that in some cases even if I switch off
            > the
            > > > whole system (removing power supply completely and waiting for
            > all
            > > > capacitors to discharge) the bus is blocked when I switch the
            > system
            > > > on again! When I remove the ADuC slave from the system
            > everythings
            > > > works fine again.
            > > >
            > > > I read about the er021 (I2C Slave not Releasing the Bus). But
            > this
            > > > seems not to be the problem because the level is not pulled
            low -
            >
            > > > its in an intermedate state...
            > > >
            > > > Did anyone have a similar problem - or better: a solution?
            > >
            > > I would suggest that you explore the problem a bit further. It
            is
            > > hard to imagine an output driving the bus to an invalid voltage.
            > > Also, although it may appear that the ADuC is at fault, you
            might
            > want
            > > to verify that by causing the problem, then isolating the ADuC
            and
            > > seeing what voltage you get on the two new busses.
            > >
            > > When the ADuC hangs the bus, is the ADuC otherwise working
            > correctly?
            > > If the ADuC is crapped out at that point, you may be looking at
            a
            > > problem with an extraneous voltage on the bus upsetting the
            ADuC.
            > >
            > > Just a few thoughts.
            > >
            >
            >
            > well its hard to explore it that way because the ADuC system is
            > sealed almost completely - it's a serial product :-(
            >
            > But I discovered that it has something to do with temperature. By
            > cooling it down it works. Heating it up to some more than ambient
            > temperature make the problem to come up.
            >
            > By the way:
            > is it important to have the exposed pad soldered to ground for
            > cooling reasons?
            >
            > I will research a bit tonight
            >
            > Thanks for your thoughts
            >


            so after weeks of testing I discovered that the ADuC itself is ok.
            There was a problem with the soldering process that causes short
            circuits to other signals.
          Your message has been successfully submitted and would be delivered to recipients shortly.