This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

pwm口内部上拉问题



在F28069中,GPIO0-GPIO11这几个具有pwm功能的GPIO口为上电默认不上拉,即输出低电平是吧,先想上电输出高电平,应该怎么办,谢谢

  • 外部加上拉电阻就可以了。

     

     

    如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮。 感谢您对TI的支持!

  • 首先,需要肯定你比大多数用户更了解芯片,知道GPIO有上拉,而与PWM口复用的GPIO引脚是默认不使能的;

    http://processors.wiki.ti.com/index.php?title=General_Purpose_IO_(GPIO)_FAQ_for_C2000#Pull-up.2FPull-down

    其次,你上面的描述中还是有一点不大准确,即GPIO的方向:上电时默认的方向是输入而不是输出的(请查看TRM里GPIO方向寄存器的说明),所以上电后无论否有使能上拉电路,GPIO引脚对应的电平都不会对外部电路有影响的;

    最后,想确认一下你为什么要输出高电平?如果是要驱动外部电路,那么除了电平以外,还是需要改变方向的。

    一种方法就是上面提到的外加上拉电阻,但同时也要在软件里设置方向为输出,还有一种办法是使能内部上拉,同时在软件里也设置方向为输出。

    既然都要通过软件设置,那就不是上电后立即生效的,所以做法是不要在main()函数里执行,而是放到reset后执行汇编语句的第一时间里去,也即codestartbranch.asm文件里,你可以参考其中关闭看门狗的方式对GPIO进行设置。

  • 你好,谢谢你的回答,现在我想让芯片上电输出低电平,但是发现上电后,会有一个1ms的高电平抖动,因为我的PCB板上,DSP的引脚直接引到CPLD里了,CPLD供电5伏,DSP是3.3V,每次上电时是5V启动后才生成3.3v,也就是cpld先启动,DSP后启动,这样可能就导致,DSP还没启动,就先有一个很短暂的高电平,不知道是不是这个原因,请问应该怎么办呢

  • 这取决于这个电平是来自哪里,也即先要判断是CPLD产生的,还是C2000产生的。

    一个直接的办法就是在外部加一个很强的下拉,实际上是可以根据电流算出来大概的电平然后有针对性地去改变。

    回到来源上,如果是CPLD,我没什么建议,如果是C2000,则还是上面提到的,在上电复位后的瞬间通过汇编文件进行软件处理。

  • 您好,一个问题请教下,上段回复中“GPIO引脚对应的电平都不会对外部电路有影响的”怎么理解?如果不加外部上拉,在输出与GND间放置一个电阻不会有压降吗?这样不就有电流吗?相当于内部电流源对外部起作用吗?