[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
昨年Microchipから発売が開始されたPIC24F64GC010ファミリ。
このファミリは今後16bitシリーズの主流になるのではと思う
新機能が多く搭載されています。
■パイプライン型ADコンバータ
・12bit、10Msps、最大50ch
■ΔΣ型ADコンバータ
・16bit、62.5ksps、差動2ch
■DAコンバータ
・10bit、1Msps、2ch
■オペアンプ
・GBW = 2.5MHz、SR = 1.2V/μs(SPDSEL = 1の時)、2ch
■コンパレータ
・反応時間 500ns~1.6usec[Typ.](SPDSEL = 1の時)、3ch
■内蔵リファレンス
・1.2V・2.048V・2.560V・3.072Vから選択、3ch
と、てんこ盛りです。
この中でやはり"使えるDAC"が内蔵されたのが嬉しい。
■DMAモジュール
さらに特筆すべき事はDMAモジュールでは無いでしょうか?
過去のDMAモジュールですと「限られた周辺モジュールの限られたレジスタ」と
RAMとの転送は可能でした。
しかしながら今回搭載されているDMAは全てのレジスタとRAMが相互に転送可能
の様です。→DMAコントローラデータシート
つまり配列同士の値コピーもCPUリソースを使わずに済みますし、
ADで取得した値をアウトプットコンペアのDutyレジスタに、
直接コピーという事も出来たりします(恐らく)
もちろんDACと組み合わせて使うのが一般的でしょうから、配列に波形データ
を格納していてTimerで定期的にDMA経由でDACに転送すればCPU
リソースが全く必要無くDDSが可能です。
■CTMUモジュール
もう一つがCTMUが12bit対応した事です。(これまでは10bit)
CTMUはタッチスイッチの検出に使うのが一般的ですが、測距アプリケーションにも使用できます。
立ち上がり信号から立ち上がり信号までの時間を計測する為には
一般的にインプットキャプチャを使用します。
しかしながらインプットキャプチャはCPUクロックを元にしますので
dsPIC33Eシリーズの70MHzでも14nsecしか分解能が有りません。
CTMUを使うとこの分解能が上がります。
①コンデンサ放電
②1回目の立ち上がり(下がり)信号で充電開始
③1回目の立ち上がり(下がり)信号で充電停止
④コンデンサ電圧計測
というステップを踏むと
t:充電時間[sec]
c:コンデンサ容量[F]
V:充電終了電圧[V]
I:充電電流[A]
t[sec] = c[F] * V[V]/I[A]
という式が成り立ちます。
CTMUピンの端子容量が15pF、充電電流を550uA(×1000レンジ)
ADのリファレンスを3.3Vとすると0Vから3.3Vまで充電するのに90nsecかかります。
これを10bitのADで変換すると分解能は88psecになりますが、
12bitのADで変換すると分解能は22psecになります。(理論上)
恐らくここまでの分解能は出ないと思いますが、この様に分解能が
インプットキャプチャよりも上がり、高速のパルス信号間の時間計測に有効です。
ひとつ残念なのがPIC24FシリーズですのでCPUが16MIPSしか無い点です。
これだけ高機能なアナログを有して信号処理に最適なのにCPUが貧弱です。
dsPIC33Eシリーズにこのアナログ機能が搭載される事を望みます…。