All Forums
 Hardware
 General Hardware, ADSmartIO, Digital I/O and A/Ds
 IIC Error
 Forum Locked
 Send Topic to a Friend
 Printer Friendly
Author Topic  

mflynn

3 Posts

Posted - 15 Mar 2006 :  09:39:29  Show Profile  Email Poster
Can anyone explain why, after taking 2 brand new BitsyX boards and performing the exact same OS upgrade on each, one boots correctly and one yields the following errors on the serial debug port? This is the result we get on about 60% of the 400 BitsyX boards we have purchased.

SMARTIO.DLL Loaded successfully... Error in IIC_WriteByte err=0x2: -
Error : IIC_ReadByte ISR=0x2: -
Error in IIC_WriteByte err=0x1: -
Error : IIC_ReadByte ISR=0x2: -
Error in IIC_WriteByte err=0x1: -
Error : IIC_ReadByte ISR=0x2: -
Error in IIC_WriteByte err=0x1: -
Error : IIC_ReadByte ISR=0x2: -
Error : IIC_ReadByte err=0x3: -
Error : IIC_ReadByte ISR=0x2: -
I2C Error REsettin I2C interface
Error : IIC_ReadByte err=0x3: -
Error : IIC_ReadByte ISR=0x2: -
I2C Error REsettin I2C interface

ctacke

877 Posts

Posted - 15 Mar 2006 :  09:50:34  Show Profile  Email Poster
This error message comes from the legacy I2C bus driver under a few possible conditions. The legacy driver was especially non-forgiving if you attempt to communicate with a device address that did not exist on the bus or if a bus error occurred. This could be what you're seeing here. We'd need more detail on exactly what your app is doing at startup with the bus.
Go to Top of Page

ctacke

877 Posts

Posted - 15 Mar 2006 :  10:08:52  Show Profile  Email Poster
Added note:

After reviewing an email mark sent to Support. I noticed that you are using a managed code application. This brings up a couple important points:

  1. ADS CE 4.2 devices typically contain two I2C bus drivers. One is a legacy driver and is referenced via the port name "IIC1:" the newer driver is referenced via the port name "I2C1:". The new driver has has significant work and testing done on it. The legacy driver has had very little and has only been kept in the builds to prevent breaking existing applications that might be using it. We recommend that all new development use the new driver (I2C1:) instead of the old driver (IIC1:).
  2. The structure of the legacy driver data is not conducive to use with managed code.
    The structure contains a pointer that the marshaller does not know about, and the result is that the pointer is invalid in the context of the driver's process (device.exe) and working around this limitation is extremely difficult. This was one of the primary reasons we rewrote the driver.
  3. The legacy driver is very picky about the bus and any kind of hiccup or glitch can throw it into a not-so-good state. To make matters worse, it cannot recover from errors - once an error has occurred, a power cycle is usually required to recover the bus.


Go to Top of Page

mflynn

3 Posts

Posted - 15 Mar 2006 :  10:17:29  Show Profile  Email Poster
Chris - thanks for the reply. I am in contact with our hardware engineer regarding your response. I'll let you know what happens.
Go to Top of Page
  Topic  
 Forum Locked
 Send Topic to a Friend
 Printer Friendly
Jump To:
Eurotech Support Forums © Eurotech Inc. Go To Top Of Page
This page was generated in 0.03 seconds. Snitz Forums 2000