忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2025/05/22

PIC24FJ64GC010ファミリ

昨年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シリーズにこのアナログ機能が搭載される事を望みます…。

PR

2014/01/11 PIC24FJ Trackback() Comment(0)

プロフィール
 
HN:
ぴくお
性別:
非公開
 
 
カテゴリー
 
 
 
最新記事
 
(10/03)
(09/05)
(08/23)
(08/17)
(08/16)
 
 
RSS
 
 
 
リンク
 
 
 
免責事項
当サイトに掲載の回路図やプログラム等は動作する事を期待して掲載しておりますが、その動作の保証、性能の保証は致しません。 また掲載されているソフトウェアの使用により生じたいかなる損害に関しまして作者は一切責任を負いません。