micropython/ports
Damien George 3eff81288c stm32/i2c: Fix generation of restart condition for hw I2C on F0/F7.
Before this patch I2C transactions using a hardware I2C peripheral on F0/F7
MCUs would not correctly generate the I2C restart condition, and instead
would generate a stop followed by a start.  This is because the CR2 AUTOEND
bit was being set before CR2 START when the peripheral already had the I2C
bus from a previous transaction that did not generate a stop.

As a consequence all combined transactions, eg read-then-write for an I2C
memory transfer, generated a stop condition after the first transaction and
didn't generate a stop at the very end (but still released the bus).  Some
I2C devices require a repeated start to function correctly.

This patch fixes this by making sure the CR2 AUTOEND bit is set after the
start condition and slave address have been fully transferred out.
2019-08-16 13:34:04 +10:00
..
bare-arm py/objdict: Make .fromkeys() method configurable. 2018-12-13 01:20:55 +11:00
cc3200 ports: Provide mp_hal_stdio_poll for sys.stdio polling where needed. 2019-07-01 17:10:12 +10:00
esp32 esp32: Add per-board configs, following other ports. 2019-08-16 00:22:29 +10:00
esp8266 esp8266/mpconfigport.h: Enable lwIP raw sockets. 2019-08-06 15:56:05 +10:00
javascript javascript: Enable support for frozen bytecode via FROZEN_MPY_DIR. 2019-07-09 13:17:15 +10:00
minimal minimal: Use soft float for CROSS=1 Cortex-M4 target. 2019-07-01 22:48:05 +10:00
nrf gitignore: Put build-*/ pattern in top-level gitignore file. 2019-08-16 00:08:08 +10:00
pic16bit ports: Provide mp_hal_stdio_poll for sys.stdio polling where needed. 2019-07-01 17:10:12 +10:00
qemu-arm qemu-arm: Use gchelper code to get registers for GC scanning. 2019-02-12 14:48:29 +11:00
samd samd/boards: Add Mini SAM M4 board configuration. 2019-08-16 00:28:30 +10:00
stm32 stm32/i2c: Fix generation of restart condition for hw I2C on F0/F7. 2019-08-16 13:34:04 +10:00
teensy ports: Provide mp_hal_stdio_poll for sys.stdio polling where needed. 2019-07-01 17:10:12 +10:00
unix gitignore: Put build-*/ pattern in top-level gitignore file. 2019-08-16 00:08:08 +10:00
windows windows/mpconfigport.h: Don't define restrict/inline/alignof for C++. 2019-07-19 16:58:02 +10:00
zephyr zephyr: Switch back to enabling I2C in board-specific configs. 2019-05-24 15:33:02 +10:00