# I2c Master Example Code

## Project Name: I2c_Master_Demo

---

## Function description

This project is designed to demonstrate the configuration and use of the I2C module as a master:

**Note:**
  1. Connect J8 jumper caps.

- **I2c_Master_Demo**: 
  - The I2C master writes 8 bytes of data to the EEPROM, with the first byte serving as the address to specify the starting address for writing to the EEPROM.
  - Before reading from the EEPROM, it is necessary to write a byte of data that specifies the starting address to be read.
  - After sending the address, the I2C master reads 7 bytes from the EEPROM.

---

## HW requirement
+ **EVB**: YTM32B1MC0-EVB-Q64
+ **Debugger**: J-LINK v9.2 or later with YUNTU YTM32B1MC0 patch(support package) installed.

## SW requirement

+ **Config & Code Generation Tool**
  + **SDK**:       Yuntu Config Tool(YCT) v2.6.3 or later version
+ **Compiler Toolchain**
  + **GCC***     : GNU GCC v10.3 or later version
  + **Keil/MDK***: ARM Keil/MDK v5.36 or later version
  + **IAR***     : IAR v8.4 or later version
  + **VS Code**  : Microsoft Visual Studio Code IDE v1.76 or later version(C/C++ support, GNU toolchain, CMake v3.25, ninja, Cortex-Debug extensions installation required)
+ **Debugger driver**
    + **J-LINK***              : SEGGER JLINK v6.96 or later version, YUNTU YTM32B1MC0 patch(support package) installation required.
    + **Ozone Debugger tool**  : SEGGER Ozone v3.28 or later version.

    ***Note***: * **YTM32B1MC0** patch install required which can be obtained via **YCT** or contact ***YUNTU sales/FAE team***.

---

## Setup

+ ***Step1***: Open the project.yct with the YCT tool, config the toolchain per your required(by default, the VS code + GCC are used)
+ ***Step2***: Generate the codes, you can change the configurations if needed(to adapt to your own HW design), if so, please ensure all the modifications are OK with no any errors exist before generating the code.
+ ***Step3***: Open the generated project with VS code/IAR/Keil IDE per your selected.
+ ***Step4***: Compile the project, power on the EVB and download it to the EVB via the available debugger, such as a J-LINK debugger probe.
+ ***Step5***: At last, enjoy the demo example.

---

1. Config alt value of PTD_1 Pin with I2C_SCL as CLK pin and PTD_0 with I2C_SDA as SDA pin.
2. Enable and config **I2C1_CLK**.
3. Enable and config I2C module as I2C master.
  
---