Skip to content
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

I2 c sequential communication rework #11334

Merged
merged 3 commits into from Aug 29, 2019

Conversation

@ABOSTM
Copy link
Contributor

commented Aug 26, 2019

Description

Rework on STM I2C sequential transfert:

  • TARGET_STM: I2C sequential communication revert PR #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 Aug 20, 2019
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 #5 there was a last unexpected read.
It happened when stop condition was generated
@ABOSTM

This comment has been minimized.

Copy link
Contributor Author

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

This comment has been minimized.

Copy link
Contributor Author

commented Aug 26, 2019

@ciarmcom ciarmcom requested a review from ARMmbed/mbed-os-maintainers Aug 26, 2019
@ciarmcom

This comment has been minimized.

Copy link
Member

commented Aug 26, 2019

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

@LMESTM
LMESTM approved these changes Aug 28, 2019
@0xc0170

This comment has been minimized.

Copy link
Member

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
13 checks passed
13 checks passed
travis-ci/astyle Success!
Details
travis-ci/docs Success!
Details
travis-ci/doxy-spellcheck Success!
Details
travis-ci/events Success! Runtime is 8474 cycles.
Details
travis-ci/gitattributestest Success!
Details
travis-ci/include_check Success!
Details
travis-ci/licence_check Success!
Details
travis-ci/littlefs Success! Code size is 8464B.
Details
travis-ci/psa-autogen Success!
Details
travis-ci/tools-py2.7 Success!
Details
travis-ci/tools-py3.5 Success!
Details
travis-ci/tools-py3.6 Success!
Details
travis-ci/tools-py3.7 Success!
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.