VID信号の切換は素直に74HC157を3.3Vで使う。4bit分しかないからVID[0]はGNDに固定する。CPU_VIDを接続するのは面倒だから、小基板の上にDIPSWを置いて代用する。DIPSWとSOFTVIDのプルアップにはVIDラインを吊っていた2.5Vに10KΩの集合抵抗。これなら簡単。
...だがしかし、
- mobile Athlon4 のデータシートにあるVID切換に使うPWROKとは、どんな信号なの?
PWROKはM/B上の3.3VやVCCAやVCCcoreが安定したことをCPUに知らせる信号。データシートにはPWROKがアサートされると、CPUはSOFTVIDピンにL8を出力し内部PLLをL3倍率でロックしてリセットを解除する、と書いてある。つまりPWROKが出るまでSOFTVID出力はオープン状態、未確定。
CPU_VIDが2.5VでプルアップされていたのでPWROKもそうだろうと思い込み、74HC157のA/Bへそのまま接続したらなぜかSOFTVIDに切換らない。テスターで電圧を測ると1.3Vしかない。え!? VCCcoreでプルアップかい!! データシートをよく読むと確かにそう書いてありました。しかたない、Trを使おう。
その後 VIDラインを吊っていた2.5Vをこの程度の追加回路の電源に使用しても問題ないようだったので、これで賄うことにしました。
改造M/B:CT-7SIDの様子
2.5VとGND, SOFTVID[4:0], HIP6301CB_VID[4:0]の信号線引出し。CPUとHIP6301CBをつなぐVID[4:0]は切断済。
(第二版回路向け。初版ではこれに加えて PWROK(AE3)も引き出す)
初版:マルチプレクサを使う
- 回路図
- CPU_VID[4:0]とHIP6301CB_VID[4:0]の接続パターンを切断。パターン上のプルアップ抵抗680Ωを除去。HIP6301CB_VID[4:0]、SOFTVID[4:0]、PWROK(AE3)、電源にする2.5VおよびGNDを引き出して74HC157の載る小基板へ。
- PWROKをTr2段で受け74HC157のA/Bへ、4極DIPSWとSOFTVID[4:1]を10KΩで2.5Vにプルアップしてそれぞれ74HC157のA入力とB入力へ、出力Yを直接HIP6301CB_VID[4:1]に接続。
- HIP6301CBの仕様上の問題点:
- HIP6301CBは一度に15%以上電圧を下げるVIDの変化を検知すると、異常電圧と判断してプロテクションを発動し出力をカットしてしまう。
- CrystalCPUIDの作者さんにお願いしてVID変更を1段ずつ行うよう対処していただき、現在は回避されている。ひよひよさん、その節はどうもありがとうございました。<(_ _)>
第二版:ワンチップマイコンを使う
- 回路図
- PIC16LF84Aで電圧の上限クリッピングやテーブル変換を行い、1段ずつVIDを下げる。消費電力を抑えかつ処理速度を確保できるクロックを模索中。電源2.5Vでの動作速度では正直苦しい。
- PWROKは使わない。SOFTVIDが未確定の間、HIP6301CBには確定したVIDが与えてあればそれで良い。DIPSWに、L8ブリッジと同値かそれ以下のコア電圧のVID値を設定することでPowerON時の初期電圧とし、また上限電圧ともみなす。
- 回路の部品定数は、この回路の出力のみがHIP6301CB_VID[4:0]に直結していることを考慮して決定している。
- 現在 L5[1]と[3]をクローズしたAthlon XP1600+(Palomino)を載せて 1.25V/6x(800MHz), 1.35V/9x(1.2GHz), 1.50V/11x(1.46GHz)の3段階設定を、Multiplier Management機能で運用中。
調整中の「第二版 回路基板」
M/Bの2.5VとSOFTVID[4:0]とHIP6301CB_VID[4:0]とはコネクタでつなぐ。仮組み、試験運用中。
おまけ:ブリッジのクローズ
穴を開けたマスキングテープを細く切り、ブリッジ上に貼ってコンダクティブペンで埋める。完全に乾くまでさわらないこと。