微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > MXCHIP+Core1081的I2C

MXCHIP+Core1081的I2C

时间:10-02 整理:3721RD 点击:


前天测试了下 下V1.19中 I2C 的实验。



也得到了 实验现象:



查看MX1081_IO.H 文件 找到:



#define USE_I2C1 I2C1
//#define USE_I2C2 I2C2

#if defined (USE_I2C1)

#define USE_I2Cx USE_I2C1
#define USE_I2Cx_CLK RCC_APB1Periph_I2C1
#define USE_I2Cx_INIT RCC_APB1PeriphClockCmd

#define USE_I2Cx_SDA_PIN GPIO_Pin_7
#define USE_I2Cx_SDA_SOURCE GPIO_PinSource7
#define USE_I2Cx_SDA_PORT GPIOB
#define USE_I2Cx_SDA_CLK RCC_AHB1Periph_GPIOB
#define USE_I2Cx_SDA_AF GPIO_AF_I2C1

#define USE_I2Cx_SCL_PIN GPIO_Pin_6
#define USE_I2Cx_SCL_SOURCE GPIO_PinSource6
#define USE_I2Cx_SCL_PORT GPIOB
#define USE_I2Cx_SCL_CLK RCC_AHB1Periph_GPIOB
#define USE_I2Cx_SCL_AF GPIO_AF_I2C1

#elif defined (USE_I2C2)

#define USE_I2Cx USE_I2C2
#define USE_I2Cx_CLK RCC_APB1Periph_I2C2
#define USE_I2Cx_INIT RCC_APB1PeriphClockCmd

#define USE_I2Cx_SDA_PIN GPIO_Pin_0
#define USE_I2Cx_SDA_SOURCE GPIO_PinSource0
#define USE_I2Cx_SDA_PORT GPIOF
#define USE_I2Cx_SDA_CLK RCC_AHB1Periph_GPIOF
#define USE_I2Cx_SDA_AF GPIO_AF_I2C2

#define USE_I2Cx_SCL_PIN GPIO_Pin_1
#define USE_I2Cx_SCL_SOURCE GPIO_PinSource1
#define USE_I2Cx_SCL_PORT GPIOF
#define USE_I2Cx_SCL_CLK RCC_AHB1Periph_GPIOF
#define USE_I2Cx_SCL_AF GPIO_AF_I2C2

#endif


不难发现 Core1081的核芯片 MX1081内部集成了2个I2C 总线接口。
也可参看 Core1081的一些官方资料:





因此,Core1081提供了2路I2C总线接口供我们使用。只需配置下 #define USE_I2C1 I2C1 #define USE_I2C2 I2C2 就可使用。

简单分析在main.c 程序,主要用到下面的函数:
I2C_Configuration(); //对I2C总线接口进行参数配置
I2C_Write(USE_I2Cx,ADDR_24LC02,0,WriteBuffer,sizeof(WriteBuffer) ); // 向EEPROM写数据
I2C_Read(USE_I2Cx,ADDR_24LC02,0,ReadBuffer,sizeof(WriteBuffer) ); // 从EEPROM读数据

这些函数的定义可以在24C02.c文件中找到。

STM32F2系列的芯片 I2C接口特性








另外摘录一些资料:
I2C 协议
I2C (Inter-Integrated Circuit)协议是由Phiilps公司开发的,由于它具引脚少,硬件实现简单,可扩展性强,不需要如USART、CAN的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。







谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top