STM32F030硬件IIC低温测试异常

最近在使用STM32F030的硬件IIC操作EEPROM时,发现一个问题:

在常温下,STM32F030的硬件IIC工作正常,时序正常,在低温箱(零下40度)里工作约2个小时后,硬件IIC工作异常,且时序也乱了.
异常时序表现为:不论是读还是写,仅从机地址+读写地址所对应的时序正常,之后,SCK一直保持低电平,一段时间后,SCK时钟输出正常,但SDA数据异常.整始位及结束位正常,具体时序图如下:
图片说明

由于软件模拟IIC太耗时了,只能使用硬件IIC.
不知道有没有哪位高人能够指点一下,感激不尽.

6个回答

找一下I2C的IP文档看一下,试着调到低速模式测试一下

你这个只能够找IC厂了啊,一般很难解决

-40℃是芯片的工作环境温度下限,时间长了芯片是会出现异常吧

weixin_42133454
大英 芯片工作环境温度-40℃到85℃,-40℃工作久了,芯片整个会有问题吧。
大约一年之前 回复

有可能是EEPROM器件问题,你先查一下EEPROM的正常工作温度范围和通讯频率范围。特别注意一下时钟拉伸问题( clock stretch)。

感谢各位的回答,
我尝试将IIC的速率降到10K(之前是100K),EEPROM参数存储正常

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
STM32F030低温下RTC不工作
客户反馈在批量生产阶段,发现部分产品的MCU的RTC在低温(0℃)下工作不正常,但是在常温下又是正常的,且其他正常的MCU的RTC在常温与低温下都是正常的。
STM32 IIC 硬件iic
STM32F40XX硬件IIC,使用两个IIC模块。IIC1作为主查询方式发送和接受;IIC2作为从使用中断方式发送和接收。IIC1(主机)发送数据给从机,主机接收的数据是从机接收主机的数据,以此验证主机发送和接受的正确性,以及从机的正确性。代码已验证
STM32F030 IIC HX711 AT24C02 程序
基于STM32F030的HX711,IIC,AT24C02程序,适合初学者。
STM32F030硬件i2c驱动
实测可用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
STM32F030硬件SPI驱动ADS1255
基于STM32F030单片机的程序,硬件SPI驱动24位ADS1255,采集到的数据通过串口1在电脑的串口软件上显示出来。下载编译后可以直接使用,该资料只用于实验、共享。
IIC EEPROM驱动(适用于STM32F030/031)
基于Wolf32F031 自由评估板的UART驱动(适用于STM32F030/031)
stm32f030及stm8l052的iic主从模式DMA配置
搞了一个多星期才调试通过的stm32f030及stm8l052的iic主从模式DMA配置,stm32f030主模式+DMA发送,stm8l052从模式+DMA配置
STM32硬件IIC
STM32硬件IIc程序,需要个人按照配置情况,进行调试。
MSP430G2553硬件IIC
MSP430G2553硬件IIC代码,适用于初次使用此款芯片的开发人员。
STM32硬件IIC程序
STM32硬件IIC程序
stm103硬件IIC
stm103硬件IIC,关于通信和硬件资料合集的一些资料,IIC的设置
mpu6050(硬件IIC).zip
MPU6050.c .h文件,直接用,51单片机、32单片机、K60、K66等都可以移植
STM32 硬件IIC程序
STM32F10x 硬件IIC程序,已经验证通过.
MPU6050 硬件IIC 读数
硬件IIC 实现 MPU6050 的原始数据读取,硬件IIC网上很多人说有bug,不好使,的确很难调通,现附上代码,作为参考。
存在争议的硬件IIC
<p>n 本课程教大家如何利用STM32CubeMX玩转STM32(STM32CubeMX支持的所有型号MCU都适用于本课程)。课程内容分为基础内容和扩展内容,例如:讲解串口时会扩展开讲Xmodem通信协议,讲解ADC/DAC时会扩展讲傅里叶计算,讲解完FLASH操作会扩展将bootloader的编写,讲解完M3的bootloader编写会扩展讲解M0的bootloader...... 内容绝对实在,对于学习以及工作都会有很大的帮助。最终的目的就是让大家学会快速开发STM32并收获与STM32有关的实用技术知识。n</p>
TM4硬件IIC
通过配置TM4C123GH6PM的库函数 , 使用Lookbake模式 , 硬件IIC , 通过程序达到 , 上位机输出使串口输出的结果 .
STM32,MPU6050(硬件IIC)
STM32,MPU6050(硬件IIC) 读取其初始值
msp430g2553硬件IIC程序
msp430g2553 硬件IIC程序
STM8L 硬件IIC主机
使用stm8l的硬件iic做主机,调试通过。可以配合我上发的硬件iic从机一起使用
stm32 硬件iic 源码
stm32 stm32f407使用硬件iic开启DMA,测试I2C1稳定运行不锁死总线。
STM8硬件IIC使用教程
使用环境 :IAR 使用单片机:STM8 1.打开IAR 2.点击STLINK 3.点击设置OPTION 4.对内部配置使能(具体需要是6)
STM 硬件IIC
硬件IIC初始化,以及读写子程序; void Read_IIC(unsigned char *pBuffer,unsigned char address,unsigned char Number) void Write_IIC(unsigned char address,unsigned char number,unsigned char *data)
关于 stm32 硬件iic
最近在做一个stm32项目。用到两路iic,其中一路是用于iic通讯。另一路用于iic从机。都不是传统的iic主机读取eeprom的形式。 开始做的时候,网上搜资料,一大片的吐槽。都在说stm32的硬件iic设计有问题,都在说蛋疼。 (1)iic通讯。形式是一个iic设备对另一个iic设备写操作,这种是多主机形式,当任何设备不处于写操作,就作为从机接收数据。 (2)iic从机。stm32准备
STM32硬件IIC与51模拟IIC通信
IIC介绍  IIC协议规定:SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化。IIC期间在脉冲上升沿把数据放到SDA上,在脉冲下降沿从SAD上读取数据。这样的话,在SCL高电平期间,SDA上的数据是稳定的。在脉冲下降沿之后的保持时间以后,SDA上的数据可以变化,直到脉冲上升沿之前。  列出一些问题: STM32无法正确返回ACK信号的原因:   1、
产品低温测试通不过,何解
各位:rn 我的产品做高低温测试实验时rn只要到-19度就会出错rn请问各位,可能出现问题的地方都哪些呢rn谢谢啦
过氧化氢低温等离子体灭菌测试
测试目的 过氧化氢低温等离子体灭菌技术自上世纪九十年代后期传入我国后,已经在国内各大、中型医院广泛应用,对医院感染控制和保障医疗安全方面发挥着重要作用,但是,H2O2是一种有毒有害的化学气体,空气中浓度过高对人体的呼吸道、眼睛、黏膜甚至皮肤都会造成较大的伤害,因此本测试目的旨在评估我司过氧化氢低温等离子体灭菌器在灭菌周期结束后灭菌仓管道上过氧化氢的残留量是否符合≤30mg/kg.H2 O的要...
IIC驱动写数据异常
ARM9 2440.rn裸机下的IIC驱动已经调试成功,现在需要以linux字符型驱动的形式实现,按照逻辑下调通的逻辑,只是用了一些内核读写寄存器的函数。rn写数据时,用示波器观察波形,观察到会重复发送某个数据,或者是SDA线上的数据不是我往IICDS中写的数据。每一个IIC通信周期的第九时钟SD线都为低,处理器收到ACK。rn为什么会出现这种情况呢?大家帮我看看我的写代码:rnrnregIICCON =ioremap(0x54000000,4); rnregIICSTAT=ioremap(0x54000004,4); rnregIICADD =ioremap(0x54000008,4); rnregIICDS =ioremap(0x5400000c,4);rnrn//设置GPE15->IICSDA和GPE14->IICSCLrns3c2410_gpio_cfgpin(S3C2410_GPE15, S3C2410_GPE15_IICSDA);rns3c2410_gpio_cfgpin(S3C2410_GPE14, S3C2410_GPE14_IICSCL);rn rni2c_clock= clk_get(NULL, "i2c");rnif (!i2c_clock) rnrn printk(KERN_ERR "failed to get i2c clock source\n");rn return -ENOENT;rnrnclk_enable(i2c_clock);rnrn//Enable ACK, Prescaler IICCLK=PCLK/16, Enable interrupt, Transmit clock value Tx clock=IICCLK/16rniowrite8(0xaf,regIICCON);//250kHzrnrn//写slave设备地址rniowrite8(SAD_W,regIICDS);rniowrite8(0xf0,regIICSTAT);rnwhile(!(ioread8(regIICCON)&S3C2410_IICCON_IRQPEND));rn rn//写slave设备寄存器地址 rniowrite8(0x80|addr,regIICDS);rniowrite8(ioread8(regIICCON)&(~S3C2410_IICCON_IRQPEND),regIICCON);rnwhile(!(ioread8(regIICCON)&S3C2410_IICCON_IRQPEND));rnrn//写数据rniowrite8(0x03,regIICDS);rniowrite8(ioread8(regIICCON)&(~S3C2410_IICCON_IRQPEND),regIICCON);rnwhile(!(ioread8(regIICCON)&S3C2410_IICCON_IRQPEND));rn rn//完成一次写操作,发stop信号rniowrite8(0xd0,regIICSTAT);rniowrite8(ioread8(regIICCON)&(~S3C2410_IICCON_IRQPEND),regIICCON); rnudelay(10);rnrnrn
2440 iic clk异常
最近小弟在做一个项目:用2440(主发送)跟一个芯片做通信(频率是100k)。rn经过示波器测试发现一个问题:rn 在经过n次正常数据发送的之后,偶尔会出现一个字节的clk第九位一直拉高直到触发发送超时为止。(出现的地方很随机)rn请问论坛里的高手们:rn 这种现象的原因是什么,另外,如何解决这个问题或者避免这个问题,我对驱动这方面不熟悉,希望大家可以细致的解释一下。rn 还有的是,这样的发送会不会影响接受方接收数据的正确性,因为我也发现接收方的数据有时候会应答位全部都有,但是最终却是一帧数据丢失的情况,这个情况和上述现象会不会有联系呢?rnrnrn谢谢了先
stm32硬件IIC读取MPU6050
自己用STM32 的硬件IIC 写的,能读出数据,仅供参考,本人新手一个,有错误的地方欢迎指出
STM32 硬件IIC读取BH1750
通过STM32F103的硬件IIC读取光照传感器BH1750的数据,已通过测试,能够成功读取BH1750的光照数据。。
STM8L硬件IIC从机
STM8L 的硬件IIC从机,调试通过可以使用
STM32 硬件IIC使用问题
之前做开发,碰到STM32系列硬件IIC老死在while循环里,后因为项目时间紧,换成模拟IIC了,谁碰到过这个问题,怎么解决
STM32CubeMx之硬件IIC调试基本方法
如题,最近在调试STM32的硬件IIC,从中发现了很多问题,经过网上查找资料总结和实际测试,总结出如下步骤来检测硬件IIC。 测试环境如下: STM32F407开发板; STM32Cube固件库F4 1.6.0 IIC设备 AT24C02 IIC配置如下:void MX_I2C1_Init(void) { hi2c1.Instance = I2C1; hi2c1.Init.Clock
STM32硬件IIC之DMA传输数据
这里给出一个实现用DMA传输IIC数据的实现过程 这里咱们说3个点 1.检查IIC总线上是否有指定地址的器件 2.IIC读取数据 3.IIC写数据 下面来一个一个详细说明1.检查IIC总线上是否有指定地址的器件1.判断是否总线忙,如果忙则等待 2.产生起始位 3.等待起始位产生完成 4.发送器件地址(这里选择读写都是可以的) 5.等待是否有ACK位回应,(这里有两种判断方法1.通过判断ACK
STM32——硬件IIC主机通信
前言: 根据网上的资料,大部分网友表示STM32自带的硬件IIC存在bug,读写时很容易卡死。自己在调试的时候也出现卡死的情况,最后一点一点调试,也还是调通了。本文将记录自己调试STM32硬件IIC主机的一些心得体会。硬件IIC从机通信见另一篇文章:传送门 。 硬件平台:STM32F205 软件平台:keil v5 函数库:标准库 硬件IIC主机初始化 IIC的发送时序本文不不做介绍了...
OLED 硬件IIC + DMA +framebuffer.zip
程序是基于正点原子STM32F407开发的,使用的OLED是中景园的0.96寸OLED (IIC协议版本) 程序可以实现字符串数字的显示以及反白显示,另外还带有改编的 画点划线 画圆画矩形的函数 可以进行简单的图形绘制 程序使用DMA的方式完成数据传递占用CPU时间极少,可以提高系统的效率。
STM32 硬件+软件IIc驱动
STM32 硬件+软件模拟IIC驱动EEPROM
STM8 硬件IIC 中断功能
STM8硬件IIC ,网上那些都是些查询的方法做的硬件IIC,鸟用也没有,我整理的一些部分中断IIC代码,现在已经用在项目中了,有需要的可以Q我。
BME280硬件IIC程序MSP430
本文件是基于MSP430FR5738的BME280硬件IIC程序,开发环境为IAR7.10
Arm-Linux内核驱动之IIC硬件结构
嵌入式绝对是当前IT领域最炙手可热的话题了。其主要应用领域涵盖与人类相关的各行各业:rn* 消费电子(手机、平板电脑、游戏机)rn* 物联网(智能家居、智慧城市)rn* 工业自动化(无人工厂、工业机器人)
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件