Skip to main content
arapp1990
Associate II
November 10, 2015
Question

I2C/SMBus doesn't respond to ARA

  • November 10, 2015
  • 1 reply
  • 673 views
Posted on November 10, 2015 at 15:53

Hello guys,

I'm running a communication between two STM32F4 via SMBus. For configuration I use HAL Drivers and CubeMX. Pin Configuration:

PB7 ------> I2C1_SDA
PB8 ------> I2C1_SCL
PB5 ------> I2C1_SMBA

GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_7 | GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

I2C device configuration:

/* Peripheral clock enable */
__I2C1_CLK_ENABLE();
/* Peripheral interrupt init*/
HAL_NVIC_SetPriority(I2C1_EV_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(I2C1_EV_IRQn);
HAL_NVIC_SetPriority(I2C1_ER_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(I2C1_ER_IRQn);
hi2c1.Instance = I2C1;
hi2c1.Init.ClockSpeed = 100000;
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c1.Init.OwnAddress1 = (36<<
1
); 
hi2c1.Init.AddressingMode
= 
I2C_ADDRESSINGMODE_7BIT
;
hi2c1.Init.DualAddressMode
= 
I2C_DUALADDRESS_ENABLED
;
hi2c1.Init.OwnAddress2 = (38<<1);
hi2c1.Init.GeneralCallMode
= 
I2C_GENERALCALL_DISABLED
;
hi2c1.Init.NoStretchMode
= 
I2C_NOSTRETCH_ENABLE
;
hi2c1.Instance->CR1 |= I2C_CR1_SMBUS; // Mode = SMBus
hi2c1.Instance->CR1 &= ~I2C_CR1_SMBTYPE; // SMBus type = Device
HAL_I2C_Init(&hi2c1);

The data transfer works well. Now I would like the slave-device to respond to ARA (00011000, as described in RM0090, p.846)and to drive the SMBA pin to LOW (also see p.851). The device should Ack the ARA request and transmit its own first address.

http://www.st.com/web/en/resource/technical/document/reference_manual/DM00031pdf

Set ALERT Bit in I2C_CR1:

hi2c1.Instance->CR1 |= I2C_CR1_ALERT;

But the device doesn't respond to ARA and the SMBA pin stays pulled to HIGH. Do you have any idea what is missing? Thanks
    This topic has been closed for replies.

    1 reply

    arapp1990
    arapp1990Author
    Associate II
    November 12, 2015
    Posted on November 12, 2015 at 12:37

    Nobody any idea?