xiaobendan 发表于 2017-10-9 10:48:49

今天又发现一个STC15W408S的端口问题

上次是P2.0就是RST输出脚,上电会有一个强制的低电平输出,无论怎样都无法消除。无奈换了另外脚。
这次是P4.2上电会有一个强制的上拉高电平输出,导致继电器会动作一下。端口已经连接了下拉电阻并且在设置上拉输出之前置零了。还是不行,无论怎样都不行。
还有P3.7会在失电瞬间也有一个强制上拉高电平输出,也导致继电器动作,虽然如果共用一组电源的时候,这个感觉不到。
还有P5.4(RST)脚,在写入时设定用作IO的情况下没啥问题,但是不用做IO时,其IO功能失去了,但是没有恢复复位功能。
闲来无事乱搞一通,不知道是不是我自己的问题,再研究下看看

饭桶 发表于 2017-10-9 10:55:15

51内核的或者说很多单片机上电默认都是高电平,除非强下拉并且程序上电后马上设置低。

饭桶 发表于 2017-10-9 10:56:39

如果必须高电平驱动输出,最好的办法就是用门反向,成本没加多少,但是非常可靠了。

xiaobendan 发表于 2017-10-9 11:10:52

是啊,标准io输出有限电流,复位期间应该是标准状态了,有加下拉电阻,同样的电路和程序,其他几个没问题,比如P4.1,P4.3

xiaobendan 发表于 2017-10-9 11:11:37

上电瞬间会有这个,看示波器

xiaobendan 发表于 2017-10-9 11:13:23

波形是单次触发测量的三极管集电极

lcw_swust 发表于 2017-10-9 11:37:46

还是要多看手册
搜下手册里的RSTOUT
下拉电阻是多大?

xiaobendan 发表于 2017-10-9 11:41:40

lcw_swust 发表于 2017-10-9 11:37
还是要多看手册
搜下手册里的RSTOUT
下拉电阻是多大?

今天讲的不是RSTOUT的问题
RSTOUT的问题,问过售后了,说就这样,不能容忍就换个脚来用好了。

fangmcu 发表于 2017-10-9 12:06:07

我也在论坛发这个问题问,最后换了另一脚用!!

xiaobendan 发表于 2017-10-9 12:15:33

刚才飞线把4.2飞到4.6,3.7飞到3.3上,都没问题了,开机的那个动作和关机的动作都没有了
程序中除了改了下映射以外,没有其他变化。
在手册中没找到相关的描述。
有条件的是否可以帮忙再确认一下。

liaihua1997 发表于 2017-10-9 12:43:37

51单片机都是准双向IO口,注定上电会有一个高电平,所以在使用的时候必须用反向器反一下,特别是在工控领域,不这样做会出大事的

xiaobendan 发表于 2017-10-9 13:22:03

liaihua1997 发表于 2017-10-9 12:43
51单片机都是准双向IO口,注定上电会有一个高电平,所以在使用的时候必须用反向器反一下,特别是在工控领域 ...

嗯,您说的对!

t3486784401 发表于 2017-10-9 16:07:20

感觉 STC15 系列就是为 BUG 而生的。

最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的,结果 INT0 死机没完没了。
随后相当一段时间不再考虑这些新的系列,甚至还在傻等 B 版本。

前阵子看到 15 系列又出新的了,STC15W20X, STC15W40X,结果还是 BUG,随便搜一下全是吐槽。
中断比较下降沿 BUG, EEPROM 有 BUG......

现在除了用最老的 89C52RC 来替代老的 AT89,真的没精力用 STC 搞新玩意了,看到 STC15 就头痛

xiaobendan 发表于 2017-10-9 16:10:01

t3486784401 发表于 2017-10-9 16:07
感觉 STC15 系列就是为 BUG 而生的。

最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的 ...

还好啊,搞清楚问题,然后避开就好了。
嘿嘿

q984283464 发表于 2017-10-9 16:37:27

STC15W4K32S4在又电机的场合程序有时候上电布工作

jlhgold 发表于 2017-10-10 12:53:54

t3486784401 发表于 2017-10-9 16:07
感觉 STC15 系列就是为 BUG 而生的。

最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的 ...

那个M0+好用吗?{:3_48:}

wkman 发表于 2017-10-10 15:30:23

t3486784401 发表于 2017-10-9 16:07
感觉 STC15 系列就是为 BUG 而生的。

最早被这个坑就是 STC15F104E,本来就是个少引脚的单片机做做红外的 ...

{:titter:}新stc8 一样坑多,,,不过也在修正ing..............

HXDZ-AAA 发表于 2017-10-10 16:04:50

不是单片机的错,在初始化程序设置一下端口模式然后赋值就行了,在他的手册第四章IO端口哪一章介绍的比较全面,尽管手册版面不那么“专业”{:titter:},再不行问他的技术支持。

xiaobendan 发表于 2017-10-10 17:38:54

HXDZ-AAA 发表于 2017-10-10 16:04
不是单片机的错,在初始化程序设置一下端口模式然后赋值就行了,在他的手册第四章IO端口哪一章介绍的比较全 ...

嗯,你说的对!

t3486784401 发表于 2017-10-10 17:55:24

jlhgold 发表于 2017-10-10 12:53
那个M0+好用吗?

最近还是 AVR 用的多,电池供电低功耗时比较耐玩。

M0包括(F030)低功耗下不来啊,休眠也没见着多好。还就是暂时没用到那么多腿的应用

t3486784401 发表于 2017-10-10 17:55:47

wkman 发表于 2017-10-10 15:30
新stc8 一样坑多,,,不过也在修正ing..............

总之造福后人吧,前人只能观望了

小李非刀 发表于 2017-10-11 13:04:24

P2.0上电复位时固定输出低电平,设计就是如此,引脚上也标注了RSTOUT_LOW。
P4.2 P4.4 P4.5分辨复位为总线的/WR/RDALE信号,这个要注意。

xiaobendan 发表于 2017-10-11 13:13:26

小李非刀 发表于 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也没问题了
提醒同志们注意就是了。

makesoft 发表于 2017-10-14 18:05:47

建议楼主写一个空程序下载,然后用示波器测试一下还有没有类似的信号。

STC确实有些不拘小节,DATASHEET这些地方应该详细说明,不然会害死人的。

xiaobendan 发表于 2017-10-14 18:32:22

makesoft 发表于 2017-10-14 18:05
建议楼主写一个空程序下载,然后用示波器测试一下还有没有类似的信号。

STC确实有些不拘小节,DATASHEET这 ...

我已经改了线路了,直接从脚上飞线,很麻烦,不想再搞回去了
就算是在程序中哪个地方操作过这个端口了,我把端口设置为推挽的代码屏蔽了,应该也就是输出一个标准的1,而不是强上拉的吧,我测试的结果就这样,屏蔽了端口设置。用作普通端口,我外接的3K的电阻下拉,即使我要输出1,实际上也出不来了,程序已经不能实现我要的结果了,就是我让他变1,想让三极管导通,继电器吸合,但是因为驱动能力太弱了,不行。就是说取消了推挽输出,就不能推动三极管使继电器动作了。但是在这种情况下,上电的瞬间还是会有一个2.5MS,很精准,强上拉的1出现。
也许真的是我程序有问题,改下端口就OK了,不想再搞下去了。以后再使用这个端口注意一下,那个板子是测试用的,还有动很多地方,已经面目全非了,等下次有机会,来了兴趣再说吧。
页: [1]
查看完整版本: 今天又发现一个STC15W408S的端口问题