MacでPIC開発にトライ

先の記事では Windows での PIC 開発をしましたが、今回は Mac でやってみました。なぜ最初から Mac でやらないかというと、ライターのソフトが上手く動かなかったからです。ですが最近たまたま、うまく動かす方法がわかった(無理矢理ではない)のでご紹介します。この方法はググっても出てこなかったので当ブログが初出になるのかな?

ただ注意点として、先の記事で用いた PIC は書き込みソフトが非対応ということです。ですので秋月で PIC18F2420 をテキトーに買い直しました。

電子部品,通販,販売,半導体,IC,マイコン,電子工作PICマイコン PIC18F2420−I/SP秋月電子通商 電子部品の通販・販売

参考にしたサイト

1つ目をメインに参考にさせていただきました。感謝です。2つ目は1つ目のサイトに使用されている FT232RX のピン配置を確認するために見ながらちまちま回路を作っていました。

回路

というわけで自分用に回路を EAGLE で組んでみました。こちらは FT232RL のチップを生で使うものなのですが、秋月のモジュールを使う時は FT232RL の左側は無視、電源は VIO 端子としてください。MAX662 は秋月で購入できます。ここで D2 はツェナーダイオードで、9V のものを使います。これは書き込み時の VPP 電圧が 12V ではなく 9V であるデバイス用に新しく取り付けたものです。ジャンパをショートさせると 9V、オープンで 12.6V になります。

追記: 確認用として VPP 側に付けた LED ですが、これは取り付けないでください。分圧の関係でせっかく昇圧したものが下がってしまいます。

なおこちらをプリント基板にしてみました。まだ発注していないので現物はないですが、良い感じになりそう。

現在はブレッドボード上に組んで使用しています↓

書き込みソフト

PicProg を用います。 Linux 版をダウンロードして適当に make でもしておいてください。途中リンカから「deprecated だぞ!!!」って怒られると思いますが、まあ無視で問題ないようです。多分。出来上がった picprog はパスの通った場所に置くと便利だと思います。然しながら、これだけでは準備は不十分です。以下を読み進めてください。

Mac 側の設定

ここが大きなポイントです。まず Mac には Apple 製の FTDI デバイス用ドライバが乗っかってると思いますが、こちらでは動きません。ご注意を。ちゃんと動作させるには FTDI 社謹製のドライバが必要になります。

まずご自分の Mac でどのドライバが動いているかを確認します。以下のコマンドを打ち込んでください。

$ kextstat | grep FTDI

おそらく com.FTDI.driver.FTDIUSBSerialDrivercom.apple.driver.AppleUSBFTDI のどちらかが出ていると思います。前者が出ている方はこのセクションはスルーでOKです。後者の人はこちらから Mac の 64bit 版を入れてください。入れたら再接続なり再起動なりすればいいと思います。そしたら上のコマンドをもう一回打ってみて、com.FTDI.driver.FTDIUSBSerialDriver が表示されたらOKです。2つとも出ている人は

$ sudo kextunload -b com.apple.driver.AppleUSBFTDI

とすれば Apple の方を無効化出来ます。

MPLAB X 側の設定

こちらは各プロジェクトごとに設定が必要になってきます。picprog では HEX ファイルの拡張アドレス設定で0番地を省略することは出来ない仕様になっているようで、デフォルト設定のままで読ませるとエラーを吐いて書き込みスタートしてくれません。ですのでこちら側から直します。まずプロジェクトを作成、左ペインのプロジェクトを右クリックして Properties を選んでください。

設定画面が出るので XC8 linker の Additional options からチェックボックスをチェックします。

これでビルドをしてあげると、出来上がった HEX ファイルの1行目に以下の行が追加されて、picprog に正常に認識させることが出来るようになります。

:020000040000FA

書き込みだ

適切な配線をして以下のコマンドを打てば書き込みができます。結構通信速度が早いようなので、配線が長いと成功率は下がります。

$ picprog -p /dev/tty.usbserial-AH03I8LZ --erase --burn --input ~/MPLABXProjects/LEDChika.X/dist/default/production/LEDChika.X.production.hex

書き込みが終わると自動的にプログラムが走り出します。プログラムは以下のものを使いました。

いやぁ〜〜、長かった!半年以上前から Linux で動く PIC ライタの wiki ページは見つけてはいたんですが、どうもうまく動かなくて。しばらく放置していたら、偶然にもドライバ周りが原因じゃね?となったのでした。
やはり Mac で何でも動かしたいという強い気持ちがあったので、今回の発見はすごく嬉しかったです。まあマイクロマウスにはこれっぽっちも関係ありませんがね。PICKit 3 はあんなの買ってやるもんですか。高すぎるよ!
PIC の評価は MSSP(SPI, I2C)以外は実は全て終わっているのですが、まったり触れていきたいと思います。

ところでこのライタは LVP に対応していないんですかね?多分対応してるんじゃないかと思うので、オシロで波形を見てみたいと思います。
↑なんか対応してないっぽいです。よくわからないですが、書き込みが正常に終了しません。