今天又发现一个STC15W408S的端口问题
上次是P2.0就是RST输出脚,上电会有一个强制的低电平输出,无论怎样都无法消除。无奈换了另外脚。这次是P4.2上电会有一个强制的上拉高电平输出,导致继电器会动作一下。端口已经连接了下拉电阻并且在设置上拉输出之前置零了。还是不行,无论怎样都不行。
还有P3.7会在失电瞬间也有一个强制上拉高电平输出,也导致继电器动作,虽然如果共用一组电源的时候,这个感觉不到。
还有P5.4(RST)脚,在写入时设定用作IO的情况下没啥问题,但是不用做IO时,其IO功能失去了,但是没有恢复复位功能。
闲来无事乱搞一通,不知道是不是我自己的问题,再研究下看看 51内核的或者说很多单片机上电默认都是高电平,除非强下拉并且程序上电后马上设置低。 如果必须高电平驱动输出,最好的办法就是用门反向,成本没加多少,但是非常可靠了。 是啊,标准io输出有限电流,复位期间应该是标准状态了,有加下拉电阻,同样的电路和程序,其他几个没问题,比如P4.1,P4.3 上电瞬间会有这个,看示波器
波形是单次触发测量的三极管集电极 还是要多看手册
搜下手册里的RSTOUT
下拉电阻是多大? lcw_swust 发表于 2017-10-9 11:37
还是要多看手册
搜下手册里的RSTOUT
下拉电阻是多大?
今天讲的不是RSTOUT的问题
RSTOUT的问题,问过售后了,说就这样,不能容忍就换个脚来用好了。 我也在论坛发这个问题问,最后换了另一脚用!! 刚才飞线把4.2飞到4.6,3.7飞到3.3上,都没问题了,开机的那个动作和关机的动作都没有了
程序中除了改了下映射以外,没有其他变化。
在手册中没找到相关的描述。
有条件的是否可以帮忙再确认一下。 51单片机都是准双向IO口,注定上电会有一个高电平,所以在使用的时候必须用反向器反一下,特别是在工控领域,不这样做会出大事的 liaihua1997 发表于 2017-10-9 12:43
51单片机都是准双向IO口,注定上电会有一个高电平,所以在使用的时候必须用反向器反一下,特别是在工控领域 ...
嗯,您说的对! 感觉 STC15 系列就是为 BUG 而生的。
最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的,结果 INT0 死机没完没了。
随后相当一段时间不再考虑这些新的系列,甚至还在傻等 B 版本。
前阵子看到 15 系列又出新的了,STC15W20X, STC15W40X,结果还是 BUG,随便搜一下全是吐槽。
中断比较下降沿 BUG, EEPROM 有 BUG......
现在除了用最老的 89C52RC 来替代老的 AT89,真的没精力用 STC 搞新玩意了,看到 STC15 就头痛 t3486784401 发表于 2017-10-9 16:07
感觉 STC15 系列就是为 BUG 而生的。
最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的 ...
还好啊,搞清楚问题,然后避开就好了。
嘿嘿 STC15W4K32S4在又电机的场合程序有时候上电布工作 t3486784401 发表于 2017-10-9 16:07
感觉 STC15 系列就是为 BUG 而生的。
最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的 ...
那个M0+好用吗?{:3_48:} t3486784401 发表于 2017-10-9 16:07
感觉 STC15 系列就是为 BUG 而生的。
最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的 ...
{:titter:}新stc8 一样坑多,,,不过也在修正ing.............. 不是单片机的错,在初始化程序设置一下端口模式然后赋值就行了,在他的手册第四章IO端口哪一章介绍的比较全面,尽管手册版面不那么“专业”{:titter:},再不行问他的技术支持。 HXDZ-AAA 发表于 2017-10-10 16:04
不是单片机的错,在初始化程序设置一下端口模式然后赋值就行了,在他的手册第四章IO端口哪一章介绍的比较全 ...
嗯,你说的对! jlhgold 发表于 2017-10-10 12:53
那个M0+好用吗?
最近还是 AVR 用的多,电池供电低功耗时比较耐玩。
M0包括(F030)低功耗下不来啊,休眠也没见着多好。还就是暂时没用到那么多腿的应用 wkman 发表于 2017-10-10 15:30
新stc8 一样坑多,,,不过也在修正ing..............
总之造福后人吧,前人只能观望了 P2.0上电复位时固定输出低电平,设计就是如此,引脚上也标注了RSTOUT_LOW。
P4.2 P4.4 P4.5分辨复位为总线的/WR/RDALE信号,这个要注意。 小李非刀 发表于 2017-10-11 13:04
P2.0上电复位时固定输出低电平,设计就是如此,引脚上也标注了RSTOUT_LOW。
P4.2 P4.4 P4.5分辨复位为总线 ...
看4.2的标识,是低有效吧,复位后却有一个2.5MS的高输出?而且是带上拉的高哦,不是标准的高,我是外接一个3K电阻下拉的,要不是上拉的高,怎么可能产生那么大的能量驱动三极管?
4.4是一个输入信号,这个没看到是不是也有同样的问题。
那么3.7呢?为啥在失电瞬间会有一个上拉的高电平输出?难道是我程序有问题?我找了,没有别的地方对这个IO有过操作。
我4.2改到4.6上,就没问题了。3.7改到3.3也没问题了
提醒同志们注意就是了。 建议楼主写一个空程序下载,然后用示波器测试一下还有没有类似的信号。
STC确实有些不拘小节,DATASHEET这些地方应该详细说明,不然会害死人的。 makesoft 发表于 2017-10-14 18:05
建议楼主写一个空程序下载,然后用示波器测试一下还有没有类似的信号。
STC确实有些不拘小节,DATASHEET这 ...
我已经改了线路了,直接从脚上飞线,很麻烦,不想再搞回去了
就算是在程序中哪个地方操作过这个端口了,我把端口设置为推挽的代码屏蔽了,应该也就是输出一个标准的1,而不是强上拉的吧,我测试的结果就这样,屏蔽了端口设置。用作普通端口,我外接的3K的电阻下拉,即使我要输出1,实际上也出不来了,程序已经不能实现我要的结果了,就是我让他变1,想让三极管导通,继电器吸合,但是因为驱动能力太弱了,不行。就是说取消了推挽输出,就不能推动三极管使继电器动作了。但是在这种情况下,上电的瞬间还是会有一个2.5MS,很精准,强上拉的1出现。
也许真的是我程序有问题,改下端口就OK了,不想再搞下去了。以后再使用这个端口注意一下,那个板子是测试用的,还有动很多地方,已经面目全非了,等下次有机会,来了兴趣再说吧。
页:
[1]