主题中讨论的其他器件: TM4C123
工具/软件:TI C/C++编译器
我正在尝试 使用 PCF8547 (I/O 扩展器模块)构建 I2C 主接口。 当我使用电平转换器 MH 构建电路时,它工作正常,使用 TS0108E (TI -电平转换器) SDA,SCL 线路不工作。
当我使用逻辑分析仪进行检查时,低端端获得数据,而高端端却没有收到数据,因此我认为这可能是我在使用电平转换器时遇到的问题。
下面是初始化例程:
空 initI2C0 (空)
{
//此函数用于 eewiki,将进行更新以处理任何端口
//启用 I2C 模块
SysCtlPeripheralEnable (SYSCTL_Periph_I2C0);
//复位 I2C 模块
SysCtlPeripheralReset (SYSCTL_Periph_I2C0);
//启用包含 I2C 的 GPIO 外设
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
//为端口 B2和 B3上的 I2C0功能配置引脚复用。
GPIOPinConfigure (GPIO_PB2_I2C0SCL);
GPIOPinConfigure (GPIO_PB3_I2C0SDA);
//为这些引脚选择 I2C 功能。
GPIOPinTypeI2CSCL (GPIO_PORTB_BASE、GPIO_PIN_2);
GPIOPinTypeI2C (GPIO_PORTB_BASE、GPIO_PIN_3);
//启用和初始化 I2C0主机模块。 使用的系统时钟
// I2C0模块。 最后一个参数设置 I2C 数据传输速率。
//如果为 false,则数据速率设置为100kbps,如果为 true,则数据速率将设置为
//设置为400kbps。
I2CMasterInitExpClk (I2C0_BASE、SysCtlClockGet ()、false);
//清除 I2C FIFO
HWREG (I2C0_BASE + I2C_O_FIFOCTL)= 80008000;
}
我已经完成了 TSTS0108E、
1.OE 线路-高电平(3.3V)
已检查模块是否工作正常
TM4C123GXL
降低了 I2C 时钟频率。
使用了外部上拉电阻器。
有什么想法、我可能会犯错吗?
谢谢;)
任何
