見出し画像

cartreaderをつくってみる ~その5:PIC編~

結構長いこのシリーズ。今回はスーパーファミコンの特殊チップSA-1を採用したカートリッジに対応するため、PICへプログラムを書き込んでいく。

cartreaderに必要なPICは、PIC12F629というもの。

画像1

↑光ってて見えにくいけど、これがかなり小さいんす。なくさないようにね。

チップ左下には丸ポチがあると思うんだけど、これが1ピンの位置を示しているので、毎回この丸ポチの位置には気を付けてね。

1. PICKit3の準備

まずそもそもPICなんて使ったことないし、プログラムの書き方もわからなかったので、手探り状態ですよ、ええ。その3で示したものは全て購入済みであることを前提に話を進めるよ。

画像2

まず↑こちらがSOPパッケージのPICをDIPへ変換するアダプタ。

画像3

横から見るとこんな感じで、バネが入っているのわかるよね?まぁ実際に手に取ればすぐ仕組みはわかるんだけど、

画像4

↑こんな風に押せるわけ。

画像5

↑上から見たら一目瞭然。押すとピンを抑える金具のロックが外れるので、ロックを外した状態でPICを載せる。

画像6

載せる向きには注意してね。PICの丸ポチが左下に位置しているよね。

画像7

↑続いてこちら、PICKit3の互換品というか偽物。左から順に、アダプタボード、PICKit3本体、USBケーブル。まずはアダプタボードの説明をしよう。

画像8

↑のように、レバーを上げるとPICを載せる金具が開く。この操作はまず覚えておいてね。

画像9

そして↑これが裏面。よーく見るとわかるんだけど、

画像10

↑ここに各PICごとに、どうジャンパすれば良いのかが書いてある。今回のPIC12F629はDIP8パッケージ(にアダプタで変換している)なので、J1ジャンパは2の位置に、J2~J7ジャンパは全て2-3の位置にセットすれば良いわけよ。

ジャンパっていうのは、表面の、

画像11

これね。J1~J7の7個あるけど、それをちゃんと指定されたとおりにセットしないといけない。

画像12

↑のように、ジャンパはピンセットなどで位置を付け替えてね。

画像13

↑再度裏面に戻ると、DIP8のPICをどこに置けば良いかも書いてある。これを表にひっくり返せば、置く場所わかるよね。

画像14

結論から言うと↑のように、⑪~⑭の穴にPICのピンを入れればOK!

画像15

↑これが最終的な接続の状態。何度も言うように、PICの丸ポチの位置は間違えないように。左上に位置しているよ。そしてPICの足はDIP化アダプタを介して、1番目のピンが⑪番目の穴に入っているよ。

2. MPLAB X IDE・IPEをインストール

それではPIC書き込みのためのソフト、MPLAB X IDEをインストールする。

https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide

上記リンクからファイルをダウンロードして、そのままインストール。実際に使うソフトは、MPLAB X IDEのパッケージの一つ、MPLAB X IPEの方だ。cartreader目当てでインストールしたレベルならば、IDEはコーディングとかする方、IPEはただ書き込みだけする方という理解でOKだと思う。

ちなみにおじさんが使っているのはv5.50である。

3. snescicをダウンロード

Wikiに書いてあるとおり、snescicをダウンロードし、解凍しておく。実際に書き込むのは、cicフォルダの中の、snescic-lock-resync.hexってファイルなので覚えておくように。

4. MPLAB X IPEで書き込み

はい!これ以降は、非常にミスしやすい上に、ミスしてしまうとPICがお釈迦になってしまう可能性も高いので、よく読んで、一つ一つの工程をしっかり確認しておくように。何かおかしなことがあったら、先に進まずやり直そう。

まず、初期状態のMPLAB X IPEは、基本的な操作しかできないよう制限されているので、

画像20

↑のように「Settings」から「Advanced Mode」を選ぼう。すると、

画像17

↑こんなパスワード入力画面が出るので、英語で書いてあるとおり、「microchip」と入力してLog inする。パスワード変えたい人は変えてもいいよ。

Advancedモードに入ると、UIが少し変わる。

画像20

↑左側に「Operate」とか「Power」とかの項目が増えたはず。

画像20

次に、↑のように「Family」には「Mid-Range 8-bit MCUs」を選んで、「Device」に「PIC12F629」を選び、「Apply」ボタンを押す。

ここまで終わったら、PCにPICKit3をUSB接続しよう!USBハブとか経由せず、直接PCに繋ぐこと!そして他の不要なUSBデバイスはできるだけ外しておくこと!ここ超重要。


PCがPICKit3を認識したら、左の「Power」を選んで、

画像25

↑のように「Power target circuit from PICkit3」にチェックを入れ、「Voltage Level」を「5」ではなく「4.875」に変更する。

その3でも書いたけど、パチモンPICKit3は5Vで駆動しないことが多いんです。おじさんの環境だと「4.875」で動いたけど、もしこれで動かなかったら後々もう少し値を下げることになるからね。この設定画面のこと覚えておいてね。

「Operate」画面に戻り、

画像21

「Tool」にPICKit3が選択されているのを確認する(環境によってはこの名前は変わるかも)。そして「Connect」ボタンを押す。

画像22

↑こんな注意文言が出るかもしれないけど、「OK」して大丈夫。

画像23

↑こんな感じで、Outputが表示されたらOK!

画像24

もし↑こんなエラーが出たら、「Power」画面で「4.75」を、それでもダメだったら「4.625」を…といった具合に電圧を下げてみよう。赤文字エラーが一切出なくなるまで、次の工程には進まないほうが良い。

問題なく接続できたら、

画像25

書き込むファイルを選ぶため、上記の「Browse」ボタンを押し、

画像29

Wikiに書いてあるとおり、snescic-lock-resync.hexを開く。

画像27

↑こんな感じで、Hexファイルの読込が完了したら、

画像28

「Program」ボタンを押し、書き込みスタート!

画像29

↑のようなOutputが出たら、書き込みが無事完了。お疲れさまでした。


終わりに

めちゃくちゃ簡単に書いているけど、PICの書き込みは本当にクセがある。PIC12F629はキャリブレーションビットというものを持っているのだが、読込や書込に失敗してしまうとそれが消えてしまうらしい。

PICKit3のパチモンは、電圧のせいでそもそも初回の読込の時点でPICを壊してしまうこともあるよう。ってことでPIC読み込む前の、電圧設定をしっかり行いたい。

そんなこと言いつつ、おじさんは2個ぐらいPICをお釈迦にしちゃったのよねん。しかも直し方もわからない。まーそんなもんだろう。

次は、いよいよ組立に入るのであーる!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?