Chipkit DP32
ArduinoAPI互換(0023)で、PIC32MXをベースとするChipkitシリーズのラインナップが増え、新たにDIPタイプが加わった。
中身はPIC32MX250F128Bで、USB内蔵タイプとなる。DIPながらRAM32kB/ROM128kB、USB対応なので若干I/Oは少なめ。
ブートローダー書き込み済みのDIP単体の販売もあるようだ。
ブレッドボードで周辺回路をつくる方法も解説ページが用意されていて、DIY寄りの情報がまとめられている。http://chipkit.net/diy-chipkit-board/
肝心のボードの提供はもうすこし先みたいだけれど、Digirentの製品ページ下部にブートローダーを含んだプロジェクトファイルが提供されている。 これを手元にあった素のPIC32MX250F128Bに焼いて、一足先に試してみた。
写真のボードは、Pinguinoを試した時に作ったもの。その時はUSB認識がうまく行かず、以来積み基板の仲間入りをしていた。
ハードウェア的には、(PIC32MXの周辺回路)、8MHzの水晶発振子、USBコネクタ、3.3Vのレギュレータ、(リセットボタン)とプログラムボタンが最低限必要。
手順
MPIDEは下記より最新バージョンをダウンロードする。
hexはPICkit3をつかい、MPLAB Xで書き込む。 プロジェクトウィザードでは、既存のバイナリを焼くためのプロジェクト新規作成する。
プログラムの書き込みは、システムのリセットボタンとプログラムボタンの2つを使う。 リセット押し→プログラム押し→リセット離し→プログラム離し、の順で押すとブートローダーが書き込み待機に入るので、IDEからスケッチを書き込む。
プログラムボタンを押しながらUSB接続することで、ブートローダーモードに入ることができるので、リセットボタンについては省くこともできる、プロトタイピング用としてはやや面倒かもしれないけども。
プログラムボタンを押しながらUSB接続することで、ブートローダーモードに入ることができるので、リセットボタンについては省くこともできる、プロトタイピング用としてはやや面倒かもしれないけども。
ということでLチカまで動作確認が出来た。
この時の石単体の消費電流は25mA程度(@40MHz)。
この時の石単体の消費電流は25mA程度(@40MHz)。
Pinmap
ペリフェラル
UARTは、USB CDCの他、HWで2つ存在する。 片方はSPIとの排他利用となる。
USB CDCでプログラムとデバッグができ、更にハードウェアで2chあるので意外と便利そうだ。
Serialのポート定義は以下のようになっている。
Serial USB CDC (USBシリアル)
Serial0 ハードウェアシリアル1
Serial1 ハードウェアシリアル2
Serial.begin()をスケッチ中で定義すると、USBのデータラインはUSBシリアルとして認識される。定義しなければ、USBポートが有効化されないので、GPIOとして使うこともできる。
I/Oは19本あるけれど、4つはクロックとUSB端子に持っていかれるため、実質15本。
足りなければバス接続のIOエキスパンダがおすすめだ。
自作基板で端子配置を共通にしてみた(FemtoCube)