PIC32MX220 F032BのUSBを動かす | たけおか ぼちぼち日記

たけおか ぼちぼち日記

思いついたらメモ

PIC32MX220F032BのUSBを動かす。

ここでは、PIC32MX220F032Bを、USBデバイスにする。
電源は、まだ、USBから取っていないが、一応、PIC32MX220F032BをUSB CDCデバイス(シリアル・エミュレーション)にできた。
210円のICなのに、MIPSコア 1.5Mipsの速度で、単独で USB 機器になるとは、えらいコストパフォーマンスだ。
$たけおか ぼちぼち日記-PIC32MX220 USB$たけおか ぼちぼち日記-PIC32MX220F032B USB Schematic$たけおか ぼちぼち日記-PIC32mx220 board, power from USB Bus
発振回路は、外部クリスタル(8MHz)にする。USBのクロックは安定していないと、面倒が起こる。
(以前は、PIC32内臓発振回路を使用していた)

Windowsでは、USBデバイスとして、infファイルを読ませて、うまく認識する。
COMポート・デバイスとして認識される。

しかし、残念ながら、Linuxではうまく認識されない。
ずっと、Linuxだけで試し、悩んでかなりの時間を無駄にした。
割とFTDのように認識されるが、一部、動作不良なのであった。

MicrochipのUSBスタックのソースは再配布してはいけない様なので、自分で触ったところを公開。
take-pic32-usbdev-cdc.tgz.120807B をゲット

(2012/AUG/09追記: Cコンパイラは、mplab c32 Ver.2.02を使用する)

まず、Microchipの
ここら辺から
microchip-application-libraries-v2012-07-18-linux-installer.run
をインストールする。
それがインストールされたディレクトリの、トップ辺りの、USB/ディレクトリが存在するディレクトリで
take-pic32-usbdev-cdc.tgz.120807B を展開する。
あとは、MPLABXでプロジェクトとしてオープンする。
ひょっとして、他のアーキテクチャのヘッダファイルが必要であれば、
USB/Device - CDC - Serial Emulator/ からコピーする。


コンパイルして、PIC32MX220に焼き、起動すると、最初はRB7のLEDが点灯。
USB CDC serialデバイスとして、ホスト(PC)と接続されると、RB7とRB8のLEDが点滅。
ホストPCでは、TeraTermででも対話する。ボーレートは適当で良し。

PIC32のシリアル(私の回路では、FT232RL経由)から文字を入力すると、ホスト(PC)にそのまま文字が送られる。
ホストPCのTeraTermで文字を入力すると、それがPIC32のシリアルから出力される。
(PIC32のシリアル・ラインは 115200bps,8bit, no parity )

USB CDCの接続のネゴのときに、ハンドシェイク関係の情報交換でエラーが出ている気がするが、
まずは使えるので、夏休みの工作に役立てば。

--
2013/AUG/31 追記

5V から 3.3V を作る電源IC が、BA33DD0T では、ドロップが多すぎた。
LM2940 に替えて、調子良くなった。
LM2940とかTA48033S のいわゆる「低ドロップ型」を使用して吉。
(BA33 も自称 低ドロップだったのだが、他者よりは、ドロップが多すぎ)
$たけおか ぼちぼち日記-回路図2013AUG14

--EOF