Sim's blog

電子工作はじめてみました

PIC24USBを作ってみました。

2008-12-08 22:19:36 | その他のマイコン
すんさんの掲示板でオプティマイズさんから発売されているPIC24USB基板の話を知りました。土曜日ITプラザで買ってきたのですが、はんだづけしてみました。

部品一式

PICは最初から付いています。つけるのはチップ部品ばっかりです。一応完成品も販売されています。

表です。


裏です。

作るコツは部品をなくさないことと、つける場所を間違えないことです。

いいなと思ったところは、
- 1980円と安い
- ROM256k RAM16kとやたら広い
- セルフ書き込みなので、ライターがいらない
- 3.3V動作だけど5.5V耐圧になっている。逆にオープンドレイン出力可
- USBがそのまま使える?
- コンパクト
- サイトの説明が丁寧。PICはろくに触ったことがなかったけど、そのとおりやったらLEDチカチカまではすぐできました。

文句をつけるとすると、ブレッドボードにそのままは刺さらないというくらいでしょうか。

PICというと、アセンブラというイメージでしたが、C言語も普通に使えるみたいです。

C言語ではじめる PIC24F活用ガイドブック」も以前買ったまま積んであったものがあります。

2x13のピンソケットは秋月で売っています(C-00084)

へたくそのくせしてチップのはんだづけに異様に執念を燃やすのは、我ながら変です。1608はしたことがあったのですが、そのせいか2016は大きく感じました。中島敦の名人伝のように蚤を見る特訓を3年間しないといけないかもしれません。

トラ技PICの改造

2008-12-08 02:20:15 | FPGA
DWM付録FPGA基板でトラ技PICROMの推論の続きになります。

前回は、トラ技12月号のPIC12F508をDWM付録のSpartan-3E基板に載せました。
ROMは組み合わせ回路でしたが、せっかくSpartan-3Eに載せるのでブロックRAMにしたいものです。一応成功したのでご報告です。

トラ技12月号のRTLは、2段のパイプラインになっています。命令フェッチと解釈実行の2つです。ジャンプ命令やサブルーチンコールの直後の命令は実行しないような制御を行っています(p.111参照)。



制御はcmdClrという信号です。この信号があるクロックのときにHだと次のクロックの命令はNOPとして扱われます。図だと命令2がジャンプ命令なので、次の命令3は実行されず、さらに次のクロックで飛び先の命令10が実行されます。

どんな回路になっているかを簡単な図にしてみました。

現在のcmdをデコードした結果としてのcmdClrによって次のクロックで実行される命令がメモリから読み出したものになるかNOPになるかが決まります。

Spartan-3EのブロックRAMはFF出力なので、アドレスを出した次のクロックにデータが読めます。上の図のままだと、cmdもFF出力なので1命令1クロックでなく2クロックになってしまいます。

そこで、以下のように回路を変えてみました。

ブロックRAMにできるようにメモリの出力にFFを移動しました。1命令1クロック動作できるように、cmdは組み合わせ回路の出力にしました。つじつまを合わせるためにcmdClrをFF出力にすることで、1クロック遅れにしました。

タイミングチャートは元のものと似ていますがcmdClrが1クロック遅れになっていて、現在実行している命令をNOPにするのかどうかになっています。


変更したRTLは、かなりぐちゃぐちゃになっているので載せません。

合成結果は、回路規模 260slice (前回295slice)、動作周波数 64.291MHz (前回59.291MHz)になりました。ブロックRAMを使っているので、プログラムサイズが大きくなってもslice数は増えません。DWM付録基板のSpartan-3E xc3s250eにはブロックRAMが12個載っているので、最大24kバイトまでROMを増やせることになります。