Age | Commit message (Collapse) | Author |
|
With the addition of a define for I2C4, the existing common i2c
functions seem to work out of the box on the F7 (tested on an
STM32F750).
|
|
I2C3 is on many parts, but wasn't properly supported with the register
definitions. Declare them centrally, just depending on the memorymap
defining them. On some parts, the rcc bits were defined, but not the
base registers.
Fixes: https://github.com/libopencm3/libopencm3/issues/820
|
|
Reported in: https://github.com/libopencm3/libopencm3/issues/925
|
|
Drop redundant field definitions, fix truncation of argument bug and add
documentation.
Fixes: https://github.com/libopencm3/libopencm3/issues/831
|
|
For both v1 and v2, support automatic calculation of timing registers
for 100khz and 400khz i2c modes.
Based on work by Chuck in
https://github.com/libopencm3/libopencm3/pull/470 for v1
|
|
For both v1 and v2, provide routines to help do arbitrary length
write/read transfers.
Tested with multiple byte writes and reads, for both 100khz and 400khz,
with repeated starts and stop/starts. However, only tested (presently)
with a single i2c target device, a Sensiron SHT21 sensor. Extended
testing against eeproms and alternative devices would be useful
|
|
* didn't follow naming conventions
* overly restricted to single byte register style commands.
Will be replaced by freeform transfer functions
|
|
Will be replaced by generic speed helpers.
|
|
No need to check results and return 1 or 0. The result itself is
suitable for use directly as a boolean, and a boolean is the intended
outcome.
|
|
It's not implemented, and not meaningful for i2c v2 peripheral
|
|
The f1, f2, f4, l1 chip families have a similar "v1" i2c peripheral on board.
More recent f0, f3, l0, l3 chip families share another "v2" version of i2c.
This patch unifies headers and implementation for two types of i2c peripherals:
- rename: i2c_common_all.[ch] to i2c_common_v1.[ch]
- remove i2c_common_f24.h: extra I2C blocks are defined in specific headers
- use f3 i2c code as a basis for common "v2" i2c implementation
- add f0 i2c support: use "v2" i2c implementation
Tests:
- tested on a custom f0 board
- compile-tested both libopencm3 and libopencm3-examples for all stm32
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
|