You are here

実験中:いわゆるArduino互換機

MicrochipのUSBインターフェース付きチップのPIC18F14K50をFTDIのFT232RLの代わりに利用したArduino互換機を作ってみました。SSOPパッケージのFT232RLのハンダ付けは、私にとっては基本的に避けて通りたい悪夢のような作業ですが、DIPパッケージが利用できるPIC18F14K50は、気軽にハンダ付けができてUSB器機を心安らかに試作できるというところがみそでしょうか。

PIC18F14K50をUSBチップに!

ベースにはAVR-DEV-AM328Aを利用しました。

PIC18F14K50は、バイパスコンデンサを含め4個のコンデンサと、1つの水晶を取り付ければ、USBインターフェースを持ったMCUとして動きます。
AVR-DEV-AM328AのボードのD-SUBコネクタのピンの穴とADM232Aの外付けコンデンサの取り付け穴の配置が、USBコネクタのピンの配線に思いのほか適合していたため、試作機の仕上がりは写真のようなそれなりの形状となりました。

PIC18F14K50のプログラムは、MicrochipのUSBフレームワークのソフトウェアパッケージの中の、CDCエミュレーションデモのプログラムを利用しました。

ボードとPIC18F14K50のファームができたので、それらをとりまとめArduino互換機を完成させ、ルンルン気分でスケッチをアップロードしようとしたのですが、うーん。。。動きません。焦ってしまいました。

オートリセット機能が動かず、AVRとIDEがハンドシェイクに失敗して、プログラムのアップロードができない様です。調べてみると、CDCエミュレータの実装で、オートリセットに利用するDTRを制御するコードがそれなりに書かれているのですが、それをちゃんと稼働させるための#defineがコメントアウトされていたり、ポートの初期化が書かれていないなどで、DTRが機能していないことが原因でした。

このへんの問題を数行修正してコンパイルし直すと。。。。オートリセットも効いて、ばっちりスケッチをアップロードできました。

めでたしめでたし。

開発ソフト: 
MCUチップ: