トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

PSoC HID デバイスが再起動時にフリーズする問題

[電子工作]

現象

  • PSoC の USBFS デバイスのサンプル HID マウスのコードを参考に HID デバイスを作成すると、接続したまま PC 再起動をすると HID デバイスが正常に動作しない

対処

・バスリセットがかかったら再コンフィグレーションされるまで待つべき
・while (!USBFS_1_bGetEPAckState(1);のように待つと,ACKを返す前
 (EP1にデータが入った状態)でバスリセットがかかるとEP1はクリア
 されて,次にCPUが読みにきたらACKではなくNAKが返るからフラグが
 立たないままになる

[出典] 2ちゃんねる:電気・電子板【新時代!】PSoC スレ 其の八 
http://science6.2ch.net/test/read.cgi/denki/1245848449/377-408

[参考]PSoC Developer の該当しそうな記事
http://www.psocdeveloper.com/forums/viewtopic.php?f=16&t=4378

[類似]PSoC3 USBUART デバイスが再起動時におかしくなる問題

メイン部のコード修正例

[出典] 2ちゃんねる:電気・電子板【新時代!】PSoC スレ 其の八 
http://science6.2ch.net/test/read.cgi/denki/1245848449/406
のコード

void main()
{ 
 M8C_EnableGInt;
 USBFS_1_Start(0, USB_5V_OPERATION);
 while(1) {
   while(!USBFS_1_bGetConfiguration());
   USBFS_1_LoadInEP(1, abMouseData, 3, USB_NO_TOGGLE);

   while(USBFS_1_bGetConfiguration())
   {
     if (USBFS_1_bGetEPAckState(1)) {
        USBFS_1_LoadInEP(1, abMouseData, 3, USB_TOGGLE);
        if(i==128)
           abMouseData[1] = 0x05;
        else if(i==255)
           abMouseData[1] = 0xFB; //Start moving the mouse to the left
        i++;
      }
    }
  }
}

 カテゴリ : もくしいゲームレシピコンピュータ雑文生活電子工作おいしい店マップ

                  Topページへ | もてないSNS「もくしい」