ソフトウェアスタンバイからのUSBレジューム割り込み復帰

早速ですが、掲題の件に関してご教授頂きたく投稿しました。

RX111 + E1デバッガ +E2studioの構成にてソフトウェアスタンバイ突入・復帰0のデバッグを行っており、

現在下記のような状態でIRQ要因では復帰できるものの、USBレジューム要因では復帰が出来ません。

USBレジューム割り込みをイネーブルに設定しており、割り込みルーチンに突入することは

確認できており、r_usb_basic_miniおよびr_usb_pdcd_miniコンポーネントを使用し、

マイコンをペリフェラル側にしたUSB通信は確認できているのでUSB関係の初期設定は問題ないと考えています。

クロックは、外部水晶12MHzを2分周8逓倍し48MHzとし、これを2分周してシステムクロック・周辺クロック等で

使用しています。

設定漏れ等、復帰できない原因と考えられる部分はございますでしょうか。

 

■状況

・IRQ端子からの割り込み要因使用時

 ディープスリープからの復帰OK

 ソフトウェアスタンバイからの復帰OK

 

・USBレジューム割り込み(USBR0)要因使用時

  ディープスリープからの復帰OK

  ソフトウェアスタンバイからの復帰NG ←この条件が動かない

 

■ソース (ソフトウェアスタンバイ突入部分抜粋)


 R_USB_Open(&ctrl, &cfg);
 R_USB_PullUp(USB_ON); //FullSpeed(12Mbps)設定 D+=PU,D-=PD

 SYSTEM.PRCR.WORD = 0xA501;

 //DTCモジュールオフ
 DTC.DTCST.BIT.DTCST = 0;

 //発振停止検出許可ビットをオフ
 SYSTEM.OSTDCR.BIT.OSTDE = 0;

  //レジューム割り込み有効
 USB0.INTENB0.BIT.RSME = 1;

 //USBI0割り込み禁止
 IR(USB0,USBI0)=0;
 IPR(USB0,USBI0)=0x0;
 IEN(USB0,USBI0)=0;

 //USBROレジュームを割り込み要因(復帰要因)に設定
 IR(USB0,USBR0)=0;
 IPR(USB0,USBR0)=0xF;
 IEN(USB0,USBR0)=1;

  //PSW.I=0に設定
 clrpsw_i();

 //ディープスリープにしない
 SYSTEM.MSTPCRC.BIT.DSLPE = 0;

  //ソフトウェアスタンバイ
 SYSTEM.SBYCR.BIT.SSBY = 1;
 while(SYSTEM.SBYCR.BIT.SSBY != 1){nop();}

 wait();

Parents
  • コピペミスで、プロテクトレジスタの設定は
     SYSTEM.PRCR.WORD = 0xA501; ではなく、
     SYSTEM.PRCR.WORD = 0xA503; としています。

    また、最終行のwait();実行にて、e2studio上のデバッグステータスは
    "実行中"からスタンバイ"になることと消費電流が削減されることは確認できています。
Reply
  • コピペミスで、プロテクトレジスタの設定は
     SYSTEM.PRCR.WORD = 0xA501; ではなく、
     SYSTEM.PRCR.WORD = 0xA503; としています。

    また、最終行のwait();実行にて、e2studio上のデバッグステータスは
    "実行中"からスタンバイ"になることと消費電流が削減されることは確認できています。
Children
No Data