従来のPICは食わず嫌いだったのだけど、MIPSと聞いてつい。

 秋月電子で普通のDIPパッケージで32bitMIPSアーキのマイコンが出た。190円〜220円。このうちフラッシュ32KB/RAM8KBでUSB付きのPIC32MX220F032Bを使ってみた。
PIC32MX220データシート
開発環境はPICkit3+MPLABXを使用した。PICkit2はPIC32に対応していないらしい。MPLABXはWindows/Linux/MacOSXに対応している。必要なのはXCコンパイラとMPLABX IDEのふたつ。これらをインストールする。

MPLABX

 PIC32を使用するには、[File][New Project...]からSamples/Embeded/PIC32 templateを選択する。
 次に作成したプロジェクトを選択した状態で[Files][Project Propaties]を開く。Configuration画面を以下の様に設定する。
Device:PIC32MX220F032Bを選択
HardwareTool:PICkit3以下に出ているシリアルナンバー(SN:BURxxxxxxxxx)を選択
Compiler Toolchain: PIC32用のCコンパイラが表示されていることを確認。

※MacOSX用でPICkit3が認識されていなかったのではまった。再インストールしたら認識した。Windows用は問題なし。

 では準備ができたので実験してみる。たけおかさんのを参考に(というよりまんまブレッドボードにのっけただけ)組み立てた。

PIC32MX220 (200円のMIPS CPU)を使う:たけおか ぼちぼち日記

配線はこんな感じ。
PIC32_01

電源供給はUSBシリアル変換モジュールAE-UM232Rからもらうことにした。PICkit3からの給電はしない(MPLABXのデフォルトでは給電なし)。
サンプルプログラムもたけおかさんのをそのままmain.cにコピペして使用。スミマセン。

pic32_02

シリアル通信を確認するにはFT232のドライバをインストールする必要がある。
Virtual COM Port Driver

MacOSX上では適当な端末ソフトが見つからなかったので、Arduino IDEのシリアルモニタを使用した。

 で、チカチカ成功。色々いじって点滅速度を変えたりシリアルに出力する文字変えたりして遊んでみた。


初期化の所で気になったのは以下。
SYSTEMConfigPerformance( SYSCLK );

これは動作周波数を引数として与えると、キャッシュ(実際はフラッシュROMのリード専用バッファに近い)の有効化やディレイの調整をまとめてやってくれるらしいのだが、PIC32MX220シリーズでは上限40MHzなのに80000000が指定されていた。80MHz動作はPIC32MX440シリーズのはす?この箇所を40000000に変更して確認したが、Lチカの周期は変わらなかった。どうやらPIC32MX220シリーズで40MHz以上の指定をしても上限40MHzになるみたいだ。なおシリアルの速度は変化しなかった。

 作例あり&ブレッドボードなので一晩でできました。みんなもやってみよう!

※LEDを2個同時に点灯させると若干暗くなる。I/Oはピンあたり15mA(シンク/ソース共)。


☆部品表

・PIC32マイコン
□PIC32MX220F032B

・秋月電子 USBシリアル変換モジュール
□AE-UM232R

・抵抗 1/8W
□10ohm
□330ohm x2
□10Kohm

・セラミック・コンデンサ
□0.1uF x2

・電解コンデンサ
□10uF 10V

・LED
□赤/緑/黄など適当に x2
(白/青はVFが3.3Vより上かもしれないので避ける)

□ブレッドボード
□ブレッドボード用配線材

□miniB USBケーブル