打印
[AT32F435]

AT32F435 I2C读取EEPROM有时正常有时无法通信

[复制链接]
1107|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我现在用AT32F435VGT7读取一个传感器里的EEPROM数据,调试了好多天,发现这个芯片的I2C极不稳定,时而可以通信,时而不能通信,完全没有规律。用的是PB14/PB15,I2C3,I2C的时序配置用的是雅特力的Artery I2C Timing TooL配置的,外部上拉电阻用的是2K,配置数据如下:


I2C初始化如下:
void  I2C3_config(void)
{
        i2c_reset(I2C3); //复位I2C外设
        gpio_init_type gpio_init_structure;
        /*i2c外设时钟 */
        crm_periph_clock_enable(CRM_I2C3_PERIPH_CLOCK, TRUE);
        crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);

        /*GPIO配置*/
        gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE15, GPIO_MUX_4); //PB15 SCL
        gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE14, GPIO_MUX_4); //PB14 SDA

        /* 配置PB15 SCL*/
        gpio_init_structure.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
        gpio_init_structure.gpio_mode           = GPIO_MODE_MUX;
        gpio_init_structure.gpio_out_type       = GPIO_OUTPUT_OPEN_DRAIN;
        gpio_init_structure.gpio_pull           = GPIO_PULL_UP;

        gpio_init_structure.gpio_pins           = GPIO_PINS_15;
        gpio_init(GPIOB, &gpio_init_structure);

        /* 配置PB14 SDA */
        gpio_init_structure.gpio_pins           = GPIO_PINS_14;
        gpio_init(GPIOB, &gpio_init_structure);

        /*配置I2C3*/
        i2c_init(I2C3, 0x00, 0x30F02745);  //配置为300KHz,上拉2K电阻,上升时间300ns,下降时间8ns
        i2c_enable(I2C3, TRUE); //使能I2C
}



用的是I2C_Application_Lib里的读写函数,函数入参配置如下:
i2c_status = i2c_memory_read(&hi2cx, I2C_MEM_ADDR_WIDIH_16, slaveAddr, startAddress, temp_table, 20,0xFFFFFFF);

当不能通信时,我检查了各项配置,发现i2c_memory_read这个函数里超时时间我设置的是500, 后来改成了上面的0xFFFFFFF, 和官方一样,重新烧录程序,可以通信了。但是过了一段时间又不行了,我个人认为这个超时时间500应该也没什么问题。现在所有设置基本和官方完全一样了,还是时好时坏,没有任何规律,非常不稳定。。

我还没有验证EEPROM的问题,但根据测试下来的感觉,EEPROM应该问题不大。

不知道这个I2C还要怎么配置?希望能帮助看一下是哪里的问题,谢谢

使用特权

评论回复
沙发
lisn3188| | 2024-3-3 15:24 | 只看该作者
用IO模拟, 不要用硬件I2C。

使用特权

评论回复
板凳
一叶倾城wwq| | 2024-3-4 09:01 | 只看该作者
楼上正解,模拟的移植也方便

使用特权

评论回复
地板
trucyw| | 2024-3-5 10:56 | 只看该作者
上拉电阻是不是小了一些

使用特权

评论回复
5
药无尘| | 2024-3-7 17:01 | 只看该作者
这个不行是哪里出问题了,有没有debug看看卡在那个标志位还是啥,

使用特权

评论回复
6
micoccd| | 2024-3-11 11:53 | 只看该作者
是不是其他代码造成干扰了

使用特权

评论回复
7
盗铃何须掩耳| | 2024-3-13 09:38 | 只看该作者
有没有测试例程有没有问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

123

帖子

1

粉丝