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.

msp430 IO中断问题

Other Parts Discussed in Thread: MSP430F5659

我只是检测按键中断,按键有上拉电阻接入单片机,当没有按键按下的情况下,IO口输入一直是高电平,当按键按下与地接通成为低电平,所以我将IO 中断配置成下降沿检测中断。可是在我上电之后,开始仿真,刚上电啊  程序刚运行,根本没有按下按键但总会第一遍运行程序就进去一次IO中断,程序继续执行之后就正常了,就会检测到按键按下就才进中断。我想知道这是为什么。?IO口的上电过程是什么样的,是不是 IO口一上电初始化 有一个高电平到低电平的跳变呢。 可是我接着外部上拉呢啊 怎么会检测到下降沿。

  • 你好,我开发的设备想使用MSP430F5659的USB_BSL,为设备日后的固件升级提供接口,但在阅读 slau319l 文档时,对这段话不太理解:

    1.3.3 Devices With USB
    Devices with USB are invoked when either of the following two conditions are met while the device is
    powered by VBUS:
    • The device is powered up by USB and the reset vector is blank.
    • The device powers up with the PUR pin tied to VUSB.

    疑问1:MSP430F5659芯片必须是在芯片的VBUS 引脚上输入 5V,然后整个芯片的3.3V供电均要取自VBUS 经过LDO3.3V 稳压的 VUSB 吗?

    疑问2:我如何通过USB复位?

    疑问3:PUR 引脚要连到VUSB 引脚上,是否意味着VBUS 的输入电源必须是来自外部的USB电缆(即不能使用设备内部的5V供电)?否则我还要在设备外部准备一个开关?在需要芯片进入USB_BSL时,切换PUR脚与VUSB脚连通?而且让我感到困惑的是如果VBUS电源只能取自设备外部,那么如果第1个疑问要满足,那岂不是整个芯片都要靠外部USB供电?这显然不可能啊...

    菜鸟的提问,英文不好,请不要见笑 :P

  • 这个文档我们是有中文版的

    您可以点击下面的链接获取

    www.ti.com.cn/.../zhcu022b.pdf

    1.3.3 带有 USB 的器件

    当满足下列任一条件且此器件是由 VBUS 供电时,带有 USB 的器件被调用:

    • 器件由 USB 供电且复位矢量为空。
    • 器件在 PUR 引脚被接在 VBUS上的情况下加电。
  • 另外您可以看一下

    www.ti.com.cn/.../slau208q.pdf



    42.2.2.2 Powering the Rest of the MSP430 From USB Bus Power Via VUSB

    您是可以用USB为整个板子供电的,我们的Launchpad都是USB供电
  • 感谢你的回复,我还是有如下疑问:
    1. 这篇中文文档的第二个条件:
    • 器件在 PUR 引脚被接在 VBUS上的情况下加电。
    是说PUR引脚被接在VBUS上,但英文文档是说接在VUSB上,哪个是正确的?

    2. 要想使用USB BSL是不是MSP430F5659必须用VBUS供电?使用我设备内部的开关电源不行吗?
  • 感谢你的回复,我想说明一下我的应用场景,我开发的设备内部还有大量其它部件,功耗都在几十瓦到上百瓦,所以设备内部有一个几百瓦的开关电源,所以我并不需要考虑低功耗,所以原设计上MSP430F5659是由开关电源统一供电的,现在我想给设备增加一个USB接口利用 BSL给设备提供一个将来更新固件的功能,那么在阅读文档时我注意到,需要将MSP430F5659的USB模块的PUR引脚接到VUSB上,而查看TI的Launchpad电路板的电路图,发现1. 正如你所说“Launchpad都是USB供电”,2.PUR引脚和VUSB之间接了一个按键,标注BSL。于是我想我不可能在设备外部专门加一个按钮来让设备重新上电时进入USB_BSL,那么只能是平时VUSB没有电压,当USB电缆插上后,VBUS的电源取自其它USB设备(例如电脑),然后经LDO输出,这样在VUSB上就有电压了,此时设备重新开机,MSP430F5659应该进入BSL调用。但进一步阅读文档,产生了疑惑,尤其是的是这句话:
    1. “当满足下列任一条件且此器件是由 VBUS 供电时,带有 USB 的器件被调用:” ——难道我的整个单片机都必须是通过USB供电才能使用USB BSL吗?因为这句话用的是“且”字。如果是这样,难道我的设备要改成设备内部其它部件用开关电源供电,而以单片机为核心的部分要单独扯一根USB电缆接到外部USB供电的设备上?这样的设备不是很奇怪吗?所以我想问清楚,是不是应该只是MSP430F5659的USB外设部分由外部USB供电,MSP430F5659芯片的其它电源引脚还是接到我内部开关电源上?
    2. 如果我将PUR引脚连到VUSB脚,中间没有按键或跳线,那么是不是我的这个想扩展的USB口就只能用作BSL升级代码用了?那么有没有比使用按键更好的设计呢?

    希望我把我的疑惑讲清楚了,谢谢!!
  • 那您可以通过 软件调用的方式来进入BSL模式

    www.ti.com/.../slaa452c.pdf 的Table 1. Methods By Which the USB BSL Can Be Invoked所介绍的那样

    If the user application transfers control of execution to the BSL (jump to 0x1000), the BSL is invoked.

    将PC指针指向0x1000即可唤醒BSL。
  • 我觉得重点在于你说的仿真,会不会是上电的时候,需要手动清除中断标志呢,或者上一次的标志没清除。你实际运行也会进按键中断吗,中断中加入串口数据输出试试?还有就是PORT1是不是共用一个中断入口呢,有没有可能是其他IO进去中断了
  • 上电的时候io默认是输入状态,具体的电平状态由外部电路决定。