[STM32F4]

STM32F4 上电瞬间大问题!IO控制74HC595,上电瞬间导致D0~D7输出...

[复制链接]
3887|3
手机看帖
扫描二维码
随时随地手机跟帖
hzocce|  楼主 | 2017-4-22 21:10 | 显示全部楼层 |阅读模式
本帖最后由 hzocce 于 2017-4-22 21:12 编辑

STM32 IO接到74HC595,其OE接死GND,74HC595的D0~D7接光耦发光管的阴极,往595灌入电流的形式,光耦发光管的1脚上通过电阻上拉到VCC。

在上电一瞬间,光耦会导通一下,也就是74HC595的D0~D7端为低电平,导致光耦简短导通一下。后面就关掉,也就是STM32配置595关断的。
通过STM32的Reset脚复位单片机,光耦不会导通,
也就是在STM32还没有起来工作,来得及配置它时,74HC595的D0~D7就输出为低。

1.加大595的滤波电容到4.7uF无效果。
2.减小STM32的复位电容,电阻都无效果。原来是0.1uF/10K)
3.将595的OE脚扳起,OE脚通过10K电阻接到地,OE脚再通过0.1uF电容到VCC。
  上电瞬间光耦导通的故障消除。
  
  改装过板子上面的2片595故障消除;
  (此办法比较麻烦,电阻站着,头顶595的OE端,脚踩PCB的GND焊盘(原来595 OE焊盘),上面再举一个电容,通过一飞线接到VCC。

4.将595的OE脚扳起,OE脚通过10K电阻接到地。
  改装过板子上面的另外2片595故障消除;

结论:难道是上电瞬间OE是打开的,导致D0~D7就输出为低?
      上述3跟4办法都比较麻烦,有其他办法么?
评论
LONGSHEN1 2018-8-24 15:36 回复TA
这里有个参考设计,stm32f4通过hc595控制96个LED,可通过修改数组数据修改点亮或者熄灭任意一个LED灯 //初始化hc595参数 uint8_t hc595_buf1[6] = {0x00,0x00,0x00,0x00,0x00,0x00,}; uint8_t hc595_buf2[6] = {0x00,0x00,0x00,0x00,0x00,0x00,}; 上面两个数组每一位代表一个灯,假如灯是低电平点亮,该位就置0,否则置1, 12个字节,一共96个bit位,代表96个灯,可无限扩展灯的数量 http://www.cirmall.com/circuit/9921/stm32f4%E9%80%9A%E8%BF%87hc595%E6%8E%A7%E5%88%B696%E4%B8%AALED#/details  
戈卫东| | 2017-4-22 21:49 | 显示全部楼层
扔了重新搞。

使用特权

评论回复
xixi2017| | 2017-4-22 21:59 | 显示全部楼层
大不了加个反向器用于控制。

使用特权

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

本版积分规则

127

主题

561

帖子

4

粉丝