This example implement I2C slave mode bootloader. The bootloader supports firmware download, checking downloaded application and booting the downloaded software.
- GSDK v4.4.3
- Slave device: BGM220 Bluetooth Module Explorer Kit - BGM220-EK4314A
- Master device: Raspberry Pi 3B+
NOTE: Slave device is tested on these boards:
Board ID | Description |
---|---|
BRD2703A | EFR32xG24 Explorer Kit - XG24-EK2703A |
BRD2704A | SparkFun Thing Plus Matter - MGM240P - BRD2704A |
BRD2601B | EFR32xG24 Dev Kit - xG24-DK2601B |
BRD4314A | BGM220 Bluetooth Module Explorer Kit - BGM220-EK4314A |
BRD4108A | BG22 Bluetooth SoC Explorer Kit - BG22-EK4108A |
- The I2C connection between master and slave device can be made by using jumper wires and the I2C bus must have pullup registers.
To test this application, you can either create a project based on a example project or start with an "Empty C Project" project based on your hardware.
-
From the Launcher Home, add the your hardware to My Products, click on it, and click on the EXAMPLE PROJECTS & DEMOS tab. Find the example project with filter "slave".
-
Click Create button on the Platform - I2C slave bootloader example. Example project creation dialog pops up -> click Create and Finish and Project should be generated.
-
Build and flash this example to the board.
-
Create a Empty C Project project for your device using Simplicity Studio 5.
-
Copy all attached files in inc and src folders into the project root folder.
-
Copy .slbp files in SimplicityStudio folder into the project root folder.
-
Open the .slcp file. Select the SOFTWARE COMPONENTS tab and install the software components:
- Install [Platform] > [Bootloader] > [Bootloader Core] component.
- Install [Platform] > [Bootloader] > [Cyclic Redundancy Check] component.
- Install [Platform] > [Bootloader] > [Image Parser] component.
- Install [Platform] > [Bootloader] > [Utils] > [Debug] component.
- Install [Platform] > [Bootloader] > [GPIO activation] component.
- In project build setting add 2 define options as image is shown bellow:
-
i2ctester has some command line arguments. At least bus number and target’s I2C address and a command letter should be given. If the passed arguments are wrong, i2ctester shows it usage.
Raspberry 3+ example master documentation
Bootloader documentation.