配置も決まってきたので、もう動かさないところは
どんどん固定していく。
実は、この段階で、かなりゲンナリしてる。
CPU周辺からSRAM、W5300、バスコネクタ辺りが、どう配置しても・・・・・どうにもならない。
W5300はLANコネクタ側(=アナログ系)の位置が決まってるのでこれ以上廻せない。
CPUは他のいろんなものの都合で、どうにも向きは変えられない。
というか、ピンが対辺に分散してる時点で諦めてるんだけど。
SRAMは、その2つの間で、どっちに廻しても都合が悪い。
この点はARMもそうだったが、BGAパッケージにすれば層に逃げられるからどんな配置でもいいのかもしれないけど
QFPにすると大変なことになってる。
アドレスバス、データバスが揃ってるのは、日本製だけだよ。逆にBGAはあまり作りたがらないみたいだけど。
この辺は昔から製造技術の差だって聞いてるから、いいかげんにしろよ 諦めるしかない。
とにかく、バス周りを押さえないとラッツが邪魔で見えない。
それさえ終わってしまえば
あとはブロックごとにこじんまりとまとめてQFPとの間をつないでいく。
そんな感じ。
大まかに回路図ができた段階でフットプリントを確認しつつ、配置を始めちゃいます。
今回は秋月の95mm x 72mmサイズに収めたい。
コンセプト的に、他の周辺機能ボードを作ったりするときにスタックできるように。
あとは、基板の値段。4層で10枚作って3万円ちょいを目指す。
配置はセオリーどうり。
まあ、いろいろ都合はあるが「左から右へ」流れるように配置。当然電源は左。出力は右。
FullSpecCardもそうだが、この配置が基本。
USBのシリアルは極小スペースに押し込む。はっきり言って、電源系めっちゃ細い(笑
バスのコネクタは他とスタッキングする都合上、共通になるよう配置。
電源コネクタの位置も実はFullSpecCardと同一。
MicroSD,USBホスト,LANコネクタは、どうにもならん。
この短辺側に並べるしかなくって。
DIP-SWほんとにそこかよ!?USBもそこなの!?って感じだけど
・・・諦めませい。
あとは、抵抗類は可能な限り端子に近く配置、
パスコンは容量によって電源ピン直近、多少離れてもいいもの、入り口にあればいいもの、それぞれ配置。
そこそこ納得のいく配置になったら、配線始めちゃいますかね~
とりあえずは、CPUを使うことが目的ね。
まずは型番の選定から。
当然(?)外部バスが使えるものを選ぶ。
問題がなければROMもRAMも最大容量のものを。
ということで、AVR32UC3A0512を選定。
そして、一通りの機能を載せてみる。
SRAM 512KByte(256K × 16bit接続)
MicroSDスロット(SPI接続)
シリアルポート(FT232RLによるUSB接続)
USBホスト用Mini-Bコネクタ
TCP/IPプロトコルスタック W5300
FlashROMは、内蔵に512KByteとMicroSDがあるから
無理に乗せなくてもいっか~って感じかな。
まあ、物理的に場所がなかったので断念。
シリアルは、今までに実績のある回路を持ってきて手直し。
MicroSDは今までのものにバススイッチを追加。これも実験。
USBホストもARM基板ではまだ動作確認まで行かなかったけど
とりあえず今回も同じ様にしておこう。
AVR32のCORE用電源は内蔵のものを使うし
W5300も内蔵のレギュレータがあるのでそれを使う。
なので、メインは3.3Vの電源があればそれでいい。
この辺も、ARMでもXC2S100でもつかった定番の回路を手直しして使う。
外部バスも仕様が決まってるし
なーんだ。
新しいのって、W5300ぐらい?
回路図といっても、じつはリファレンスに倣って書くだけ。
まあ、パルストランスとRJ-45が一緒になったやつを使うから
その辺を注意してやれば、あとはパスコンの量を調整するぐらい。
最近の電源にウルサイデバイスって、回路図よりも部品の配置のほうが大事なんだよね。
電圧低いから引き回せないし。
そんなこんなで
回路図完成前から、基板の部品配置は決めつつあるんですけどね。
ATMELのAVR32UC3シリーズを使う、と決めたのと同時期。
8月あたりの「トランジスタ技術」に載ってた、
TCP/IPのハードウェアプロトコルスタックのIC W5100を調べてたら
ひとつ上のW5300というのが出てたので、そっちを使うことに。
カタコトの日本語マニュアルによれば、以下のような仕様らしい。
– サポートプロトコル: TCP,UDP, ICMP, IPv4, ARP, IGMPv2, PPPoE, Ethernet
– 8つの独立したSOCKETを同時にサポート
– 高いネットワークパフォーマンス : 50Mbpsまで
– ハイブリッドTCP/IPスタックをサポート(ソフトウェアとハードウェアTCP/IPスタック)
– PPPoE接続をサポート (PAP/CHAP認証モード)
– IP フラグメント機能は非サポート
– 128Kbyteのデータ通信用Internalメモリ(内蔵TX/RXメモリ)
– アプリケーションスループットに応じて内蔵TX/RXメモリをフレキシブルに確保可能
– DMA機能をサポート(16bitデータバス時、スレーブモードのみ)
– 10BaseT/100BaseTX イーサネットPHY内蔵
– オートネゴシエーションをサポート(Full-duplexおよびhalf duplex)
– オートMDI/MDIX(クロスオーバ自動判別)
– ネットワークインジゲータLEDをサポート(TX, RX, Full/Half duplex, Collision, Link, Speed)
– 外部PHYインタフェースをサポート
– 16/8bitデータバス幅
– 2種類のホストインタフェースモード(直接アクセスモード/間接アクセスモード)
– 外部より入力された25MHzにより動作 (InternalPLLロジック, period=40ns)
– コアの動作周波数はInternal生成された150MHz (PLL_CLK, period=about 6.67ns)
– ネットワークオペレーション周波数(NIC_CLK : 25MHz(100BaseTX)又は2.5MHz(10BaseT))
– 3.3V動作電圧 (5V耐性)
– 1.8V コア動作用の組み込みパワーレギュレータ内臓
– 0.18 µm CMOS テクノロジー
– 100LQFP 14X14 Lead-Free パッケージ
じつは、AVR32にも内蔵のMACがあるのだが、
TCP/IPはおろか、Pingに反応するのさえコードを書かなきゃいけないという現実は、
過去に蟹印を使った際に途中放棄した一件を思い出すにあたり、できれば避けたい。
というか、それよりも、このハードウェアで実装されるというTCP/IPを使ってみたい。
技術的にどこまで楽できるか(笑
当時はまだ日本のページがなかったので
これも仲間を巻き込んで韓国便を用立て(笑
各人2つと予備1個で7つ発注。$6.25の部品7つに$30の送料で単価1100円程度?
これでサックリと外堀は埋まってしまうのであった・・・
AVR32というCPUをどっかのblogかなんかで見かけてから
いろいろ調べてみた時期があって。
当初見てたシリーズがBGAしかなくて、そいつのピン配置を見てたら
なんかグチャグチャでやる気なくしたのと同時に
digi-keyにあった評価ボードが円高の影響もあって1万円ぐらいまで下がっちゃって
「これに個人で基板起こしても、この値段には勝てないわな~」と
なんとなく離れてたんだけど。
半年くらい前にATMELのページで再度検索してたら
新しいUC3シリーズが引っかかってきたので
こいつを調べてみたら
まあ、QFPでSDRAMも使えてROM/RAMが結構あって
H8から次のCPUへ行くにあたって申し分ないスペック。
入手も、digi-keyで問題なく買えそう。
・・・・ARM基板は置いとくとして。
じゃあ、とりあえずこれでいくべな~と
まずは仲間を巻き込んでdigi-key便を用立て。
外堀埋めるだけ埋めてみた~のが去年の10月かな。
とりあえず、回路図引かないとね~
本当は、ARM7よりも先に設計は終わっていたんだけど
なぜか後回しにされてしまったH8/3029とSpartanIIの基板。
いろんな意味で、いろんなとこからいろんな異論が・・・・
それにもメゲずに、PCBCARTへ出稿。
ある意味、今までユニバーサル基板で作ってたようなシステムを1枚にまとめた
集大成的な回路構成。
H8に対しての、自分にとって一区切り・・・ですかねぇ。
とにかく、作っておきたいと思った基板です。
本当は、ARM7基板より先に作る予定だったのに逆になり、
その結果FlashROMのフットプリントが間違ってるというのをフィードバックできたおかげで
かなり救われた基板でもある。
回路コンポーネントもほぼ定番化し、CPUバスの仕様もこの基板で確立している。
まあ、元々ユニバーサル基板から来てるバスではあるんだが。
それでも、実は電源周りとメモリ制御周りに数箇所ジャンパが飛んでる。
どうにもこうにも。ミスなく作ることができないものでね。。。
完全に自腹で何もかもこなしたのはこれが最初。
ARM7とFPGAのボード。
CPUは今をトキメく(?)NXPのLPC2468。
FPGAはI/O数の関係でちょっと古めのSpartan3。
Bsch3で回路図7枚。
回路図CADとPCBCAD間のやり取りについての手順を確立。
ネットリストにフットプリント情報を埋め込む術がなくて全部手打ち。
それを秀丸のマクロでネット変換して結合。
かなり頑張って引いたんですけどね。
フットプリントの作り間違えが3点。
重要な線の欠落が3点。
その他「ドキュメント読めよ」的な間違いが数点。
PCBCART で製造、一発目。
基板製造後、自力で実装を試みたが、FPGAその他のランドが
シビアすぎて手実装を断念。
実装屋を探して1枚だけ実装してもらった。
「会社の名前でいつものところ、使ってもいいよ」とは言われてたけど
今回は全部自力でやる!って決めてたから
実装屋も自力で手配。
部品もほとんどdigi-keyと秋葉原の店頭。
仕事と同じ方法でやってるから
ミスはないはずなんだけど、どうしてもチェックが甘くなる。
それさえ何とかなればねぇ。。
基板設計を趣味で始めた一発目。
会社の道具(OrCADと基板CAD)を使って、最終的には
会社の名前入りで製造。
この第一版にはリセットICの使い方を間違うという初歩的な
ミスがあった以外はおおむね動いている。
まあ、趣味の時間で引いた回路と基板なので
実際には何の目的もなく作ることが多い。
H8/3029については、ユニバーサル基板で何度か作っていたり
最初の仕事の際に採用した3.3V対応のH8.
とりあえず、秋月かなにかのH8/3048に対抗しうる基板ということで
タイミングを見計らって会社で作る基板に面付けして製造してもらった。
趣味だといろいろと甘くなることは、すでにこのときに経験したのだった。
まあ、動かないと困るわけじゃないしね・・・
そんな感じで。
最初は簡単な回路、作りなれた道具で始まったわけよ。
ちなみに、第2版はモード設定周りに細工をして
DIP-SWをいちいち変えることなくプログラムの書き込みができるように
回路を追加してある。