[KungFu8位 MCU] KF8A100FNG的IO口配置问题

[复制链接]
328|8
手机看帖
扫描二维码
随时随地手机跟帖
lingjun1982|  楼主 | 2022-6-21 21:22 | 显示全部楼层 |阅读模式
我正在使用KF8A100FNG这款芯片进行开发,P1.3作为PWM5输出用于电机控制。
现在我遇到下面这样的问题:
1)上电后,我需要P1.3这个PIN先置高(输出1),但在debug时,未执行到
        P1LR3 = 1; //PWM输出置高
        此代码时,此PIN一直为低的状态
2)终止debug时,此PIN也变为低的状态

我希望此PIN默认为高的状态,但是datasheet中说只有数字输入口才可以开启上拉电阻功能,此PIN作为输出是不是就无法做到默认为高?
另外,datasheet中关于P1口的描述,系统复位时,P1口各引脚默认为输入口,是不是这样的限制我也无法实现P1.3在反复的debug时持续为高啊?

使用特权

评论回复
lvben5d| | 2022-6-22 07:55 | 显示全部楼层
本帖最后由 lvben5d 于 2022-6-22 13:52 编辑

关闭PWM, 可以使用强制输出引脚电平为1或0 哦。  如果PWM开启,可以设置空闲下极性为0或1即可(此时 空闲 说明T2计数要关闭  我发现强制关闭T2ON=0 会导致输出电平未知?? 因为比较数值可能大于T2 计数值  也可能小于)。都会有默认值。 所以,我是关闭PWM功能,使用强制输出引脚电平的方式。   PWM5OC   PWM5PC  里有相关输出PWM的极性控制。

使用特权

评论回复
树上的小鸟| | 2022-6-23 08:10 | 显示全部楼层
1,OPTR寄存器中的bit 7为I/O 口上拉功能总使能位,复位值为禁止所有 I/O 口的上拉功能,所以芯片上电复位后,无法通过上拉。故上电后IO引脚电平不能保证。针对你的应用,需要默认高电平,可以在外部增加上拉电阻,以实现上电高电平状态。
2,先设置P1LR寄存器输出状态为高,然后在设置TR1方向控制寄存器为输出,此时转换为输出状态时就为高电平了。

使用特权

评论回复
lvben5d| | 2022-6-23 09:10 | 显示全部楼层
楼上说的对,有些可能导致输出上电的危险场景,MCU上电之前,需要给外部硬件一个确定电平,内部毕竟是上电复位后,程序运行起来几十ms后才可以给出得确定电平得。

使用特权

评论回复
lingjun1982|  楼主 | 2022-6-24 13:32 | 显示全部楼层
树上的小鸟 发表于 2022-6-23 08:10
1,OPTR寄存器中的bit 7为I/O 口上拉功能总使能位,复位值为禁止所有 I/O 口的上拉功能,所以芯片上电复位 ...

感谢
我是在debug状态下遇到的这个问题,download release版本并不存在,通过示波器查看此PIN,上电后一直为高。
对于第1点,上电后IO引脚电平不能保证,意思是既不能保证低电平也不能保证高电平,是不确定的,对吗?
对于第2点,我目前的初始化如下,先配置为输出,再置高也是可以的,对吧?
        TR1 = 0;
        ANS1 = 0;
        P1LR = 0;
        P1LR3 = 1; //PWM输出置高

使用特权

评论回复
lingjun1982|  楼主 | 2022-6-24 13:33 | 显示全部楼层
lvben5d 发表于 2022-6-22 07:55
关闭PWM, 可以使用强制输出引脚电平为1或0 哦。  如果PWM开启,可以设置空闲下极性为0或1即可(此时 空闲  ...

感谢

使用特权

评论回复
lingjun1982|  楼主 | 2022-6-24 16:01 | 显示全部楼层
树上的小鸟 发表于 2022-6-23 08:10
1,OPTR寄存器中的bit 7为I/O 口上拉功能总使能位,复位值为禁止所有 I/O 口的上拉功能,所以芯片上电复位 ...

你好,我要在项目中加入Boot loader的功能,想问一下,KF8A100FNG这款芯片的flash擦写方法是怎样的?我在datasheet中没有找到相关指令,还是这款芯片就不支持啊?

使用特权

评论回复
lvben5d| | 2022-6-25 07:53 | 显示全部楼层
lingjun1982 发表于 2022-6-24 13:32
感谢
我是在debug状态下遇到的这个问题,download release版本并不存在,通过示波器查看此P ...

一般 上电后没有初始化之前, 可配置带强推挽输出的32位机 应该是高组态。 我用到的风机,PWN控制引脚,他内部上拉高,导致上电会默认全速。所以,加了1个电源开关,我电源关闭着,就不怕上电瞬间(MCU没初始化之前)转几百ms !   ,    关于第2点,你没必要用这个方式去,应该用我给你的方式去做,这样方便切换使能和关闭PWM, 不更顺一点?

使用特权

评论回复
lvben5d| | 2022-6-25 07:55 | 显示全部楼层
KF8A 这个8位机 不支持bootloader , 建议改KF32A140 等32位机,类似GD32  我可以运行程序的时候,擦写FLASH,FLASH是统一寻址。

使用特权

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

本版积分规则