[技术问答] 请教M451的灌电流能力

[复制链接]
685|36
 楼主 | 2019-10-21 14:21 | 显示全部楼层 |阅读模式
我有一个小板,用PF.1和PF.2输出控制光耦,低电平有效,每个口的灌入电流约5mA,当一个输出高电平一个输出低电平或两个都输出高电平时是正常的,但两个都输出低电平时,发现IO口无法输出到0,约为1.4V,请问是PF口的灌电流太弱,不能下拉完10mA电流吗?

使用特权

评论回复
| 2019-10-21 15:25 | 显示全部楼层
IO的模式要设置对,灌电流这个用开漏。

使用特权

评论回复
 楼主 | 2019-10-21 16:01 | 显示全部楼层
antusheng 发表于 2019-10-21 15:25
IO的模式要设置对,灌电流这个用开漏。

GPIO_SetMode(PF, BIT1, GPIO_MODE_OUTPUT);
GPIO_SetMode(PF, BIT2, GPIO_MODE_OUTPUT);

我是直接这样设置,请问对吗?

使用特权

评论回复
| 2019-10-21 17:20 | 显示全部楼层
eyu66 发表于 2019-10-21 16:01
GPIO_SetMode(PF, BIT1, GPIO_MODE_OUTPUT);
GPIO_SetMode(PF, BIT2, GPIO_MODE_OUTPUT);

这是输出模式啊。。不是那个开漏。

使用特权

评论回复
| 2019-10-21 17:21 | 显示全部楼层
986625dad78966432d.png

使用特权

评论回复
| 2019-10-21 17:21 | 显示全部楼层
你可以看看你的头文件,是不是有这个,我没用过M4,我用的M0,里面是有这个模式的。

使用特权

评论回复
| 2019-10-21 17:22 | 显示全部楼层
所以我觉得你模式用错了,你可以看看手册。一般ARM内核的单片机都支持开漏模式,专门用于灌电流的。

使用特权

评论回复
| 2019-10-21 17:26 | 显示全部楼层
391335dad79d08a88b.png

使用特权

评论回复
| 2019-10-21 17:26 | 显示全部楼层
帮你查了一下M4的开漏输出模式,可以支持20mA

使用特权

评论回复
| 2019-10-21 17:29 | 显示全部楼层
等我在论坛给你找个M4的教程。

使用特权

评论回复
| 2019-10-21 17:30 | 显示全部楼层
https://pan.baidu.com/s/1eRTFdGQ

使用特权

评论回复
| 2019-10-21 17:31 | 显示全部楼层
这个是论坛大佬分享的另外一个大佬做的电子书。不过写书的大佬的网站去年关门大吉了。

使用特权

评论回复
| 2019-10-21 17:32 | 显示全部楼层
非常适合入门学习。
讲的比较全面,其实大部分从手册抄来的。你可以认真看一遍手册介绍。

使用特权

评论回复
 楼主 | 2019-10-21 23:07 | 显示全部楼层

        GPIO_SetMode(PF, BIT1, GPIO_MODE_OPEN_DRAIN);
        GPIO_SetMode(PF, BIT2, GPIO_MODE_OPEN_DRAIN);
        PF1 = 0;
        PF2 = 0;
谢谢。
设为开漏模式后,输出似乎没什么改变,在5mA灌电流时,低电平只能到1.38V,把灌电流减少到2.5mA,则低电平能降到0.39V,但是和开漏模式20mA的吸收电流还是相距甚远,暂时还是找不到问题。

使用特权

评论回复
 楼主 | 2019-10-21 23:37 | 显示全部楼层
dongnanxibei 发表于 2019-10-21 17:26
帮你查了一下M4的开漏输出模式,可以支持20mA

直接用M4的例程测试,无论是设为准双向还是开漏输出,都不能把5mA拉低电平到1V以下,哎,无语了~

使用特权

评论回复
 楼主 | 2019-10-21 23:52 | 显示全部楼层

看了对应的规格书,单个IO口的灌电流最大是35mA,现在只有它的十分之一,低电平都1V以上,再大点电流,都不知高到多少去了
IO.png

使用特权

评论回复
| 2019-10-21 23:56 | 显示全部楼层
这就难易理解了。

使用特权

评论回复
| 2019-10-21 23:58 | 显示全部楼层
那就是不能满足楼主的应用需求?

使用特权

评论回复
 楼主 | 2019-10-22 08:14 | 显示全部楼层
本帖最后由 eyu66 于 2019-10-22 08:25 编辑
zhuotuzi 发表于 2019-10-21 23:58
那就是不能满足楼主的应用需求?

如果只是不满足使用要求也就罢了,问题是压根没达到规格,因为按照资料,它是能把35mA(一般单片机是20mA)的IO口电流拉完的,现在是只有5mA的电流就拉不完了。
注,1.当前只是用这个引脚输出电平,排除了所有IO总电流超出范围的可能。
      2.量了限流电阻的阻值,是正常的1K,排除了焊错电阻导致电流过大的可能。
      3.用的是新唐的例GPIO输入输出例程,排除程序没写好的可能。
      4.当前用法是PF1脚接一个1K限流电阻,然后接光耦负极,光耦正极接5V。PF1脚同时接一个LED负极,LED正极串联一个47K电阻后接5V.

      按理新唐不会出现这么低级的错误,总想着是不是哪里没设置好,但用例程也是这样,所以一时摸不着头脑了~

使用特权

评论回复
| 2019-10-22 09:31 | 显示全部楼层
晒晒你的这部分电路,才好理解你要实现什么功能

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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