と、いう感じで。
いろんなことを諦めつつも、2ヶ月ほど寝かせた上
やっとのことでPCBCARTに出稿。
2ヶ月も寝かせていた間、AVR32を使うにあたり、書き込み装置をどうするか
これまた、いろんな情報を漁って決めかねていました。
ATMELはJTAGICEmkIIかAVROneが必要だと言い張るのですが
値段を調べると、ふざけるなってくらいの値段設定なわけですよ。
たかだかJTAGのライタに3万も出すかってハナシ。
ただ、まあ、その辺はFPGAとかと違うところで、存分にサードパーティが
互換機を出しやすいように資料がほぼ全部公開されているわけです。
調べていくと、1万5千円の互換機が一番よいみたいだというのが
分かったのですが・・・それはJTAGICEmkII互換という意味であって
AVR32で実績があるという話ではないようで。
それすらも躊躇して、よくよく調べると
AVRDRAGONという6000円強のライタ基板?が互換機能をもっていて
実際に実績がある様子。
こいつなら・・・たとえ動かなくてもあまり痛くないかな。
基板むき出しだけど(笑
まあ、最終的には「なんとかなるさ!」ってことで
とりあえずAVRDRAGONで試して、だめなら互換機買おうってことに。
やっぱりここでも「諦めて」(笑
先へ進むことに。
配置も決まってきたので、もう動かさないところは
どんどん固定していく。
実は、この段階で、かなりゲンナリしてる。
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と秋葉原の店頭。
仕事と同じ方法でやってるから
ミスはないはずなんだけど、どうしてもチェックが甘くなる。
それさえ何とかなればねぇ。。
・・・・・・またしても。
基板サイズが秋月の定型以上になる、という話の前に。
CPUをはじめとする電子回路が普及し始めた頃から
現在に至るまで、いろいろなバス・インターフェース規格というものが
立ち上がりは消えていっています。
実際には消えてはいないんでしょうけど。
とくに産業用に使われていたものについては
簡単にはなくならないのです。
たとえば、CompactPCIという規格。
この規格における基板サイズは、Eurocard 規格の
3Uと6U というサイズで規定されています。
これは、バックプレーンにカードを挿す、というシステムにおいて
長らくEurocardサイズというものが使われてきたという背景に基づいています。
基板サイズが秋月の定型以上になる、という話に戻すと。
今回はEurocardでいうところの
3U(ハーフユーロサイズ160mm x 100mm)というサイズを
自分の中でひとつの標準にしよう、と思ったわけです。
実際のバス規格が採用するぐらいのサイズがあれば、たかだか個人が作る回路なんか
余裕で入るでしょうし、手ごろなサイズです。
それに、何か説明するときにも「ハーフユーロカードサイズ」といえば
通じるわけです。
もちろん、これ以上のサイズが必要になったら・・・・また考えますけど。
・・・つづき。
私が趣味で基板を作るにあたり決めたのは
秋月電子で売ってるユニバーサル基板にあわせよう、ということ。
これまで、そのサイズの基板でいろいろ作ってきた資産ってのがあるわけで
もしその中から基板化しようというネタがあった場合、スタッキングできたほうが
都合がいい。というか、穴あけ加工で悩みたくない。
そんなこんなで
C基板サイズ (72mm x 47mm)、
B基板サイズ? (95mm x 72mm)を基本としています。
だいたいこのくらいのサイズであれば
ほとんどのマイコンボードは構成可能でしょうし、部品も両面実装すれば
場所は稼げるわけで。
ただし、前提は4層基板。(これ重要!)
2層にすると、どうしても電源で悩むことになるし、線でつなぐというのが
どうしても弱く感じてしまう。
・・・・というより、設計が楽だから(笑)
ついでに言えば、ベタを貼りたくないので。
そんな感じで考えているのですが
おそらくこのサイズで収まらないものもあるでしょう。
・・・実際あるんですよ。すでに。
・・・・・・・・・・・・またしても。次。