サイト内検索

山さんの秘密道具

Article header analog discovery 300x196  1

 7月に開催したEFM32マイコンセミナー、多くの方にご参加頂き、ありがとうございました。ご好評につき定期開催させて頂きますので、山さんと直接話したいという方は是非ご参加ください。
 では早速、今回の記事の内容はEFM32マイコンの超消費電力を実現する機能の一つ、PRSについて書かさせて頂きます。セミナーの準備で延び延びになっていた勉強会ですが分かりにくかったPRSを題材に山さんに教えてもらいます。ということで、早速 勉強会の準備を始める山さん、何やら新しい物を持ってきました。「あれっ、山さん 評価キットの隣にある黒いケースってなんですか? もしかして山さんの私物?」との問いかけに、「これは波形観測や信号発生器として使えるんですよ。便利ですよ。これは会社で買ってもらったので大丈夫です。」と、ちょっと含みを持たせた回答。聞けば、個人で使っていて便利なので会社でも購入したとのこと。個人でも購入しているって、いったい何に使ってるんですか?週末、家で何やっているんですか?今日も山さんへの驚きからスタートです。

PRS(Peripheral Reflex System)

Article header rps図 300x177  1

 Silicon Labs社が提供する資料で右図の資料を見たことありませんか?PRSは消費電力を低減する機能の一つで、”CPU停止状態でも内蔵ペリフェラルが互いに連携し自律動作・自動応答する”らしいのですが、図を見る限りではさっぱり分かりません。各ペリフェラルがバスで繋がっているような図ですが、動作や設定方法がわかりません。ということで基本的なところから山さんの説明は始まりました。

PRSオーバービュー

Article header prsリファレンスマニュアル 300x200  3

 先に示した図ではちょっとイメージがつかみにくということで、リファレンス・マニュアルに記載されている模式図を元に説明してもらいました。バスの様にペリフェラルが繋がっているのではなく、マルチプレクサで入力を切り替える構造になっています。PRS chの左側(ペリフェラルからの出力)をReflex Producer、右側(ペリフェラルへの入力)をReflex Consumerと言っています。 PRS chは複数あり、その数はピン数に関係なく、シリーズごとに決まっているということで、Zero,Happy Geckoシリーズの4chからLeopard,Giant,Wonder Geckoシリーズの12chとなっています。

Article header prsoverview 300x312  2

 

 PRSはソフトウェアで制御するためレジスタが割り当てられており、Producer、Consumerのペリフェラル選択、各エッジ検出方法などを用途に合わせ設定することができます。
 より詳細な情報はアプリケーション・ノート (AN0025)に記載されており、アプリケーション・ノートの記載に沿ったサンプル・プログラムも提供されています。
 AN0025以外にも以下のアプリケーション・ノートでPRSを活用していますのでソフトウェア設計時の参考にしてください。
 - AN0012_efm32_gpio
 - AN0021_efm32_adc
 - AN0022_efm32_dac
 - AN0064_efm32_idac

山さんが熱く語っていたポイント

 山さんの説明でPRSの仕組みや動作、設定方法は分かってきました。が、ここで一つ、山さんから質問が投げかけられました。「PRSはCPUの停止状態で動作させることが前提です。ではどうやってPRSの挙動をデバックするのでしょうか?」今まで説明してきた時と顔つきが変わり、嬉しそうに質問してきます。
 確かに山さんの指摘の通りです。CPUは停止状態で動作させるのでデバック方法が分かりません。

Article header prs挙動観測 800x520  1

どうやら、PRSチャネルのうちシリーズを問わずch0~3はGPIOへ出力することができるということです。
下の図は山さんが説明に使った資料です、この様にConfigurator を使いソースを生成すればGPIOに出力させる設定が簡単にできます。PRSのデバック方法でお困りの方、是非、試してみてください。

Article header prs gpio 800x571  1

ついに、山さんの秘密道具登場

Article header  400x263  1

 PRS をGPIOに出力する様、ソフトウェアを書換えたところで登場したのが冒頭に書いた謎の黒いケース。この装置と専用のソフトウェアを動作させたところで、山さんが突然「ほらっ、ほら、正弦波入力するとGPIOから出力されているのが分かりますか?デバッカ上ではブレークしているのでCPUは停止状態ですよ!」と、興奮気味。写真では分かりにくいのですが、PCの画面、右に出力する正弦波、左にGPIOからの入力波形が表示されていて、CPU停止状態でもPRSの挙動を観察するため用意してくれていたのでした。

PRSの考えられた機能の凄さは分かりましたが、今日も山さんのツボにはまるポイントは分かりませんでした。

PRSについては、動画を作成しましたのでご覧ください。

1分でわかる!「EFM32 PRS(Peripheral Reflex System)」 -YouTube