{{category 電子工作}} !!!現象 *PSoC の USBFS (USB-UART) デバイスのサンプル(エコーする)コードを参考に USB-UART デバイスを作成すると、接続したまま PC 再起動をするとデバイスが正常に動作しない !!!対処 ・PSoC1 の時のサンプルと同じ問題を引きずっている。 ・バスリセットがかかったら再コンフィグレーションされるまで待つべき [出典] PSoC HID デバイスが再起動時にフリーズする問題 !!!メイン部のコード修正例 ・USBUART_1_bGetConfiguration() を常に監視し、false になったら 再Init するように修正。 #define LED_UNCONFIG (0x01) #define LED_CONFIGURED (0x02) void main() { /* Initialization Code: */ CYGlobalIntEnable; USBUART_1_Start(0,USBUART_1_3V_OPERATION); /* Main Loop: */ for(;;) { // Wait until ready and reset Control_Reg_1_Write(LED_UNCONFIG) ; // for PSoC3 DVK LED while(!USBUART_1_bGetConfiguration()); USBUART_1_CDC_Init(); // Loop until reset Control_Reg_1_Write(LED_CONFIGURED) ; // for PSoC3 DVK LED while(USBUART_1_bGetConfiguration()) { Count =USBUART_1_bGetRxCount(); if(Count!=0) { USBUART_1_ReadAll(Buffer); USBUART_1_Write(Buffer, Count); while(!USBUART_1_bTxIsReady()){ if (!USBUART_1_bGetConfiguration()) break; }/* Wait for Tx to finish */ } } } }