2022-02-09 07:36 PM
firstly, i use stm32f103RBx as MCU. I2C2 set SMBusHost,
the SMBusDevice set address 0x24, but the slave nack when smbhost send smbdevice address. the folllow is my timing:
2022-02-10 09:36 AM
Your trace shows the address byte sent as 0x48, so that means your code is treating the 0x24 address as if it were a 7-bit address in the lower 7 bits. Make sure that is really the device's address. Some places refer to I2C addresses by shifting them left one bit to make room for the R/W bit in the LSB. This is "left aligned" or "right aligned" as references in your previous post https://community.st.com/s/question/0D53W00001Ief87SAB/stm32f1xx-smbus-send-address-no-ack
Is this the same device you were trying to talk to in that post?
2022-02-10 05:29 PM
Thank you for u reply,
my smbus device nack again by shifting the slave address .
how to process in the interrupting when the slave address match, the code:
if(I2C_GetLastEvent(SMBus_NAME) & I2C_SR1_ADDR)
{
...
}
2022-02-13 07:13 PM
this is not the same device? the stm32 simulated as a smbus device, just the address is 0x48. the problem is the smbus device nack,but the address matched under the device interrupting.