查看: 4193|回复: 8

[求助] KL26Z芯片I/O口的驱动能力这么差吗?

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2015-12-31 22:34:30 | 显示全部楼层 |阅读模式
    本帖最后由 zhjb1 于 2015-12-31 22:36 编辑

    KL26 Sub-Family Reference Manual with Addendum.pdf手册,P191,Chapter 11 Port control and interrupt (PORT),其中说明了寄存器的设置:
    11.5.1 Pin Control Register n (PORTx_PCRn),以及11.5.2:PORTx_GPCLR,11.5.3:PORTx_GPCHR,11.5.4:PORTx_ISFR。
    重点是PORTx_PCRn。按照寄存器设置规则我试着设置了PORTD_PCR0~PORTD_PCR7这一组I/O口。
    31-25保留;24-中断状态,只读=0;23-20保留;19-16中断配置,本实验不用=0000;15-11保留;10-8混合选择,本例为GPIO=001;7保留;6驱动能力允许=1;5保留;4无源滤波允许,不用=0;3保留;2压摆率,高=1;1内部拉电阻允许,使用=1;0上下拉选,由于管脚下拉能力强,选择上拉=1。得到的所有设置为PORTD_PCR0~PORTD_PCR7=0x00000147u;
    结果是有输出,但信号非常弱,弱到连一只LED都点的在延时[500!累加]勉强能看到有发亮,无法驱动并口的LCD正常工作!?
    我也采用随板案例中的GPIO设置,结果照旧,除了PTD0——这个管脚已有拉电阻,其他的都不行。与以前的K10~K60以及更早的SX128都无法比,那些直接驱动LED[当然有限流电阻]毫不费力。
    我的问题是,采用KL26Z板子实验的网友们,你们也是这样的吗?是否因为KL是低功耗型的M0就设计成这个样子吗?必须外接上拉电阻才能正常使用?
    可以比较的是MSP430属于低功耗型的,直接驱动LED毫无问题。当然驱动并口的LCD也是毫无问题的。
    以前C51单片机B口就是弱驱动型的,手册上明确需要外接上拉电阻。这款内部已有上下拉电阻了,配置成上拉能力还是这么差?

    我知道答案 目前已有8人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2016-1-4 11:11:00 | 显示全部楼层
    IO口能否驱动LED请看数据手册KL26P121M48SF.pdf里的参数(2.2 Nonswitching electrical specifications)与你使用的LED参数。从数据手册上看芯片IO口内部弱上拉,上拉电阻阻值有20~50kΩ


    另外通过操作GPIO寄存器常亮那个LED也无法正常工作吗?

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-1-4 12:20:07 | 显示全部楼层
    楼主你好!
    如果不是high drive的IO口,那么驱动电流,单独的IO口为3mA,连续16个IO的驱动总电流为25mA。
    如果是high drive的IO口,也就是PTB0,PTB1,PTD6,PTD7这几个引脚,使能PORTx_PCRn[DSE]位, 则
    • 2.7 V ≤ VDD ≤ 3.6 V, IOH = -20 mA
    • 1.71 V ≤ VDD ≤ 2.7 V, IOH = -10 mA
    所以,你看看你的LCD需要多大的驱动电流,如果不够,你肯定要外加驱动模块。不过对于LED,不知道你使用的是什么LED,一般LED,肯定是可以点亮的。你可以参考FRDM-KL26的板子。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-4 16:14:12 | 显示全部楼层
    现在的情况是这样的,如过采用案例中的单个I/O的定义,无任何问题。但如果采用寄存器写方式定义的I/O口,输出有,但信号幅度很低不足以驱动。目前采用的是程序并转串的方式测试并口LCD无问题。但这是很可笑的。我已经将并转串的方式程序代码发上去了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-1-4 17:23:19 | 显示全部楼层
    zhjb1 发表于 2016-1-4 16:14
    现在的情况是这样的,如过采用案例中的单个I/O的定义,无任何问题。但如果采用寄存器写方式定义的I/O口,输 ...

    对于并口的驱动能力,的确是有问题的,而且你用的几个口,都不是high drive的口,这样连续的16个IO口驱动电流只有25mA,单个只有3mA,你想直接驱动LCD,肯定要加外部驱动电路。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-4 22:25:56 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2016-1-4 17:23
    对于并口的驱动能力,的确是有问题的,而且你用的几个口,都不是high drive的口,这样连续的16个IO口驱动 ...

    您好,LCD的驱动非常小,电流大约小于1mA,整个LCD的电流才在5mA以内,包括背光。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-11-17 14:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    15

    主题

    296

    帖子

    0

    高级会员

    Rank: 4

    积分
    945
    最后登录
    2017-3-15
    发表于 2016-1-4 23:42:27 | 显示全部楼层
    IO 设置问题,继续检查代码吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-1-5 09:12:08 | 显示全部楼层
    zhjb1 发表于 2016-1-4 22:25
    您好,LCD的驱动非常小,电流大约小于1mA,整个LCD的电流才在5mA以内,包括背光。 ...

    那么你这个MCU中,除了LCD需要IO口的驱动,还有没有其他的设备?
    所有IO口加起来最大100mA,所以如果有其他设备,你先去掉,然后试试。
    如果你LCD只有5mA之内,应该是够用的。把你配置代码都贴出来,并且把你的原理图也贴出来我看看。
    另外,你芯片电源供电有没有问题?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2016-1-5 18:09:23 | 显示全部楼层
    FSL_TICS_ZJJ 发表于 2016-1-5 09:12
    那么你这个MCU中,除了LCD需要IO口的驱动,还有没有其他的设备?
    所有IO口加起来最大100mA,所以如果有其 ...

    #define GPIO_PIN_MASK 0x0Fu
    #define GPIO_PIN(x)(((1)<<(x & GPIO_PIN_MASK)))
    #define dat GPIOD_PDDR//the 8bits Data

    PORTD_PCR0=0x00000147u;
    ~
    PORTD_PCR7=0x00000147u;
    前3行是K10~K60中定义并口的写法,搬来的。
    配置I/O口的代码就是上边这个寄存器写。
    dat救赎程序中用的定义PORTD 8位的并口。YL-KL26Z板子就接了一块LCD屏,额外电流小于5mA。
    https://www.nxpic.org.cn/module/forum/thread-603237-1-1.html
    就像上边的照片一样,最多1个屏。
    这个是串转并后的成功案例。谢谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-23 10:31 , Processed in 0.106349 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表