Renesas Community
Search Community
User
Join or sign in
Site
Search Community
User
Renesas Engineering Community
FAQ
HELP
More
Cancel
Forums & Groups
English Community
中文社区(Chinese Community)
More
Cancel
かふぇルネ
forums-groups
Microcontrollers and Microprocessors
RX MCU
More
Cancel
RX MCU
Forum
USB通信の割り込みでCMT割り込みを邪魔させたくない
Home
Forum
Tags
More
Cancel
New
Replies
6 replies
Subscribers
457 subscribers
Views
5287 views
Users
0 members are here
RX62N-RSK
割り込み
宣言#PRAGMA
MCU
Renesas
and
interrupt
エニュメレーション
ASSP
USB
Options
Share
More
Cancel
Related
USB通信の割り込みでCMT割り込みを邪魔させたくない
級長
over 11 years ago
RX62N-RSKを使用してRX62Nの使い方を勉強している者です。
将来的にはUSBでCDC通信を行いながら、CMTで割り込みを発生させ一定周期の処理を行いたいと考えています。
そこで、現在はRenesas USB MCU and USB ASSP USB Peripheral Communications Device Class Driver (PCDC)のサンプルプログラムをダウンロードして実行させながらUSB通信を確認しているのですが、次のような疑問が湧きました。
上記サンプルプログラムはUSBのエニュメレーションとデータ転送が割り込みにより行われますが、USBの割り込みで一定周期で行わせたいCMTの割り込みを邪魔させたくない(CMTの割り込みは可能な限り一定周期で行わせたい)場合には、どのように処理をさせるのが得策なのでしょうか?
まだ、勉強不足なので、どんな方法が考えられるかわからないのですが、
(1)USBの割り込みの宣言#PRAGMA interruptにenableオプションをつける?
(2)USBの割り込み処理(usb_cpu_usb_int_hand()関数)の読み出しを、割り込みではなくポーリングで行う?
等の方法かと思っているのですが、上記2つの方法での実現は可能なのでしょうか?
同じような事を考えた方は居ないでしょうか?
お知恵をお借りしたいと思います。
よろしくお願いします。
Parents
m-ueno
over 11 years ago
級長さん、こんにちは。
みなさん、横から失礼します。
私が経験した件も「USBを使用した環境において、タイマ割り込みの周期を正確にする必要がある」という仕様でしたので、級長さんの今の状況と似ているのではないでしょうか。
私の場合、
・MPUは、V850E2/ME3
・USBドライバは、サードパーティ製ライブラリ
でした。
私の経験だと、USB割り込みの多重割り込みを許可に設定し、優先順位をUSBよりタイマの方を高く設定すれば、タイマ割り込みの周期はだいぶ正確になりました。
そのかわり、USB割り込みが待たされることになり、結果的にUSBの通信ができなくなってしまいました。最終的にUSB割り込みの優先順位を一番高く設定しないと通信ができない状況でしたので、タイマ割り込みの周期は正確にすることができませんでした。
おそらく、級長さんの状況でも同じではないかと思います。
汎用のタイマを使用したモータ制御では、考えているような動作ができないかもしれません。使用しているのはRX62Nということでしたが、RX63Tにはモータ制御用タイマとUSBの周辺回路がのっていますが、級長さんの仕様にはこちらの方が合っているのではないでしょうか。あ、私はRX63Tについては詳しくありませんので、断言できませんが。。。すみません。
それと、イベントドリブンの簡単な実現方法は、やはり割り込みではないかと思います。\”送信完了\”や\”受信完了\”などの割り込みをイベントとして、それにより処理を起動(ドリブン)する方法です。特に\”受信完了\”はいつ発生するか分かりませんので、それを常にチェックし続けるのは非効率です。メインループは無限ループさせても構いませんが、\”受信完了\”などを割り込みフラグをチェックするのではなく、割り込みを発生させて処理をすれば、シンプルで分かりやすいイベントドリブンが実現できると思います。
emanonさん、すとさん、横から失礼しました。
こんな感じで間違いないでしょうか。
Cancel
Up
0
Down
Reply
Cancel
Reply
m-ueno
over 11 years ago
級長さん、こんにちは。
みなさん、横から失礼します。
私が経験した件も「USBを使用した環境において、タイマ割り込みの周期を正確にする必要がある」という仕様でしたので、級長さんの今の状況と似ているのではないでしょうか。
私の場合、
・MPUは、V850E2/ME3
・USBドライバは、サードパーティ製ライブラリ
でした。
私の経験だと、USB割り込みの多重割り込みを許可に設定し、優先順位をUSBよりタイマの方を高く設定すれば、タイマ割り込みの周期はだいぶ正確になりました。
そのかわり、USB割り込みが待たされることになり、結果的にUSBの通信ができなくなってしまいました。最終的にUSB割り込みの優先順位を一番高く設定しないと通信ができない状況でしたので、タイマ割り込みの周期は正確にすることができませんでした。
おそらく、級長さんの状況でも同じではないかと思います。
汎用のタイマを使用したモータ制御では、考えているような動作ができないかもしれません。使用しているのはRX62Nということでしたが、RX63Tにはモータ制御用タイマとUSBの周辺回路がのっていますが、級長さんの仕様にはこちらの方が合っているのではないでしょうか。あ、私はRX63Tについては詳しくありませんので、断言できませんが。。。すみません。
それと、イベントドリブンの簡単な実現方法は、やはり割り込みではないかと思います。\”送信完了\”や\”受信完了\”などの割り込みをイベントとして、それにより処理を起動(ドリブン)する方法です。特に\”受信完了\”はいつ発生するか分かりませんので、それを常にチェックし続けるのは非効率です。メインループは無限ループさせても構いませんが、\”受信完了\”などを割り込みフラグをチェックするのではなく、割り込みを発生させて処理をすれば、シンプルで分かりやすいイベントドリブンが実現できると思います。
emanonさん、すとさん、横から失礼しました。
こんな感じで間違いないでしょうか。
Cancel
Up
0
Down
Reply
Cancel
Children
No Data