Skip to content

Commit 5b6f1a8

Browse files
committed
Fixed I2C driver for L476
1 parent 2c98dc8 commit 5b6f1a8

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/boards/NucleoL476/i2c-board.c

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,27 @@ void I2cMcuFormat( I2c_t *obj, I2cMode mode, I2cDutyCycle dutyCycle, bool I2cAck
5353
{
5454
__HAL_RCC_I2C1_CLK_ENABLE( );
5555

56-
I2cHandle.Init.ClockSpeed = I2cFrequency;
57-
58-
if( dutyCycle == I2C_DUTY_CYCLE_2 )
56+
if( I2cFrequency == 100000 )
5957
{
60-
I2cHandle.Init.DutyCycle = I2C_DUTYCYCLE_2;
58+
I2cHandle.Init.Timing = 0x10909CEC;
6159
}
62-
else
60+
else if( I2cFrequency == 400000 )
6361
{
64-
I2cHandle.Init.DutyCycle = I2C_DUTYCYCLE_16_9;
62+
I2cHandle.Init.Timing = 0x00702991;
6563
}
6664

6765
I2cHandle.Init.OwnAddress1 = 0;
6866
I2cHandle.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
6967
I2cHandle.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
7068
I2cHandle.Init.OwnAddress2 = 0;
71-
I2cHandle.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
72-
I2cHandle.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
69+
I2cHandle.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
70+
I2cHandle.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
71+
I2cHandle.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
7372

7473
HAL_I2C_Init( &I2cHandle );
74+
75+
HAL_I2CEx_ConfigAnalogFilter( &I2cHandle, I2C_ANALOGFILTER_ENABLE );
76+
HAL_I2CEx_ConfigDigitalFilter( &I2cHandle, 0 );
7577
}
7678

7779
void I2cMcuResetBus( I2c_t *obj )

0 commit comments

Comments
 (0)