追記 後発のGPMシリーズが発表された。上位互換になっていて、DMA,I2Cなどが追加されている。 https://www.microchip.com/design-centers/32-bit/architecture/pic32mm-family
PIC32MM0064GPL028を入手してみた。 32ビットシリーズとしては、アナログが強化され、独立した周辺モジュールが多数実装されていて、低消費電力設計になっている。
ラインナップが省ピン構成のみなのと、低価格なところはとっつきやすくて良さそう。
(エラッタリストも少なめ)
ROM/RAMの容量が控えめだが、CPUコアはmicroAptiv M14k UCコア(FPUなし)を搭載し、命令セットがmicroMIPSになった。 一応メモリ消費は抑えられている模様。
M14kコアなので、製造プロセスはMZと同じなのかな・・・?
足回りはアナログが強化された8ビットシリーズに似ている。 モーター制御向けの波形生成回路、プログラマブルロジックセル(CLC)や、12ビットADCが内蔵された。
その他、FlashがECC対応だったり、個別にUDID(ユニークデバイスID)を持っていたりと、スマート機器や産業向けの機能が盛り込まれている。
個人的に、HLVDというプログラマブルな電圧検出モジュールが気になっている。 18Fシリーズなどから搭載されていた機能で、バッテリの等の非安定化電圧のスレッショルド検知にADCを使わずに済む様子。
早速、SSOP28なものをサンプル購入したので、下駄基板を設計してelecrowに発注した。
プロトタイプ用なので、最小限の電源まわりの実装と、水晶発振子のパターンを実装した。
基板はきれいに仕上がったけれど、MCLR端子を外に引き出し忘れるという重大な設計ミスが発覚。 仕事疲れでMPが減っているときに趣味設計に走る場合、根本設計のポカミスに注意が必要だ((泣)。
とはいえ小規模試作にしか使わないので、UEWを一本延ばす必要が生じるだけではある・・・。
早速MPLAB Code Configurator(MCC)でピン設定を行い、レジスタをセットしてみた。
Lチカしようとおもい、うっかり、8ビット版での癖で__delay_ms()を呼び出すコードを書いてコンパイラに怒られてしまった。 PIC32ではコアタイマーを利用して実装する必要がある。 これもMCCで設定して関数を生成しておく。
INTOSCを8MHzで動作させ、GPIOをH/Lしてるときの平均消費電流は3mAほどだった。
追記: 最初気が付かなかったが、PIC32MMでは周辺機能にI2Cが無い。I2C接続の機器をつなごうとする場合は気を付ける必要がありそうだ。 一応、32MMのリソース一覧の中にはBitbangのためのコードが公開されている。
http://www.microchip.com/wwwproducts/en/PIC32MM0064GPL028 "Code Examples"
また、MCCで生成する周辺モジュールのコードは初期化が抜けてたりするので油断出来ない。
最近はお仕事でもμAレベルの回路を実装する機会がでてきて、中古で校正済み34401Aを入手して、電流値デバッグをしている。 省エネトレンドの、高クロックでタスクを短時間に終わらせる、みたいな設計思想を試行錯誤していきたい。
PIC32MM0064GPL028を入手してみた。 32ビットシリーズとしては、アナログが強化され、独立した周辺モジュールが多数実装されていて、低消費電力設計になっている。
ラインナップが省ピン構成のみなのと、低価格なところはとっつきやすくて良さそう。
(エラッタリストも少なめ)
ROM/RAMの容量が控えめだが、CPUコアはmicroAptiv M14k UCコア(FPUなし)を搭載し、命令セットがmicroMIPSになった。 一応メモリ消費は抑えられている模様。
M14kコアなので、製造プロセスはMZと同じなのかな・・・?
足回りはアナログが強化された8ビットシリーズに似ている。 モーター制御向けの波形生成回路、プログラマブルロジックセル(CLC)や、12ビットADCが内蔵された。
個人的に、HLVDというプログラマブルな電圧検出モジュールが気になっている。 18Fシリーズなどから搭載されていた機能で、バッテリの等の非安定化電圧のスレッショルド検知にADCを使わずに済む様子。
早速、SSOP28なものをサンプル購入したので、下駄基板を設計してelecrowに発注した。
プロトタイプ用なので、最小限の電源まわりの実装と、水晶発振子のパターンを実装した。
書き込み出来ないんだぜこれ |
とはいえ小規模試作にしか使わないので、UEWを一本延ばす必要が生じるだけではある・・・。
早速MPLAB Code Configurator(MCC)でピン設定を行い、レジスタをセットしてみた。
Lチカしようとおもい、うっかり、8ビット版での癖で__delay_ms()を呼び出すコードを書いてコンパイラに怒られてしまった。 PIC32ではコアタイマーを利用して実装する必要がある。 これもMCCで設定して関数を生成しておく。
INTOSCを8MHzで動作させ、GPIOをH/Lしてるときの平均消費電流は3mAほどだった。
追記: 最初気が付かなかったが、PIC32MMでは周辺機能にI2Cが無い。I2C接続の機器をつなごうとする場合は気を付ける必要がありそうだ。 一応、32MMのリソース一覧の中にはBitbangのためのコードが公開されている。
http://www.microchip.com/wwwproducts/en/PIC32MM0064GPL028 "Code Examples"
また、MCCで生成する周辺モジュールのコードは初期化が抜けてたりするので油断出来ない。
最近はお仕事でもμAレベルの回路を実装する機会がでてきて、中古で校正済み34401Aを入手して、電流値デバッグをしている。 省エネトレンドの、高クロックでタスクを短時間に終わらせる、みたいな設計思想を試行錯誤していきたい。