TigerMPX の 64Bit-PCI スロットで起きる相性問題の原因らしきもの・・・

TigerMPX の 64Bit/66MHz-PCI スロットで起きる相性問題の原因らしきもの、たぶん原因が判りました。

どの様な相性問題かというと、64Bit/66MHzスロットで一応動作はしてもリブートやリセットが効かなくなってしまうPCIカードがあるのです。しかし32Bit/33MHzスロット側に挿した場合は問題ありません。

リブートやリセットと言えば、恐らくリセット信号だろうと思いマザーボード基板裏を眺めてみましたら、5V信号であるはずのPCIスロットと3.3V信号であるはずの64Bit/66MHzスロットのリセット信号線が直結されていましたOrz

つまり、本来3.3VccのCMOS回路用信号線に5VccのTTL回路用信号電圧を掛けている為、HiとLoが正しく認識できずにリセットがかからないのだと思います。
 
sanwaの電圧計プローブをユニバーサルPCIカードに半田付けして電圧測定してみました。
TigerMPX-RST00.png
訂正:
当初、電圧測定用に付けた抵抗2KΩをGNDではなく間違って3.3Vauxに取り付けて計測してましたOrz、ちゃんとGNDに取り付けて計測しましたら4.4V来ていたので、やはり信号電圧を下げなければいけないのは確かです。というか、TigerMPXの64Bit/66MHzスロットはRST#以外にも規格外の5V信号が直結されている様です。

Lo状態で0.5Vくらい有るのかと予想していたのですが、実際は0.13Vまで下がっていました。これで何故リセットが効かないのでしょう?
といいますか、多くのPCIカードは、ちゃんとリセットされますので、これはもうホントに相性って言われてるものなんだと思いますが・・・

とりあえずHiの時の電圧が高すぎるので下げてみようと思います。Vol(出力側のLo電圧)は最大0.1Vとなっているところ0.13Vが出力されていますから、これも合わせて少し下げる必要があるのかもしれません。とは言えVil(入力側のLo電圧)は0.3V以下でLoを感知出来なければいけないところ0.13Vでリセット出来ていません。つまりマザーとPCIカードの両方が規格ギリギリの所で正しく動作していないのだと思われます。

そこで当初はダイオードで降圧しようと考えましたが、分圧した方が波形がそのまま電圧だけ下げられるので良いかも?と思い下記のような回路を組み込んでみようと思います。計算上は12:5の抵抗値でHi側の4.4Vが1.3V(規格上は0.9V以上)に下がり、Lo側の0.13Vは0.04Vに下がるハズです。下記の抵抗値ならリーク電流は26μAでたぶん規格範囲内です。それで動かなかったら下図の120KΩをダイオードに替えてLo側を完全にOFFにしてみようと思います。もちろん32Bit/33MHz(5V)スロットにはこれでは低すぎるので64Bit/66MHz(3.3V)スロット側だけやってみます。
TigerMPX-RST改3

ですが入手性の問題から、抵抗値を若干変更です。とは言え、これで計算上はHi側1.4V、Lo側0.04V、リーク電流30μAで上記の計画#3とほぼ同じです。
TigerMPX-RST改4

