Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daniel-thompson/i2c-star
A clone of the i2c-tiny-usb based upon STM32 and libopencm3
https://github.com/daniel-thompson/i2c-star
i2c-bus stm32f103 stm32f4-discovery
Last synced: about 2 months ago
JSON representation
A clone of the i2c-tiny-usb based upon STM32 and libopencm3
- Host: GitHub
- URL: https://github.com/daniel-thompson/i2c-star
- Owner: daniel-thompson
- License: gpl-3.0
- Created: 2014-06-25T20:24:17.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-11-10T15:54:35.000Z (about 1 year ago)
- Last Synced: 2024-10-11T22:44:28.839Z (2 months ago)
- Topics: i2c-bus, stm32f103, stm32f4-discovery
- Language: C
- Homepage:
- Size: 131 KB
- Stars: 124
- Watchers: 18
- Forks: 31
- Open Issues: 4
-
Metadata Files:
- Readme: README.adoc
- License: COPYING
Awesome Lists containing this project
README
i2c-star - A STM32 based clone of the i2c-tiny-usb
==================================================i2c-star is a compatible clone of Till Harbaum's i2c-tiny-usb. The firmware
has no software in common with Till's implementation but is compatible with
the i2c-tiny-usb driver found in the mainline Linux kernel. As a result
it will work out of the box without requiring any special software on the
host computer.Quickstart
----------- Install gcc-arm-embedded compiler toolchain (or similar arm-none-eabi-
compiler), openocd and dfu-util.
- Clone this repo:
+git clone https://github.com/daniel-thompson/i2c-star.git+
- Fetch the libraries:
+cd i2c-star; git submodule update --init --recursive+
- Build the firmware:
- +make+
- Use a JTAG/SWD programmer to install the booloader. Either
+make -C src/bootloader flash+ for STLink v2 or
+make -C src/bootloader BMP_PORT=/dev/ttyACM0 flash+ for a Black Magic Probe.
- Use the bootloader to install the main application using the microcontroller
board's own USB socket:
+make -C src/i2c-stm32f1-usb flash+Examples
--------Note that the +i2c_dev+ kernel module needs to be loaded before using any of the
+i2c-tools+ utilities.$ i2cdetect -l
...
i2c-7 unknown i2c-tiny-usb at bus 001 device 031 N/A$ i2cdetect -y 7
To make Linux aware of I2C devices on the bus, use the following command:
$ echo tmp102 0x48 | sudo tee /sys/class/i2c-adapter/i2c-7/new_device
Where +tmp102+ is the name of the kernel driver you want to associate with the
I2C device, +0x48+ is the I2C device's 7-bit address, and +i2c-7+ is the bus
number the kernel assigned to the i2c-star adapter (appears as +i2c-tiny-usb+
in +dmesg+ and +i2cdetect+).Hardware setup
--------------The firmware can be easily ported but has been tested on an small STM32F103C8T6
based breakout board. Connections required are:- USB to host computer
- B7: I2C bus SDA and B6: I2C bus SCL (don't forget pull up resistors)
- [Optional; debug only] PA9: UART TX and PA10: UART RXIt has also been tested on the STM32F4-Discovery board, where no connections
(except for USB) are required because this board has I2C peripherals built inExample hardware
----------------http://item.taobao.com/item.htm?spm=a1z10.1.w4004-386456545.4.3eifcC&id=22097803050[STM32F103C8T6 microcontroller development board] from vcc-gnd.com. Normally very easy to source on eBay.
image::images/stm32f103c8t6_dev_board.jpg["STM32F103C8T6 microcontroller development board"]