TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F5529的自带USB插入电脑无反应

用MSP430F5529自带的USB功能模块想做跟PC机通信应用,但是,当USB插入电脑时,什么反应都没有,刚开始,当我按下USB BSL按键时,可以在在电脑的设备管理器中的通用串行总线控制线看到有一个unknow device,但现在插进去按下BSL按键什么反应都没有。BSL下载软件业总是显示没有发现设备。后来就先放弃用BSL,写上USB程序,参考了TI的例子,也参考了其他人做的例子,写进去,插入USB,什么反应也没有。

这是什么问题呢?上传了一个USB硬件原理图。

Leon Yan:

你好:

首先需要搞清楚,你到底给MCU USB部分开发程序了没有?

BSL按键按下,windows有提示,说明硬件应该没什么问题。

再一个,你参考的例子,是哪种USB协议?

谢谢。

kandy286:

回复 Leon Yan:

你好,我有写入USB程序的。我参考的例子是TI的CDC的例子。

框架大概是:

int main(void)

{

    WDTCTL = WDTPW + WDTHOLD;    //关闭看门狗     PMMCTL0 = 0xA502;    //系统频率为18MHz,Vcore调为level 2    SYS_Init();    //自己的硬件、系统初始化    TIMER1_A0_Init();    EEPROM_Init(); 

    Init_Clock();      USB_init();    USB_setEnabledEvents(kUSB_VbusOnEvent + kUSB_VbusOffEvent);

      if (USB_connectionInfo() & kUSB_vbusPresent){        USB_handleVbusOnEvent();      }        OLED_Init();

    __enable_interrupt();    //开中断

 

while(1)

{

  …

//自己的程序。。。

 switch (USB_connectionState())        {            case  ST_USB_DISCONNECTED:                _NOP();                break;

            case  ST_USB_CONNECTED_NO_ENUM:                break;

            case  ST_ENUM_ACTIVE:                //得到接收数据字节数                bytesReceived = cdcReceiveDataInBuffer(dataBuffer, BUFFER_SIZE,                                                       CDC0_INTFNUM);

                if (bytesReceived){                    // 后台发送数据                    cdcSendDataInBackground(dataBuffer, bytesReceived,                                            CDC0_INTFNUM, 0);

                    // 数据LCD显示                    for (i = 0; i < bytesReceived; i++)                    {                        ShowStr8X16(40,24,&dataBuffer[i],NORMAL);                    }                }                                USBCDC_sendData(USBSENDDATA,5,0);    //发送数据                break;

            case ST_NOENUM_SUSPENDED:                _NOP();                break;

            case  ST_ENUM_SUSPENDED:                P1OUT |= BIT2;    //LED                _NOP();                break;

            case ST_ENUM_IN_PROGRESS:                _NOP();                break;

            case  ST_ERROR:                _NOP();                break;

            default:;        }    }}

大概就是这样。

 

现在有些问题还没搞清楚,用BSL下载时,按下BSL按键,单片机里面程序为空,电脑也应该会显示设备吧?但是现在插进去,什么反应都没有了,连unknow device也没有显示。

还有,程序写入单片机后,电脑也没有什么反应。

kandy286:

回复 kandy286:

还有,我也通过了描述符工具来开发,VID是0x2047,PID是0x0300,设置了XT2晶体等。

Leon Yan:

回复 kandy286:

个人建议,你先把F5529 EVM得原始程序下载进去,看USB在PC上是否正常工作;

然后再一步一步查软件的问题。

kandy286:

回复 Leon Yan:

你好,请问下5529的EVM的原始程序在哪下载?(不知道EVM是什么),如果硬件正常,下载进去,USB可以正常运行吗?

Leon Yan:

回复 kandy286:

你好,如果你已经安装了CCS,那么这个程序在以下路径:

C:\ti\ccsv5\ccs_base\msp430\msp430ware_1_40_00_26\examples\boards\MSP-EXP430F5529\src

谢谢。

kandy286:

回复 Leon Yan:

谢谢你的耐心回答。现在搞定了。HID 和 CDC都连上了。

kandy286:

回复 kandy286:

就剩下BSL没有搞定了。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5529的自带USB插入电脑无反应
分享到: 更多 (0)