你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8S003F3或103F3 IIC引起单片机复位

[复制链接]
leesoft 提问时间:2017-4-28 14:46 /
悬赏1ST金币未解决
STM8S003F3或103F3  IIC引起单片机复位
   最近使用这颗MCU开发了一款电压取样板,AD转换使用的是MCP3421(因为精度要求高,所以没有使用单片机内部AD转换),打样回来后测试发现一个现象。使用串口工具与之通讯,通讯指令时间间隔越快,单片机出现复位现象越容易发生,而且是单片只要一复位就会一直出现复位状态,就好像我们常见的开关电源输出短路,打嗝一样。出现这种现象后只有单片机重新上电才能恢复正常。如果串口工具间隔2秒发送一次指令与之通讯,有时候也会复位。当有两种状况:1、可能复位一下就工作正常了。2、一直出现复位状态。如果断开与之相连的MCP3421和SDA与SCL上拉电阻,不管怎么快的速度发送指令,单片机一直正常工作不会出现其他状况。
网上看到有人说003和103的IIC通讯不稳定不如直接用IO口模拟好,请教真的是这样吗?还是另有原因,请高手指点。


123.jpg
收藏 1 评论5 发布时间:2017-4-28 14:46

举报

5个回答
leesoft 回答时间:2017-4-28 14:47:04
现在发现当出现反复复位现象时,用镊子短路RM6故障解除,怀疑是I2C工作电流太小,把RM6阻值减小到1K,还是一样。难道阻值还要减小吗?单片机手册和我的AD转换IC手册上都说上拉电阻阻值1--10K之间
majibutt 回答时间:2017-4-28 23:07:36
应该是你的程序问题,STM8系列的处理器携带的RAM非常小。你的软件在通讯的时候肯定是有内存溢出的现象,从而毁掉了程序的堆栈而导致出现频繁的重新启动现象。
majibutt 回答时间:2017-4-28 23:10:43
程序的问题,程序堆栈溢出,出现了致命的问题。认真检查你的程序吧。
sssdd 回答时间:2017-5-4 15:02:13
本帖最后由 sssdd 于 2017-5-4 15:05 编辑

可能是内核电压不稳导致。内核稳压电容474是下限。。搞个105或更大试试。
仔细量下电源电压。最好拿示波器看看。

都没问题。那么就是软件问题了。
不想查的,就用IO模拟IIC。
八成是帧出错或者别的什么出错一直没处理。锁死在中断里。然后被狗咬了。
软件调试就知道了。看是不是程序一直都呆在中断。
稀饭放姜 回答时间:2017-5-13 21:40:46
ST为了规避I2C的版权问题,没有解决硬件I2C的互锁问题。

如果干扰比较大的地方,I2C通信用模拟的吧。如果非要硬件I2C,需要用一个定时器做应答超时处理。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版