Skip to content

I2 c sequential communication rework #11334

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 29, 2019

Conversation

ABOSTM
Copy link
Contributor

@ABOSTM ABOSTM commented Aug 26, 2019

Description

Rework on STM I2C sequential transfert:

  • TARGET_STM: I2C sequential communication revert PR Dev i2c common code #3324 to original cube HAL
  • TARGET_STM: Fix I2C sequential communication (needed after revert of PR#3324)
  • Fix I2C issue with test mbed_hal_fpga_ci_test_shield

Pull request type

[x] Fix
[ ] Refactor
[ ] Target update
[ ] Functionality change
[ ] Docs update
[ ] Test update
[ ] Breaking change

Reviewers

Release Notes

ABOSTM added 3 commits August 22, 2019 10:44
Keep former behaviour for I2C V1.
For I2C V2:
Use only I2C_FIRST_FRAME, I2C_FIRST_AND_LAST_FRAME and I2C_LAST_FRAME,
thus we avoid using reload bit.
Reload suppose the next frame would be in the same direction,
but we have no guarranty about this. So we cannot use reload bit.
Note: in case of 2 consecutive I2C_FIRST_FRAME,
a restart is automatically generated only if there is direction change in the direction.
On last case ARMmbed#5 there was a last unexpected read.
It happened when stop condition was generated
@ABOSTM
Copy link
Contributor Author

ABOSTM commented Aug 26, 2019

Test mbed_hal_fpga_ci_test_shield i2c passed on

  • NUCLEO-L4R5ZI-P (I2C V2)
  • NUCLEO-F207ZG (I2C V1)

ST CI tests OK:

target platform_name test suite result elapsed_time (sec) copy_method
NUCLEO_F091RC-ARMC6 NUCLEO_F091RC tests-api-i2c OK 19.1 default
NUCLEO_F091RC-ARMC6 NUCLEO_F091RC tests-assumptions-i2c OK 15.97 default
NUCLEO_F091RC-GCC_ARM NUCLEO_F091RC tests-api-i2c OK 20.75 default
NUCLEO_F091RC-GCC_ARM NUCLEO_F091RC tests-assumptions-i2c OK 17.58 default
NUCLEO_F091RC-IAR NUCLEO_F091RC tests-api-i2c OK 19.05 default
NUCLEO_F091RC-IAR NUCLEO_F091RC tests-assumptions-i2c OK 16.03 default
NUCLEO_F103RB-ARMC6 NUCLEO_F103RB tests-api-i2c OK 19.8 default
NUCLEO_F103RB-ARMC6 NUCLEO_F103RB tests-assumptions-i2c OK 16.53 default
NUCLEO_F103RB-GCC_ARM NUCLEO_F103RB tests-api-i2c OK 20.98 default
NUCLEO_F103RB-GCC_ARM NUCLEO_F103RB tests-assumptions-i2c OK 17.81 default
NUCLEO_F103RB-IAR NUCLEO_F103RB tests-api-i2c OK 19.58 default
NUCLEO_F103RB-IAR NUCLEO_F103RB tests-assumptions-i2c OK 16.39 default
NUCLEO_F207ZG-ARMC6 NUCLEO_F207ZG tests-api-i2c OK 18.81 default
NUCLEO_F207ZG-ARMC6 NUCLEO_F207ZG tests-assumptions-i2c OK 15.72 default
NUCLEO_F207ZG-GCC_ARM NUCLEO_F207ZG tests-api-i2c OK 19.18 default
NUCLEO_F207ZG-GCC_ARM NUCLEO_F207ZG tests-assumptions-i2c OK 16.49 default
NUCLEO_F207ZG-IAR NUCLEO_F207ZG tests-api-i2c OK 18.04 default
NUCLEO_F207ZG-IAR NUCLEO_F207ZG tests-assumptions-i2c OK 15.22 default
NUCLEO_F303ZE-ARMC6 NUCLEO_F303ZE tests-api-i2c OK 19.22 default
NUCLEO_F303ZE-ARMC6 NUCLEO_F303ZE tests-assumptions-i2c OK 16.18 default
NUCLEO_F303ZE-GCC_ARM NUCLEO_F303ZE tests-api-i2c OK 20.19 default
NUCLEO_F303ZE-GCC_ARM NUCLEO_F303ZE tests-assumptions-i2c OK 17.23 default
NUCLEO_F303ZE-IAR NUCLEO_F303ZE tests-api-i2c OK 18.91 default
NUCLEO_F303ZE-IAR NUCLEO_F303ZE tests-assumptions-i2c OK 16.01 default
NUCLEO_F446RE-ARMC6 NUCLEO_F446RE tests-api-i2c OK 18.51 default
NUCLEO_F446RE-ARMC6 NUCLEO_F446RE tests-assumptions-i2c OK 15.59 default
NUCLEO_F446RE-GCC_ARM NUCLEO_F446RE tests-api-i2c OK 19.01 default
NUCLEO_F446RE-GCC_ARM NUCLEO_F446RE tests-assumptions-i2c OK 16.49 default
NUCLEO_F446RE-IAR NUCLEO_F446RE tests-api-i2c OK 18.13 default
NUCLEO_F446RE-IAR NUCLEO_F446RE tests-assumptions-i2c OK 15.33 default
NUCLEO_F767ZI-ARMC6 NUCLEO_F767ZI tests-api-i2c OK 18.33 default
NUCLEO_F767ZI-ARMC6 NUCLEO_F767ZI tests-assumptions-i2c OK 15.47 default
NUCLEO_F767ZI-GCC_ARM NUCLEO_F767ZI tests-api-i2c OK 18.45 default
NUCLEO_F767ZI-GCC_ARM NUCLEO_F767ZI tests-assumptions-i2c OK 15.97 default
NUCLEO_F767ZI-IAR NUCLEO_F767ZI tests-api-i2c OK 17.71 default
NUCLEO_F767ZI-IAR NUCLEO_F767ZI tests-assumptions-i2c OK 15.11 default
NUCLEO_H743ZI-ARMC6 NUCLEO_H743ZI tests-api-i2c OK 18.89 default
NUCLEO_H743ZI-ARMC6 NUCLEO_H743ZI tests-assumptions-i2c OK 15.62 default
NUCLEO_H743ZI-GCC_ARM NUCLEO_H743ZI tests-api-i2c OK 19.29 default
NUCLEO_H743ZI-GCC_ARM NUCLEO_H743ZI tests-assumptions-i2c OK 15.83 default
NUCLEO_H743ZI-IAR NUCLEO_H743ZI tests-api-i2c OK 19.83 default
NUCLEO_H743ZI-IAR NUCLEO_H743ZI tests-assumptions-i2c OK 15.4 default
NUCLEO_L073RZ-ARMC6 NUCLEO_L073RZ tests-api-i2c OK 22.53 default
NUCLEO_L073RZ-ARMC6 NUCLEO_L073RZ tests-assumptions-i2c OK 18.75 default
NUCLEO_L073RZ-GCC_ARM NUCLEO_L073RZ tests-api-i2c OK 24.48 default
NUCLEO_L073RZ-GCC_ARM NUCLEO_L073RZ tests-assumptions-i2c OK 20.9 default
NUCLEO_L073RZ-IAR NUCLEO_L073RZ tests-api-i2c OK 21.78 default
NUCLEO_L073RZ-IAR NUCLEO_L073RZ tests-assumptions-i2c OK 18.33 default
NUCLEO_L152RE-ARMC6 NUCLEO_L152RE tests-api-i2c OK 19.09 default
NUCLEO_L152RE-ARMC6 NUCLEO_L152RE tests-assumptions-i2c OK 15.91 default
NUCLEO_L152RE-GCC_ARM NUCLEO_L152RE tests-api-i2c OK 20.12 default
NUCLEO_L152RE-GCC_ARM NUCLEO_L152RE tests-assumptions-i2c OK 17.08 default
NUCLEO_L152RE-IAR NUCLEO_L152RE tests-api-i2c OK 19.09 default
NUCLEO_L152RE-IAR NUCLEO_L152RE tests-assumptions-i2c OK 16.05 default
NUCLEO_L476RG-ARMC6 NUCLEO_L476RG tests-api-i2c OK 18.75 default
NUCLEO_L476RG-ARMC6 NUCLEO_L476RG tests-assumptions-i2c OK 15.83 default
NUCLEO_L476RG-GCC_ARM NUCLEO_L476RG tests-api-i2c OK 19.68 default
NUCLEO_L476RG-GCC_ARM NUCLEO_L476RG tests-assumptions-i2c OK 16.72 default
NUCLEO_L476RG-IAR NUCLEO_L476RG tests-api-i2c OK 18.58 default
NUCLEO_L476RG-IAR NUCLEO_L476RG tests-assumptions-i2c OK 15.72 default
NUCLEO_WB55RG-ARMC6 NUCLEO_WB55RG tests-api-i2c OK 18.61 default
NUCLEO_WB55RG-ARMC6 NUCLEO_WB55RG tests-assumptions-i2c OK 15.93 default
NUCLEO_WB55RG-GCC_ARM NUCLEO_WB55RG tests-api-i2c OK 19.32 default
NUCLEO_WB55RG-GCC_ARM NUCLEO_WB55RG tests-assumptions-i2c OK 16.51 default
NUCLEO_WB55RG-IAR NUCLEO_WB55RG tests-api-i2c OK 17.92 default
NUCLEO_WB55RG-IAR NUCLEO_WB55RG tests-assumptions-i2c OK 15.37 default

@ABOSTM
Copy link
Contributor Author

ABOSTM commented Aug 26, 2019

@ARMmbed/team-st-mcd

@ciarmcom ciarmcom requested a review from a team August 26, 2019 13:00
@ciarmcom
Copy link
Member

@ABOSTM, thank you for your changes.
@ARMmbed/mbed-os-maintainers please review.

@0xc0170
Copy link
Contributor

0xc0170 commented Aug 28, 2019

This PR is part of rollup PR #11366

Please do not update this PR, or if needed, let us know asap

@0xc0170 0xc0170 merged commit de121a3 into ARMmbed:master Aug 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants