Electronic Worksの最近のブログ記事

続きです。 西田さんからBELUGAのアダプターの回路図を参考にせよとの指摘があったので、それに習って調べています。

まず、BELUGAのアダプターは次のように信号を作っています。

CS = (RAS2 and EXCAS) or (MREQ & デコード済みアドレス)
OE = DRD2 or CS3

なお、全部負論理である点に注意してください。

私のカードの論理は次のように修正しました。

CS = EXCAS or (MREQ & デコード済みアドレス)
OE = DRD2 or RD

これで動かしてみたことろ、テキストモードのページ1とページ4がちらついた状態で表示されました。 ただし、スクリーンモードを4などにすると画面が乱れます。

どうも、ページ1にはページ1とページ3が、ページ4にはページ2とページ4が混じって表示されているみたいです。 その証拠に、画面左下のページ番号がちらついて両方表示されており、たとえばページ3のスクリーンモードを変更するとページ1の表示に影響しています。

BELUGAのカートリッジでCS3を使っているのはROMエリア読み出し用だと思うのですが、DRD2のみでRDを使ってない理由はよく分かりません。 DRD2はVRAM DMA用のRD信号ですが、通常のメモリアクセスでもアサートされるのでしょうか?

CSを作るのにRASとのandを取っているのもよく分かりません。 SRAMですから、CASだけ見れば十分じゃないかと思っているのですが、タイミング的にRASも見ないとネゲートのタイミングが遅すぎたりするのかな?

CS2/CS3などを扱うROMエリアがメモリデコードだけでアクセス可能になるかどうかも気になりますが、その前にRAMエリアももう少し調査・実験が必要です。

(20 July 2009追記)

CSの入力をEXCASの代わりにRAS2に変更してみると、まったく画面が乱れたままなので、やはりEXCASのほうが「近い」のですが、andを取らなければならないのかもしれません。

と思い、EXCASとRAS2の両方を使ってみました。 つまり、

CS = (RAS2 and EXCAS) or (MREQ & デコード済みアドレス)
OE = DRD2 or RD

であり、ほとんどBELUGAと同じです。 しかし、何も症状が変わりません。 画面は乱れたままです。 RAS2の入力をはずすと元に戻ります。 すなわち、ちらついた状態になります。 何で...???

もう降参。 ダレカタスケテ...;-(

ちなみに表示の様子。

P1000816.JPG

ちらついてるのが分かるでしょうか?


少しづつ原因を特定しようと頑張っています。 今のところ、明らかになっているのは次のような動きです。

  • 起動時、本体は32kBとして認識している。これは、BIOSで以下のようなロジックを実行することで判定している。
    ld      hl, 0xbfff
    ld      b,(hl)
    ld      (hl),a
    cp      (hl)
    
    ちなみに0xbfffは拡張RAMの最終アドレス。
  • スクリーン1(0x8000-0x83ff)およびスクリーン4(0xa000-0xb9ff)の表示は同じように乱れている。
  • スクリーン1のアトリビュートエリア(0x8000-0x81ff)やテキストエリア(0x8200-0x83ff)をpeekすると内容は正しい。
  • スクリーン2(内蔵RAM)を表示した状態でプログラムを入力したり実行したりできる。すなわち、0x8400からのメモリを正しくアクセスしている。
  • スクリーン1または4でキー入力をするとかなりの確率でリブートしてしまう。
  • screen 4,4を実行するとかなりの確率でリブートしてしまう。

ここから言えることは、以下のようなことです。

  • SRAMはほぼ正常に動作している。
  • VDGからのDMAで正しいデータを読めていない。現在はDRD(拡張コネクタ3番ピン)が0になるときにSRAMからのCSおよびOEをアサートしてますが、それでは足りない?
  • VRAMに書き込みをするとリブートしてしまう。

DMA関連の不具合は、ハードウェアに起因した現象なので、ちょっと困り果てています。

もともと、PC-6001の拡張RAMはDynamic RAMを想定しているので、ひょっとすると、DRDのみでSRAMをリードにしてしまうのが原因なのかも。 DRDのタイミングのみでSRAMをアクティベートしていることで、何か他の信号との関係でデータバスがコンフリクトしていることが考えられます。 もしそうだとすると、RAS and/or CASのアサートも見なければいけないのかもしれません。

そうなると、さらにCPLDに入力しなければならない信号が増えてしまいますね...。

Discrete logicに外出しにするにしても、DRDとRDはand(7408)で、RAS/CASはor(7432)なので、ひとつのチップで処理できません。 まぁ、74139を使ってデコードするという手はありますが、手元にあったかな?


続きです。 ページ1(0x8000-0x83ff)およびページ4(0xa000-0xb9ff)の画面は乱れるものの、なんとなく動いていたSDアダプタですが。 たまに入力を受け付けなくなって暴走するなど、やはり不安定です。

どこか結線の問題だと思っているのですが、正直調べるのはかなりの苦行です。 回路図と睨めっこしながらハーフピッチのコネクタにショートや断線がないかどうか一本ずつ調べる必要があります。

なまじジャンパが結構這っているので、それも含めて丁寧に追いかけなければいけません。 ジャンパはUEWなので、断線ならまだしも結線の際に熱でどこかショートしてたとしたら、発見するのは相当厄介です。

これまでいろいろ作って一番経験したデータバスの誤配線はなさそうです。

また意外にも、パッドとラインの間の隙間が非常に狭いところなどには今のところショートなどは見つかっていません。

CPLDやAVRのプログラミングを行うのも特に問題は起きていないので、電源周りも大丈夫そうです。

う~ん、やはり地道にやっていくしかないのか...。


続きです。

回路に一箇所誤接続がありました。 データバスの部分でしたので、動かなかったのも納得です。

とりあえず似非ROMは後回しで、外したままですが、早速直して動かしてみると...画面が真っ白。

よく調べてみると、キーを受け付けますし、プログラムを入力したり実行したりできます。 プログラムを入れて0x8400近辺のアドレスをpeekすると、ちゃんと入っているのです。 ところが、スクリーン1と4が真っ白で、2と3はちゃんと出力されます。

それで気づいたのですが、6847からのDMAって、MREQまたはRDを使っていない?!

またしてもオマエカー!! VDG!!

これは気づきませんでした。 ええと、6847からのリード要求はコネクタ3番かな? 唯一残っているCPLDに入力して、CSのロジックを変えてみました。


...動かない。

よく考えてみたら、SRAMのRDがアクティベートしていないようなのですから、いくらCSをいじったところで読み出しができるわけがありません。 ということは、現在拡張コネクタからダイレクトに入力してしまっているSRAMのOE信号自体に細工をする必要があるということです。

たったAND1個ですよ。 でも、CPLDのI/Oがたった1本(SRAM OE用出力)だけ足りない...。 そのために08をつけるのは馬鹿馬鹿しいし、パターンもありません。


「こ...こうなったら、醜くてイヤだが、大猿に変身してアドレス線を1本削ってぶっつぶしてやる......!!」


で、A4を削ってやってみました。 白い画面ではなくなりましたが、ページ1と4が乱れまくっています。 ちなみに、以下のようなロジックです。

  OE <= RD and DRD;

  process (MREQ, Address15, Address14, INIT, WR, DRD)
  begin
    if DRD = '0' then
      CS <= '0';
    elsif MREQ = '0' and Address15 = '0' and Address14 = '1' then
      if INIT = '1' or WR = '0' then
        CS <= '0';
      else
        CS <= '1';
      end if;
    elsif MREQ = '0' and Address15 = '1' and Address14 = '0' then
      CS <= '0';
    else
      CS <= '1';
    end if;
  end process;

DRDは拡張コネクタ3番、OEはSRAMへ行っています。 もう、DRDがアクティベートされたら無条件でSRAM READにしている感じです。

でも、ちゃんと動きません。 う~~ん、あと何が足りないんだ??


続き。SDアダプタですが、まだ動いていません。

tiny2313をつけた状態で電源をつけると暴走しているので、データバスがコンフリクトしているのではないかと思います。 tiny2313はROM代わりですので、とりあえず外してしまえば単なる拡張RAMカードとして機能するはずなのですが、外すと何も起こらず普通に起動し、内蔵の16kBしか認識されていません。

というわけで、CPLDがうまく動いていないのではないかと思います。

たいしたロジックを入れているわけではないし、ISEではフィッティング含めエラーも出ません。 Timing constraintsは何もかけていないのでwarningが出ますが、たいした問題ではないでしょう。

ロジアナがあるとはいえ、回路上で実動作を確かめるのはとても大変です。 そのため、Behaviour modelをベースにシミュレーションをしているのですが、今のところ特に問題らしいところも発見されていません。

とりあえず今のソースを貼り付けておきます。

SDDecoder.vhd

拡張バスからの信号は、アドレス線、データ線とRDおよびWRは直接SRAMに接続し、CSのみ次のようにCPLDでデコードしています。

  process (MREQ, Address15, Address14, INIT, WR)
  begin
    if MREQ = '0' and Address15 = '0' and Address14 = '1' then
      if INIT = '1' or WR = '0' then
        CS <= '0';
      else
        CS <= '1';
      end if;
    elsif MREQ = '0' and Address15 = '1' and Address14 = '0' then
      CS <= '0';
    else
      CS <= '1';
    end if;
  end process;
  • 初期化時(AVRから^INITが入る)の0x4000-0x7fffへの読み込みはインアクティブ
  • 初期化時の0x4000-0x7fffへの書き込みはアクティブ
  • 0x8000-0xbfffへのアクセスは常にアクティブ

ひょっとしてCPLDにクロック供給とかいるのかなぁ。 クロックとして使われるピンも普通のI/Oにしちゃってますが。

あ、それともSRAMにCS以外の信号線を垂れ流し続けるのって無謀? データシート上ではCSさえインアクティブにしておけばデータバスはHigh-Zになって楽なのでこんな感じにしたんですが。


先週基板ができたので、今日はジャンパを通しました。 およそ30本。 面倒ですが、全部手配線に比べたら圧倒的に楽です。 ちなみにUEWを使って半田面に配線したので、部品面は未だにスッカスカです。 ISP用に背の高いコネクタをつけたくらい。

P1000708.jpg

プログラミングはCPLD、tiny2313、mega88の3種類に必要です。 デバイスへの書き込みはこれだけのために用意してある古いノートパソコンを使います。 タダでもらったVAIOで、シリアル&パラレルポートを持っています。

なおこれ、液晶のヒンジが折れています。 ありあわせのネジで直しても直しても折れてしまうので、スピーカーに寄りかかった状態で使っています。

P1000706.jpg

CPLDは特に問題もなく終了。

tiny2313が、どうしてもDevice connection failedでうまくいかない...。 RS-232Cを疑ったり書き込みデバイスを変えたり、いろいろしてもなかなか見えず、仕方ないので試しに別のチップでやってみたら...できた。

見事にババ引いちゃったみたいです。 その間、電源取りに使っていたFT245Rのボードを壊してしまったみたいです(泣)。

mega88のほうは、まだプログラムのほうが古いままで、新しいアダプタに対応していません。

明日の引越し荷物到着の準備をしなきゃいけないし、今日はもう疲れたので、こちらは明日以降にしましょう...。

それでも、面倒なハードウェア部分はおおよそ終わったので一段落かな。


私はいつも日本に行ったときに基板やらパーツやらを買ってくるのですが、当然イギリスでもこれらのものを手に入れることは可能です。 ただ通販ベースのものが多く、秋葉原のように手にとって選べないことが多いのと、慣れの関係で、日本で買っています。

こちらでメジャーなパーツショップといえばMaplinですが、見てみるといわゆるポジ感光基板も扱っていました。 価格は全般的にサンハヤトのものよりは安いようです。 たとえば、Fibreglass(ガラエポに相当すると思われる)100x75mmサイズの両面基板で1.73ポンド。 日本だったら1000円弱します。

ちなみに銅箔が施された生基板はCopper-Clad Board、感光基板はPre-Sensitised Copper-Clad Boardです。

商品情報を見ると紫外線で感光させるようなのですが、どのくらいの波長かなどはよく分かりません。 UV-EPROMを消去するのに使うものでよければそんなに問題はないですね。

また、エッチングのあとに再び感光するように説明されています。 ちょっと扱い方が違うのかもしれません。

以下抜粋:

The PCB should be exposed using our UV exposure box and a circuit overlay transparency. Exposure time will be from 8 to 15 minutes. Mix together 0.5 litres approximately with one teaspoonful of sodium hydroxide (available from most chemists) and pour into a tray (CH38R). Gently rock the exposed PCB in the tray until the unwanted photo resist is dissolved away. Etch the board in a bath of ferric chloride and after rinsing, expose the PCB in the UV box for a further 10 minutes. Wash off all the remaining etch resist in a tray of sodium hydroxide solution.

サンハヤトの現像液はメタ珪酸塩ですが、こちらは水酸化ナトリウム(sodium hydroxide)を使うようです。

でもちょっと面白そう。 Maplinは店舗自身はたくさんあり、こういった商品の在庫を持つ店も時々存在するので、そのうち試してみたいものです。


先日日本でジャンク漁りをしました。

私の狙いはもともと、XTバス用のカードなんですが、1~2年前にはそこそこ見かけたカードも今やほとんどありません。 ていうか、ISAのカードですら逆にプレミアムがついているのか、高いのです。

特に、8ビットでのビデオカードが狙いだったのですが、ちょっと変わったカードを見つけました。 最初ビデオを含むマルチファンクションカードだと思ったのですが、どうも違います。

P1000705.JPG

ALiのチップがついていて、AMI BIOSやらRTCが載っている時点で怪しさ満開なのですが、調べたらやっぱり違いました。

これはいわゆるSingle Board Computer (SBC)で、組み込み用途などでよく使われているもののようです。 ISAインタフェースに準拠しているように見えますが、実際には既存のPCにインストールするのではなく、特別のバックパネルに入れて使います。

今風に言えば「ブレードサーバ」ですかね。:-)

右上にAT電源コネクタがついていることからも分かるように、これ単体でもコンピュータとして機能します。

型番はSBC-456。シリーズにSBC-456Eというのもあって、これはEthernetがついているのですが、残念ながらそれはありませんでした。 ただ、右のほうに空きパターンは用意されていて、Realtekの8029とパルストランス、いくつかの受動部品を実装すれば動くみたいです。 そう、8029。 PCIバスなのです。 見たまんまISAバスの顔をしたPCIベースのコンピュータです。 ただし規格の関係で、下にある大きな2つのコネクタにマウントできるのはPC/104準拠、すなわちISA準拠のモジュールのみとなります。

CPUはAMDのDX5-133(486互換、133MHz)で、ALiの2つのチップは想像通りチップセット。 基本的なI/Oはすべて装備しているので、電源、メモリ、ディスクをつけてキーボードとモニタに接続すればパソコンとして動作します。 AT電源なんてもう持ってませんが、+5V(3A)と+12Vで動作するようなので、ハードルは高くないですね。

パソコンとしてのスペックは以下のとおりです。

  • AMD DX5-133 CPU
  • L2 cache 128kB onboard
  • C&T 16550 with display memory 1MB onboard (2MB optional)
  • Memory up to 64MB with two 72-pin SIMM sockets
  • 32-pin DIP SSD up to 144MB
  • EIDE, FDD, RS-232, RS-232/422/485, IrDA

左下のソケットにはフラッシュメモリ(ROM互換)が挿せるようになっていて、ディスクレスシステムを構築することもできます。 また、LCDコントローラが内蔵されていて、いくつかのLCDを直接ドライブできるようです。

ちなみに、左端のメモリは私が持っていたジャンクを挿しています。

買ったときは部品取りに使うつもりだったのですが、これはこれで楽しそうなので、このままそのうち活用してみようかと思います。

あ、ちなみに価格は840円でした。 ネットで調べると今でも現役で売っているところもあるみたいですね。 数100ドルと、結構高いですよ。


SDカードアダプタ、まだやってます。 先日失敗した感光基板作成、日本で基板を買って戻ってきたので、再挑戦です。

今回は出力11Wの蛍光灯を使いました。基板との距離は10cmちょっとくらいです。 10分ごとに蛍光灯の位置をずらしつつ、感光時間は1時間弱行いました。

感光の様子。

P1000696.JPG

現像の結果。 一部ベタ部分で基板にインクがついてしまったところは感光剤がはがれてしまいましたが、おおよそ良好な結果になっています。

P1000697.JPG

感光剤がはがれた部分はレジストペンで修正をかけて、15分エッチング。 エッチング液はおよそ40~45度。

今回はきれいにできました。

穴あけは、基本が0.6mm、ICソケット(1箇所)および太目の線を通す部分は0.8mm、レギュレータは1.0mmです。

んで、部品実装を開始しました。

部品面のエッジコネクタをどうするのか、いまさらになって問題になりました。 EジスPenを使うつもりだったのですが、摩擦に弱いんですよね。

仕方ないので、例により(?)ファミコンカセットのジャンクから毟り取ったコネクタを接続。 必要部分だけとはいえ、40本近くの配線量になりました。 結構面倒だしやりにくい。 しかも何度も再利用しているのもあって、出来が汚い...。

で、今はこんな感じです。

P1000703.JPG P1000704.JPG

ボードが大きくてスカスカに見えるかもしれませんが、片面基板のため、配線は右側の銀色の部分を除いてかなりびっしりです。 配線間隔は50mil(1.27mm)です。

そのため、100mm x 150mmの基板を使いました。 75mm x 100mm両面でもいけるかと思ってアートワークしてみていますが、せっかく両面なのだからジャンパを飛ばさずにと思うとかなり難しいです。

主要な部品はつけ終わりましたが、今回の片面基板バージョンではジャンパも結構飛ばさなければいけないので、のんびりやります。


Ealing Broadwayで工作用品を探してきました。 手ごろなPillar Drillを探してたのですが、ありませんでした。

その代わりに買ってきたものは以下です。

P1000665.JPG

精密ドリル。3.50ポンドでした。 なんと0.30mmから1.00mmまでは0.05mmきざみであります。 相当丁寧に扱わないと、すぐに折ってしまいそうです。

P1000666.JPG

こちらはDyamond Burr Set。1.99ポンド。 基板の銅箔の残りの除去にどうかなと思い購入。 試してみましたが、一応使えそうです。 ただ、今回の基板は対象となる面積が大きすぎるのでちょっと無理そう。


ようやっとインクジェット用のOHPシートを見つけました。 Staplesにありました。 20枚で13ポンド強と結構高いですが、仕方なし。

機材の都合で、出力6Wの蛍光灯、基板との距離は約16cmになりました。 キットの説明書には、27Wの蛍光灯で15cmの距離のときに露光時間30分ということなので、露光時間を長く取りました。およそ45分です。

現像時、やはり露光ムラがけっこうあったことが発覚しました。 中央部分はきれいに銅箔が露出しても、周辺部分に露光しきれてない部分があります。 一応蛍光灯を動かしながら露光したのですが、ちゃんと時間を計りながら一定時間ごとにムラなく光を当てるようにしたほうがいいようです。

後になってわかりましたが、現像後にかなり念入りにレジストの残りを検査するべきですね。 銅箔が露出していると思っていても、薄く残っている部分がけっこうあったようです。 そういう部分は、あとで網掛けのように銅が残ってしまいます。

そのため、エッチングがなかなか進まず苦労しました。 レジストがうっすらと残っているらしい部分の銅がなかなか溶けず、30分粘ったところで、パターンが痩せてきた部分があったので中止しました。

7~8割方はきれいに抜けたのですが、かなりきつく残っている部分もあり、仕方ないのでいったん仕上げを行ってから修正をかけることにしました。 本当はレジストが乗っている状態で修正をかけて、再度エッチングを行えばよかったことに後で気づいたのは内緒です。

なお今回、先日購入した赤外線温度計が大活躍でした。

現像液やエッチング液の液温を非接触で測れるので、大変便利です。 特に、液温を維持するために、液を入れた容器をお湯を張った大き目のタッパーに入れ、時々液温を測りつつ作業ができました。

当たり前ですが、「やってみなければ分からない」ことがいろいろ分かりました。

OHPシートはうちのプリンタ(HP)用のを買ってきて、高品質モードで印刷しました。 コントラストも高く、印刷面と基板を密着させてもレジストがはがれるということもありませんでした。 ちゃんと露光できれば、今回のピッチ(ライン幅10mil、間隔50mil)は十分に実用に耐えます。 慣れれば間隔25milでも十分いけそうです。

今回は成功したとは言えませんが、おおよその手順は理解できたので、次も頑張りたいと思います。


なお、穴あけも一応少しだけやってみました。 ドリルが重くかつスタンドがないので、基板のほうを水平に手で持って作業しました。 70milのパッドに1mm径のドリルで穴を開けてみましたが、特に問題は感じませんでした。 ポイントとしては、あらかじめ穴あけ(よくある6本セットに入っているやつ)でセンターに印をつけておくことくらいです。 50mil間隔の隣のラインに干渉もしません。


パターン印刷用にOHPシート(Transparency film)を探しているのですが、店頭では見かけません。 PC WorldもCurrysもMaplinもだめでした。 もちろん、web shopでは売られていますが、すぐに手に入れたいとなると店頭で見て買いたくなります。

写真用紙ならいくらでも売ってるんですけどね。 最近はみんなOHPなんて使わないからでしょうねぇ。

特殊な用紙のコーナーでは、名刺用紙やCDラベル用紙などのほかに、Tシャツに転写する紙なんかもありました。 これなんかは、ひょっとすると生基板を使うときに使えるかもしれません。

レーザープリンタならいいんでしょうが、まだ日本から輸送途中で届いてないのです。 他人のプリンタを使って壊したりしたくないですし。


昨日は透明シートがなくて挫折した基板作成。 今日帰りにスーパーに寄ったのですが、ありませんでした。 最近はOHP使わないので、専門店に行く必要がありそうです。

うちにあるいくつかの種類のクリアファイルで印刷を試してみましたが、どれもインクは乗らず、うまくいきませんでした。

さて、今回は初めてということもあり、サンハヤトのPK-6というキットを使います。 ポジ感光基板に現像剤、エッチング液とレジストペンやらパッド転写用シートやら廃液処理剤やら、関連グッズが一通り入っています。 千石で2300円くらいで買いました。

そもそも自分で作成する基板の仕組みというものがよく分かってなかったので、あちこちネットを彷徨ってようやくどういうものなのかが分かってきました。 サンハヤトのキットは、手順は書いてありますが、仕組みはあまり詳しく書いてないのです。

メモ代わりにここにも書いておきます。


基本的には、次のような仕組みになっています。

  1. 銅箔が施してある生基板の上に回路として残したい部分をレジストペンなりOHPシートなりトナーなりで遮蔽(保護)する
  2. 遮蔽していない部分をエッチング液で溶かす
  3. 基板上で遮蔽して溶け残った遮蔽部分を磨いて除去し、銅箔を露出させる
  4. これにより、銅箔部分が回路として機能するとともに、はんだを乗せられるようになる。

問題は「どのように回路部分を遮蔽するか」です。 生基板の上に直接レジストペンなどで手書きしてもいいのですが、あまり細かいパターンは作れません。 そこで、パソコン上で設計し、プリンタで印刷したものを使いたくなります。

この際、プリンタで生基板上に直接印刷できればいいのですが(業務用では実際そうするようです)、個人ではつらいものがあります。 中にはプリンタ、主にCDラベル印刷、すなわち堅い平面への印刷が可能なインクジェットプリンタ等を分解して直接印刷に挑戦する強者もいるようですが、なかなか難しいようです。

感光基板は、銅箔の上にさらに感光剤を塗布してあります。 これにOHPシートなどを印刷したパターンを重ねて感光させれば、パターンのないところの感光剤が反応し、現像処理により感光剤が除去されて銅箔が浮き出ます。 こうして浮き出た銅箔をエッチングで除去します。

一方生基板では、一般にパターンをレーザプリンタで出力した紙やシートを使います。 この紙やシートを基板に密着させ、アイロンをかけることでトナーがパターンどおりに基板上に移ります。 その後エッチングすれば、やはりパターンのない銅箔部分が除去されます。

このあたりを知らないままサンハヤトのキットの説明書を読んでも、意味がさっぱりでした。

キットに入っているポジ感光基板(P12K)は片面紙フェノールの100mm x 150mm x 1.6tのもので、これだけで500円ほどします(価格はいずれも千石、以下同じ)。 両面(G33KR)にいたってはガラエポですが、960円です。 生基板なら、同じサイズの片面紙フェノールのもの(12)が180円、両面(12R)でも240円です。

このようにポジ基板は高いので、いずれレーザープリンタから生基板に転写する方法を試したいと思います。 これなら感光する代わりにアイロンで転写するので、手順的にも楽になると思います。 まぁ、慣れは必要でしょうけど。


ExpressPCBでのアートワーク、一応ほぼ完成しました。 片面基板用に頑張りましたが、ジャンパを20本ほど飛ばす必要があります。 それでもユニバーサル基板に配線することを考えたら気が遠くなりそうなので、パソコンでデザインできるのは助かります。

20090616-SD.png

結局、「PCBのデザインにあわせて回路を変える」ということを結構しましたが、なんとか形になったかな?

ジャンパ部分は反対面に描いてあるので、ほぼこのままExpressPCBで注文することも可能ではあります。 でも今回は自分で焼きます。 ちなみに、ツール上からの見積もりでは、価格は2枚で120ドル、10枚で200ドル強といったところでした。

今日さっそく焼いてみようと思ったのですが、プリンタに印刷できる透明シートがないことが判明。 クリアファイルで試してみましたが、いまうちにあるインクジェットプリンタではまったくインクが乗らないため、今日のところは諦めました。

せっかく今日はMaplinに行ってinfraredの温度計と、ついでにデジタルノギスを買ってきたのに。

なんとか今週中に1枚作って、うまくいったら来週の日本出張時に生基板を補充したいものです。

ちなみに、以下が今日買ってきた温度計(Thermometer)とノギス(Callipers)です。 どちらも電池式のデジタル。 温度計はこんなにいいものは不要だったのですが、これしかなかったのです。

Thermometer.JPG Callipers.jpg

価格は、温度計が29.99ポンド、ノギスが9.99ポンドでした。 温度計の電源はは006Pで、買うときに「これは電池が必要だけどいる? buy one get one freeだよ。つける?」と言われたので「いいよ」と言って買ったのですが、本体には最初から電池が入ってました...。 ノギスはLR44なのですが、最初から入っている上にスペアも同梱されてました。


え~ん、回路にバグ(未結線)が見つかって、ジャンパを足さなければならなくなりました。 これでジャンパはおよそ30本になります。 それ自体はいいのですが、まだ何かあるのかと思うと心配なのと、パッドを追加したことで焼付け時のショートの可能性が増したのが心配です...。


以前設計したSDカードアダプタのアートワークにチャレンジしています。

使う回路CADはフリーのものです。 どのソフトにするか、いくつか試しました。 悩みましたが、まずはExpressSCHおよびExpressPCBにしました。

  • PCBEは使いやすいが、PCBレイアウトに特化しているので回路図との連携が取れない。
  • Eagleはオートルータもあって強力だが、使い勝手に癖があり、特にカスタムコンポーネントが作りにくい。

これまで回路はBSCh3Vを使っていたので、まずは回路をExpressSCHで書き直しました。 ExpressSCHの持つ部品はあまり多くないのですが、カスタムコンポーネントは簡単に作れるようです。 ライブラリ中の似たような部品を置いて、Ungroupしたあと、ピンを編集して再びGroupすれば部品になります。 ついでにカスタムコンポーネントにしておけば、使いまわしも楽です。

ExpressPCBでは、回路図で登場した部品を自動的にボードにおいてくれることも、ラッツネットの作成もしてくれません。 これはちと面倒といえば面倒ですが、逆に自由度も増しています。 というのは、回路図とボードデザインの間は部品番号とピン番号のみで連携しているようなのです。 そのため、やはりライブラリ中から似たようなな部品を引っ張ってきてUngroupし、適当に編集すればカスタムコンポーネントを作れます。

ハンドルーティングなのでかなり面倒ですが、これは練習だと思ってがんばります。 ツール上で配線チェック(交差している、全結線したかどうか等)ができないので、目視検査となりちと大変です。

ちなみに、手持ちのキットが片面基盤なので、とりあえず部品面に回路を引いて、実回路では半田面に焼き付ける予定です。 そうすると、反転してデザインする手間が減ります。 回路が複雑なので片面基盤で出来るレベルではないですが、その辺はジャンパを飛ばすなり何なりで対処します。 でも、なるべくならプリントしてしまいたいので結線を工夫します。この辺はやってみて初めてノウハウが身につく感じですね。 引き始めは結線の多さに呆然としていましたが、少し結線を進めていくとだんだん面白くなってきます。

今のところ、SDカードの部品がないのが少々困ります。 結線用のパッドを置く位置は問題ないのですが、固定用のパッド位置が分かっていません。

結構回路規模があるので、大きさが問題になりました。 通常のカートリッジ用の基板は縦が72mm程度です。 配線幅を50mil(1.27mm)で設計すると横はともかく縦があふれます。 配線の太さはデフォルトの10mil(0.254mm)です。 電源線は太くするとしても、このくらいでないとかなり厳しいです。 このあたりはもう少し練る必要がありそうです。

エッジカード部分も片面しか作れないので、これも何とかする必要があります。 とりあえず、部品面へはパッドで接続し、イージスペンで部品面の端子を作ることにします。

設計にあたっては、西田さんに教示いただいた「なるべく基板配置を考えた回路図にする」というのがとても参考になりました。 CPLDやSRAM、244などは利用する端子に自由度があるので、これらについて最初から配線にクロスが生じにくいように設計したのですが、おかげでアートワークがかなり楽になりました。 こういうのもノウハウがいろいろあるのですね。