試した結果、分圧してLo側(RST#信号はActiveLow)を0.04Vまで下げただけではリセットが掛かりませんでした。
そこでさらに分圧抵抗というかプルダウン抵抗を20KΩまで下げて、Hiを0.7Vに、Loを0.02Vまで下げましたが、それでも駄目でした。

方針を変えて、上図の分圧抵抗の100KΩ側をダイオードに変更してLo側を0.0005V(0.5mV)まで下げましたが、それでもリセットが掛かりません・・・
IMG00508.jpg
※JIS 1608 サイズのチップ部品を手作業でPCI信号線上に半田付けするのは肉眼で限界ぎりぎりです。これ以上小さい部品は肉眼では難しいと思います。

試しにダイオードを電磁式のリレーに変更して完全にRST#信号線を物理断線しプルダウン抵抗だけにしたところ2回に1回くらいはリセットが掛かる様になりました・・・しかし、これでは不恰好ですし物理的なスイッチからスイッチノイズが発生して悪影響が有るかも知れませんし、それに確実にリセットされる訳でもありません。RST#はPCI規格にトーテムポール出力(別名:プッシュプル出力)と書いてありましたのでダイオードと組み合わせるプルダウン抵抗を47KΩではなく、もう少し下げる必要があるかもしれません。しかし下げ過ぎるとリーク電流が増大してRST#信号を出力しているチップに負荷が掛かってしまいそうですから、少し下げても駄目なら、また別の手段を考えてみます。

ダイオードを変更しLo入力で測定上は0Vまで下がる整流ダイオードにしてプルダウン抵抗を200Ωまで下げてみましたら、完全にはリセットが掛からないものの部分的にはリセットされている事が確認できました。問題が起きるAreca ARC-1120はリセットが掛かるとボード上のLEDがいったん消えてから点滅しメモリチェックを開始しますが、リセットに同期してボード上のLEDがいったん消えて点滅するところまでは行きましたがメモリチェックが始まりません・・・RST#は本来トーテムポールなのでLoの時に電圧下げてプルダウン抵抗にするだけじゃなく、寄生容量・残存容量をキッチリ積極的に吸い出してGNDに落とさないといけないのかもしれません。もしくは信号電圧が4.4Vなのでラッチアップが起きているのかもしれません・・・RST#以外の信号線も5Vなのかも?と少々心配になって配線を調べましたらPME#が同様に5Vスロットと3.3Vスロット直結でした・・・大丈夫かなぁ?

ところで、TigerMPXにはAGP x4スロットが有ります。つまりAGP2.0世代で信号電圧は1.5Vのハズです。AGPはPCIの派生ですから基本動作はPCIと同じハズでA7番ピンがRST#信号線です。こいつの電圧を測定してみましたらHi側が3.3VでLo側が0.013V(13mV)でした、そこで試しにこれを直結してみましたが、それでも駄目でした。AGP2.0のリセット信号ならと淡い期待もあっさり打ち砕かれ、上記同様にリセット時にボード上のLED点滅は確認できましたがメモリチェックは始まってくれません・・・

PCIデバイスにリセットが掛かってないと言い切れる理由は、Areca ARC-1120もリセットが掛からないデバイスの一つですが、こいつにARC-1009 LCDユニットを取り付けると、カードの状態がハッキリ判るからです。リセットが掛かるとカード上のメモリチェックを行い次いでカード上のKernelが起動するのですが、その状態が随時LCDユニットに英語テキスト表示される為、ARC-1120の状態がハッキリ判るのです。

参考までに、このリセットされないARC-1120はPCI-X133仕様ですがユニバーサルでPCIスロットなら本来どこに挿しても動作する品で、TigerMPXの32Bit/33MHzスロット側なら正常にリセットされます。TigerMPXの64Bit/66MHzスロットに挿した時だけリセットされないのです。しかも、リセット以外はTigerMPXの64Bit/66MHzで正常動作しWindows7を入れても普通に軽快に動き、シャットダウンも問題無く出来るのです。

RST#のTTL5V信号をCMOS3.3V信号(トーテムポール出力)に変換する

分圧やダイオード降圧で信号電圧を下げただけではリセットされないのですから、本来あるべき3.3VスロットのRST#信号としての正しい実装に可能な限り近づけてみたいと思います。その条件は3.3V信号(Hiが0.6V程度、Loが0.1V以下)で、かつトーテムポール出力にする事だと思います。

しかし、トーテムポール回路をTigerMPXのマザーボード裏側を加工して直接組み込むのは難しそうです。そこで案を二つ考えました。

トーテムポール実装案1:
 フレキシブル感光基板とチップ部品を使って 20mm × 10mm 程度の面積上に回路を作成する。

トーテムポール実装案2:
 ユニバーサルPCI基板(販売終了品、現在は入手困難ですが予備を購入してあったので手元に在庫あり)を使い、マザーボード側は32Bit/33MHzスロット1本を信号電圧変換専用スロットとして利用する。
 RST#端子を入力にして、出力はPCIスロットのB14ピンに使われていないRESERVEDピンがありますので、そこを使って3.3Vスロット側のRST#に接続する加工をしておきます。このスロットは他の用途で使えなくなってしまうのですが、PCIカード1枚ぶんの実装面積が有るので色んな回路を試行錯誤してみるのには適していると思います。

とりあえず案2で色々試した後に、動作確認が出来てから案1も検討してみようと思います。

ロジックICを使ってみるか?
 RST#以外にも5V信号を直結しているピンがいくつかありますから、判る範囲で調査して、その信号を全て汎用ロジックIC経由で電圧変換してみようかと考えています。
 とは言え、RST#やINT#ならまだしも他の信号はクロック同期が基本ですからタイミングがズレてしまうのでは困ります・・・ロジアナ買わないと駄目かな・・・

ちょうど良さけな汎用ロジックICがありました。
 TOSHIBA TC7SZ125F
 入力トレラント機能付き3.3Vcc対応の3ステートバッファ、サイズが2mm×3mm程度の超小型、1入力1出力の5ピン品なので、とりあえずRST#信号だけならという事でPCIスロット裏側のRST#ピンかGNDあたりに直接ハンダ付けして他の配線をジャンパ線でつないでみようと思います。
 ちょうど良い場所にGNDと3.3V(バックアップコンデンサの足)が有りましたので、これを電源にして配線してみました。
IMG00519.jpg
 結果・・・駄目でしたOrz

 電圧はHiが3.3VでLoは0Vまで下がっていますがリセット掛かりません、プルダウン抵抗200Ωを取り付けましたらARC-1120のLEDが消えるところまでいきましたがメモリチェックが開始されません・・・
 RST#以外の信号線に5V信号が印加されている事でラッチアップが起きリセットが掛からないのではないか?と予想してみます。けど電磁式リレーではリセット掛かりましたから・・・Lo信号をハイインピーダンスにしたら良いのか?ちゃんとするには全ての信号電圧を調べて3.3Vをわずかでも超えている信号線を特定するところからやり直す必要がありそうですね。もしくは信号用の電源電圧を5Vに上げちゃうか・・・つまり5V仕様の32bit/33MHzのPCIスロットと同じ電圧を掛けてみたらどうか?と・・・
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて20台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR