STM32F103C8T6 ARM STM32 Minimum System Development Board

September 16, 2020

libmaple -- i2c errata

I was spending some idle moments browsing the libmaple documents and have been finding treasures. One was this comment:
libmaple is bundled with the Maple IDE. However, we develop it separately, and release it standalone for advanced users who might chafe at the “sketch” programming model of the IDE.
Indeed I am one of those who "chafe" at sketch programming and the whole Arduino style of doing things.

More important with regard to my current frustration with getting an i2c driver to work are these comments:

There are some important known problems with the built-in I2C peripherals. For more information, see STM32F10xx8 and STM32F10xxB Errata sheet (ST Doc ID 14574 Rev 8), Section 2.11.1, 2.11.2. An important consequence of these problems is that the I2C interrupt must not be preempted. Consequently, (by default) Wirish uses an I2C interrupt priority which is the highest in the system (priority level 0). Other interrupt priorities are set lower.

Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org