MC9S08QD4 BKGD管脚复用之问题

[复制链接]
 楼主| win2000_li 发表于 2008-10-6 19:24 | 显示全部楼层 |阅读模式
兄弟们,不知道大家遇到过此事没有啊??<br /><br />就是QD4的BKGD复用的问题,手册上说这个却只能做输出。<br /><br />我就按这个说去做了。<br /><br />程序如下:<br /><br />void&nbsp;SysInit(void)<br />{<br />#define&nbsp;test_code<br />/*&nbsp;&nbsp;&nbsp;&nbsp;SOPT1_COPE&nbsp;&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;Disable&nbsp;WatchDog<br />&nbsp;&nbsp;&nbsp;&nbsp;SOPT1_STOPE&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;Disable&nbsp;StopMode<br />&nbsp;&nbsp;&nbsp;&nbsp;SOPT1_RSTPE&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;Rst&nbsp;Pin&nbsp;for&nbsp;general&nbsp;I/O<br />&nbsp;&nbsp;&nbsp;&nbsp;SOPT1_BKGDPE&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;BKGD&nbsp;Pin&nbsp;for&nbsp;general&nbsp;I/O<br />*/<br />#ifndef&nbsp;test_code<br />&nbsp;&nbsp;&nbsp;&nbsp;SOPT1&nbsp;=&nbsp;0x02;<br />#else<br />&nbsp;&nbsp;&nbsp;&nbsp;SOPT1&nbsp;=&nbsp;0x00;<br />#endif<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SPMSC1&nbsp;=&nbsp;0x18;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPMSC2&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PTAD_PTAD4&nbsp;&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;//&nbsp;Rise&nbsp;Prt&nbsp;Initial&nbsp;value&nbsp;for&nbsp;zero&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />为什么我输出一个高电平,IO口输出的是一个正尖脉冲,间隔100ms&nbsp;~150ms后<br /><br />出现一个负尖脉冲。请大家指点,是我哪里设置有问题?<br /><br />还是有其它的设置???请老师指点。<br />&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| win2000_li 发表于 2008-10-6 20:00 | 显示全部楼层

问题!

对不起兄弟们,这两个脉冲是我用示波器的交流造成的。<br /><br />以上面的程序是可以实现功能的,输出方波。<br /><br />自已太不严谨了。<br /><br />
 楼主| win2000_li 发表于 2008-10-6 20:05 | 显示全部楼层

MC9S08QD4 BKGD管脚复用之问题

但是还有问题就是我用BKGD做输出,外加一个三极管来驱动继电器。<br /><br />在一上电后,这个BKGD脚一直输出1.28V&nbsp;到&nbsp;1.31V。好像程序没有初始化<br /><br />一样,但是我把BKGD脚与外部电路断开后,再上电,等1~2s钟后再把外围<br /><br />电路接起,就可以正确输出。外围电路如下:<br /><br />
张明峰 发表于 2008-10-7 08:50 | 显示全部楼层

BKGD要小心

此脚内部有弱上拉,正常工作状态下,在上电复位时刻该脚不能是低电平,否则将进入内部调试模式,无法运行程序。<br /><br />你的现在的电路外部电阻R14和R7和内部上拉电阻分压,造成上电时引脚为低电平,所以无法工作。此电路必须改成低电平有效驱动,外部三极管用PNP。
forthlab 发表于 2008-10-7 10:41 | 显示全部楼层

张明峰说的对!

我上次设计的电路没有注意这个问题.CPU进入DBM模式了.临时加了上拉电阻.后来改正的.
 楼主| win2000_li 发表于 2008-10-7 12:38 | 显示全部楼层

谢谢老师!

谢谢老师,我按照您说的方法试了一下,果然可以。<br /><br />谢谢!不知道有没有好一点PNP电路驱动继电器,我认<br /><br />为现在这个驱动电路是最简单的,也是不可靠的。有<br /><br />很多缺馅的。<br /><br />以下是电路:<br />
forthlab 发表于 2008-10-7 12:48 | 显示全部楼层

你的电路有很大的问题!

由于接12V电源,不能充分可靠截至!
张明峰 发表于 2008-10-7 13:01 | 显示全部楼层

我说了个PNP

你就真的只用一个PNP啊?晕!三极管最基本的工作原理难道没学过吗?照7楼说的,用PNP+NPN解决问题。
 楼主| win2000_li 发表于 2008-10-7 13:48 | 显示全部楼层

谢谢老师批评!

但是这样可以工作啊!<br /><br />你说那种是不是这样的啊!<br />
张明峰 发表于 2008-10-7 13:55 | 显示全部楼层

这样才差不多

6楼的电路中三极管是不可能截至的,继电器驱动线包中永远有电流,差别只是大小而已。只不过碰巧小电流时它正好不能吸合罢了。<br />另外,R14/R15阻值没必要这么小,x10后差不多。
 楼主| win2000_li 发表于 2008-10-7 14:06 | 显示全部楼层

谢谢老师!

你说的很对,6楼的电路是可以工作的,但是不能可靠截至。<br /><br />导致现在的工作电流比以前大20mA左右;如果是小电流时,<br /><br />有可以导致三极管不能正常工作。是这样吧老师;<br /><br />请老师有没有更好一点的办法,或者说电路比此电路简单的;
张明峰 发表于 2008-10-7 14:11 | 显示全部楼层

除非你用5V继电器

则可以用回单个PNP管驱动的电路,否则,PNP+NPN是必须的.
 楼主| win2000_li 发表于 2008-10-7 14:13 | 显示全部楼层

谢谢老师!

我明白;<br /><br />谢谢~~
wangyubaidu 发表于 2013-1-4 13:53 | 显示全部楼层
这个图哪位老师能给我解释解释·~!谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

718

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部