SSブログ

PIC始めました.....道具編 [パソコン]

2016年4月15日の日記

とうとう長年の宿題だったPICを始めてしまいました。

いままで,鉄道模型のコントローラ(パワーパック)を作ったりしてきましたが,PWM式のものなど,いつもハード構成で,電子回路でやっています。実はPWM式のもPICを使うと簡単なんですよね~。信号や踏切の制御はもちろん,音を出したりするのにいつかPICを使いたいとは思っていました。

ただ,どうにも工作屋なため,マイコンに手を出すとそれこそ 何でもあり ,になってしまうのがいやで手を出してきませんでした。回路ではどうしてもできないことがソフト的にできてしまったりしますから。カメラなんか,最初はCdSを使って照度(露出)を指示するだけで,実際にシャッター速度や絞りを調整するのは人間の仕事だったのに,あっという間にマイコンが入り込んで何にも考えずにシャッター押すだけできれいな写真が撮れたりするのは当たり前になっちゃいました。笑顔にピントが合ったりとか,動く被写体を追いかけてピントが合うとか,昔じゃ考えられない機能を実現しています。でも,それでおもしろいかというと......マニュアルの方がいいや,と言う人は実際のところごく少数だと思いますが,昔ながらのカメラにこだわる人もいらっしゃるかと思います。

と言う次第で,私もPICには手を出してきませんでしたが,どうも仕事でやらざるを得ない状況になってしまい,いっちょやってやるか,ということで始めました。

ところが......。

やり始めるとわかるのですが,結構ハードルが高いんですね~.....。 

何より "道具" をそろえるのが大変なんです。

で,何が必要か,と言うと大きくは次の2つだと思います。

PICライター

開発環境(言語) 

PICはマイコンなので,当然,ソフトを開発するための言語と,内部のROMにソフトを書き込むためのライターが必要です。それに,ライターだけではだめで,ライティングソフトが必要ですし,ライターとPCとの接続をするためのケーブルなんかもそろえないといけません。大きくは▲の2つとは言ってもほかの細々とした小物をそろえてちゃんと書き込みができるようにするのは結構大変でした。

以下にご参考までに私がそろえた機材をご紹介します。

【PICライター】

マーカ(PIC版)基板2.jpg 

  "エレキジャック" Vol.2付録の基板で作ったPICデュアルライター

ライターは昔,CQ出版社が出していた "エレキジャック" という雑誌のVol.2に付録についていた基板を利用したものです。これにCR類やソケットなどをはんだづけして使います。2007年刊行なのでずいぶん前の雑誌です。いずれPICをやるから買っておこう,と思ったのですが,あれから10年近く経ってしまいました。そのうちに残念ながら "エレキジャック" も休刊になってしまいました。

本来なら秋月電子などで売っている,PICkit3などのちゃんとしたライターを買うべきなんでしょうけど,ライターは結構高く,3,000円から高いものだと2万円を超してしまいます。 そんな高いもの買えねぇ,ということで付録の基板から作っちゃいました。

 "エレキジャック" の記事はPICデュアルライタというもので,デュアルというのは書き込みソフトが2種類使える,と言う意味のようです。書き込みソフトはJDMライタと言うソフトと,Writer 509というソフトで,前者はRS-232C→USB変換ケーブルが使えないようなので,必然的に後者のソフトを使うこととなります。Writer509はオレンジ電子さんのWEBからダウンロードできます。使い方も書いてあります。

PICデュアルライターは市販されていないし, "エレキジャック" Vol.2のバックナンバーも入手できないようなので基板も入手できませんが,万能基板などで自作している人もいるようなので,自作してみてもよいかと思います。でんし研さんのホームページに自作記事が出ています。私も参考にさせていただきました。ありがとうございます。

マーカ(PIC版)基板1.jpg 3端子レギュレータを追加しました。 

電源は5Vのアダプタ仕様でしたが,ほかの電圧のも使えるよう,3端子レギュレータを追加してます。 なお,3端子レギュレータは出力に必ず数μF以上のコンデンサを追加してください。ないと発振することがあります。 

なお,特にライティングソフトはWriter509でなくとも,統合開発環境から直接COMポートの設定をして書き込めるので,特にライティングソフトを準備する必要はないと思います。

ライターとPCとの接続はRS-232Cのものが多いのもネックです。今どきパソコンにCOMポートなんかないっちゅう~の~!! 昔はどのPCにもついていましたけど,WindowsXPの頃までですね。

もし,直接パソコンのCOMポートに接続するときはRS-232Cのストレートケーブルを使ってください。クロスじゃありませんのでご注意ください。

と言う次第で,RS-232C→USB変換ケーブルを準備しないといけませんが,実はこれが結構厄介もの! 過去,何回も使いましたがうまくPCに接続できない場合も多いのです。専用のドライバもいりますしねぇ~。せっかくインストールできた,と思ったらポート番号が32とか表示されて,開発中のアプリケーションのRS-232CアクティブXコントロールが16までで使えなかったこともあります。なんでせいぜいRS-232CをUSBに変換するくらいでドライバがいるの? と思いますけど。こんなのOSが対応すべき問題ですよね~。

と思っていたらWindows7以降はドライバがOSに付属し,ドライバが今は不要なようです。よかった~~。

買ったのはBUFFALOのBSUSRC06シリーズで,Windows10にも対応しています。やはりドライバは不要で,何も考えずにUSBスロットに挿したらすぐに使えるようになりました。ホッ。

さっそく,PCに接続してデバイスマネージャを見てみますとちゃんと顔を出してきて,そのプロパティでCOMポートの通信設定をします。

device manager USB serial.jpg デバイスマネージャ画面 

PICデュアルライタの場合,

Tera term設定serial port.jpg COMポートの設定

でうまくいきました。

