Skip to content

Commit

Permalink
stm32_i2c: fix sending large data over i2c
Browse files Browse the repository at this point in the history
To trigger TC interrupt NBYTES needs to be set before RELOAD is disabled
similar to previous commitdone on stm32h7 510b622
  • Loading branch information
BazookaJoe1900 authored and xiaoxiang781216 committed Dec 19, 2024
1 parent 919cb73 commit a7869bb
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 10 deletions.
4 changes: 2 additions & 2 deletions arch/arm/src/stm32/stm32_i2c_v2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1984,9 +1984,9 @@ static int stm32_i2c_isr_process(struct stm32_i2c_priv_s *priv)
i2cinfo("TCR: DISABLE RELOAD: NBYTES = dcnt = %i msgc = %i\n",
priv->dcnt, priv->msgc);

stm32_i2c_disable_reload(priv);

stm32_i2c_set_bytes_to_transfer(priv, priv->dcnt);

stm32_i2c_disable_reload(priv);
}

i2cinfo("TCR: EXIT dcnt = %i msgc = %i status 0x%08" PRIx32 "\n",
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/src/stm32f0l0g0/stm32_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -1984,9 +1984,9 @@ static int stm32_i2c_isr_process(struct stm32_i2c_priv_s *priv)
i2cinfo("TCR: DISABLE RELOAD: NBYTES = dcnt = %i msgc = %i\n",
priv->dcnt, priv->msgc);

stm32_i2c_disable_reload(priv);

stm32_i2c_set_bytes_to_transfer(priv, priv->dcnt);

stm32_i2c_disable_reload(priv);
}

i2cinfo("TCR: EXIT dcnt = %i msgc = %i status 0x%08" PRIx32 "\n",
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/src/stm32f7/stm32_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -2018,9 +2018,9 @@ static int stm32_i2c_isr_process(struct stm32_i2c_priv_s *priv)
i2cinfo("TCR: DISABLE RELOAD: NBYTES = dcnt = %i msgc = %i\n",
priv->dcnt, priv->msgc);

stm32_i2c_disable_reload(priv);

stm32_i2c_set_bytes_to_transfer(priv, priv->dcnt);

stm32_i2c_disable_reload(priv);
}

i2cinfo("TCR: EXIT dcnt = %i msgc = %i status 0x%08" PRIx32 "\n",
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/src/stm32h5/stm32_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -2176,9 +2176,9 @@ static int stm32_i2c_isr_process(struct stm32_i2c_priv_s *priv)
* the transfer.
*/

stm32_i2c_enable_reload(priv);

stm32_i2c_set_bytes_to_transfer(priv, 255);

stm32_i2c_enable_reload(priv);
}
else
{
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/src/stm32u5/stm32_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -2223,9 +2223,9 @@ static int stm32_i2c_isr_process(struct stm32_i2c_priv_s *priv)
i2cinfo("TCR: DISABLE RELOAD: NBYTES = dcnt = %i msgc = %i\n",
priv->dcnt, priv->msgc);

stm32_i2c_disable_reload(priv);

stm32_i2c_set_bytes_to_transfer(priv, priv->dcnt);

stm32_i2c_disable_reload(priv);
}

i2cinfo("TCR: EXIT dcnt = %i msgc = %i status 0x%08" PRIx32 "\n",
Expand Down

0 comments on commit a7869bb

Please sign in to comment.