cancel
Showing results for 
Search instead for 
Did you mean: 

Does HAL/Cube support I2C SMB ARP transactions?

hbarta2
Associate III
Posted on June 19, 2015 at 01:48

I'm working with a device that uses the SMB Address Resolution Protocol as part of the response to generating an internal alert. I have no difficulty reading and writing address registers in general (With the peripheral configured as I2C) but cannot determine how to complete the SMB ARP transaction.

I'm reluctant to reconfigure the device as SMBus-two-wire-interface as we have two other devices on this I2C bus which are working fine.

Is there any way using HAL/Cube calls to manage this transaction? Reconfigure the I2C temporarily (long enough to complete the transaction?)

Which I2C HAL call would I use?

For those of you who know what I'm talking about (I don't 😉 ) Feel free to clue me in!

FWIW, the device is aLTC2943 battery monitor and the data sheet can be found at http://www.linear.com/product/LTC2943. The problem I'm trying to solve is that the  current/voltage/charge threshold alerts are not getting set and I believe that may be because I have no working code to implement the SMBus ARP transaction.

Hmm... I better try reading back the thresholds I'm, setting to see if that part is working. (But must post now of lose the opportunity.)

#i2c-smb-arp
2 REPLIES 2
hbarta2
Associate III
Posted on June 19, 2015 at 02:28

Never mind!

Once the thresholds were properly initrialized I could see that

  • The API HAL_I2C_Master_Receive() works for the Address Resolution Protocol
  • The ARP is not needed in order for the thresholds to be checked.

thanks,

hank

hbarta2
Associate III
Posted on June 19, 2015 at 15:37

Further update... The LTC2943 will not release the /ALCC signal until the ARP transaction is invoked. Reading the status register clears the status bits but the /ALCC signal will remain low until the Address Resolution Protocol I2C/SMB operation is executed.