さて,今度はPICデュアルライタの中にあるPICマイコンにソフトを書き込みます。

PICライターはソケットに挿入したPICマイコンにソフトを書き込むために必要なものですが,書き込み時に高電圧を必要とするPICがあり,13V程度の電圧が必要です。USBの電源は+5Vなので,昇圧チョッパ回路を構成しないといけません。そのため,ライター内に16F648AというPICを搭載しており,これでパルスを発振させて13Vくらいに昇圧するようになっているのですが,そのためのソフト(ファームウェア)の書き込みが必要です。ファームウェア自体はCQ出版社のサポートページから入手できます。

ところが,ここから先,苦労しました~。 "エレキジャック" には簡単にできるように書いてあるのですが.....。ライター用のファームウェアファイルdual648.hexを転送するのにtelnetを使う,と書いてありますが,Windows7以降はもはや搭載されていません!!!!

まあ,こんなことは予想していたので慌てずネットで調べるとtera termが使えるとのこと。 窓の杜やVectorなどでダウンロードできます。そもそもtelnetぐらい付属していたからってそんなに損じゃないと思うんですけどね。これくらいWindowsに付属していてもよいと思います。実はUSB接続の機器だって,コネクタのすぐ後ろにUSB→RS-232Cの変換ICが入っていて,中身はRS-232Cという機械がほとんどです。この場合,telnetで通信や設定ができるのですが,これが今のパソコンじゃできなくなっています。

さて,デュアルライターの方ですが,正常にファームウェアの書き込みができて,RUNするとLEDが2回点灯しないといけないのですが,何度書き込みをやってもうまくいきません。基板のはんだづけが悪いのかと思ってチェックしても,どこ悪くなく,原因がわかりません。いろいろ通信設定のパラメータをいじってようやく書き込みができました。tera termにはtelnetにはなかった送信遅延という機能があります。これを使ってみたらうまくいきました。

ようやく書き込みができて,LEDも2回点灯するようになりました。ついでに,PICの書き込み電圧をテスターで測定してみると13Vくらい出ていますので,OKのようです。

【開発環境】 

さて,いよいよPICに書き込むための言語を選択します。

本来ならPICの開発元である米Microchip社の統合開発環境MPLAB X(IDE)を使うのが一番よいと思います。IDEってATAPIのインターフェースか? って思っちゃいますけど(古~っ!),そうじゃなくてIntegrated Development Environmentの略でIDEだそうです。それって,統合開発環境のまんまやないか~~っ!

といって,私は最初からこれを使うつもりはありませんでした。なにより基本がC言語なもんですから.....。

また,直接,機械語(マシン語)でコードを書く人もおられるようですが,そんなのぜ~ったい無理!!

私はパソコンとのつきあいも長く,それこそPC-8001の頃からパソコンいじってますので(古っ!),マシン語もちょっとわかりますが,そんなのでソフトを書く気はしません。アセンブラでソフト組める人は尊敬しちゃいます。

と言う次第でほとんどの人はPIC用にC言語を使う人が多いと思います。

ところがいるちゃんはこれですらもう無理!! 学生時分,カーニハン&リッチーの本で勉強したし(古~っ! そもそも本が扱っているコンピュータはPCじゃなくてDECのPDP11でした),会社に入った頃,いろいろQuick Cとか(懐かし~~)やっていたんですけどね....。

とゆ~次第でいるちゃんはやっぱりBASICです。パソコンの電源スイッチを押したら例の憎たらしいのマークがぱたぱたするんじゃなくて,真っ暗な画面に

NEC N-88 BASIC(86) version 2.0

OK

あ~んてパソコン画面に出ていた頃からのつきあいですから.......(^^;)。

あ,そういやこのBASICもその旗の会社が作ったんだった.......orz。 

もちろん,PICはマシン語しか受け付けないので,BASICとはいってもコンパイラでマシン語に変換する必要があります。Cでも同じですけどね。

PIC用のBASICというとPIC-BASICが有名で,価格も安く,日本でも秋月電子が扱っていましたが,もはや入手不可能。ほかにはMicro Engineering Labs社のPIC BASIC pro compiler(PBP)があるんですが,値段は200ドルもします。

せっかく,PIC-BASICが無料みたいなものだったのでフリーでいいものはないかと探しますと,英国のグループが出しているGreat Cow BASICが目にとまりました。完全フリーソフトで,GUIもなかなか使いやすそうです。ちゃんとしたオンラインヘルプやPDFもあるので何とかなりそうです。おまけに統合開発環境となっていて,ライター書き込みもできるようになっています。また,現在も開発中のようで,最新版は昨年末のものです。これなら安心です。それに,私がやりたいA/D変換やPWMの関数も用意されています。

Great cow basic1.jpg 

 何で牛なの~? GATEWAYコンピュータみたい(懐かし~)。 

まあ,しょせんBASICなので,コマンドリストがあれば何とかなっちゃいました。400ページもあるPDFのマニュアルも用意されていて,なかなかしっかりしています。実際,コンパイルしてPICに書き込んだらちゃんと動作しました。まあ,コンパイラなのでエラーが出ると一斉に全部のエラーがはき出されてゾッとするんですが,その点,エラーは1個ずつしか出ないインタプリタの方が心理的にはよいと思います........(^^;)。

使い方は簡単です。

ちゃんとブロックIF文やDOループの範囲をかっこで示してくれたり,マウスのスクロールボタンでスクロールもするし,日本語のコメントも使えるようなのでとても便利です。 

GUIの中にhexとあるボタンをクリックするとコンパイルしてhexファイルを作ってくれます。これをPICにライターで書き込めばOKです。

と言う次第で,実際にテスト用の基板を作ってPICを動作させてみたいと思います。次回はテスト編です。 


nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント