ジャンクマザーのバラック起動・BIOS波形観測・メモリテスト
2010年頃のジャンクマザーボード(eMachines EL1350)を基板むき出し(バラック)で起動させ、BIOSが目を覚ます瞬間のチップイネーブル信号をオシロスコープで捕まえ、Memtest86+でメモリを叩くまでの記録。Nand2Tetrisで学んだ「フェッチサイクル」が実シリコン上で動く物理的な証拠を拾う。
実験環境
- マザーボード: eMachines EL1350(Acer系OEM / 2010年頃のAMI BIOS)
- CPU: AMD Athlon II X2 215 (2.7GHz, Dual-Core)
- CPUクーラー: Intel用リテール(バラックのためネジ止めせず載せただけ)
- メモリ: DDR3-1333 1GB × 2(計2GB)
- 計測器: OWON SDS1104(100MHz 4ch オシロ)
バラック起動とトラブルシュート
電源ピンのショート起動
フロントパネルヘッダ(RAMスロット右、ブザー横の14ピン)のうち、電源スイッチ(PWR_SW)に対応する隣り合う2ピンを金属ドライバでショートさせて起動する。
ファンは回るが画面が映らない(POSTが走らない)
原因は白い4ピン角コネクタ(ATX12V CPU電源)の挿し忘れ。24ピンだけではチップセットやファンにしか給電されず、CPUの論理回路駆動用の12Vが来ないためCPUが眠ったまま。4ピンを挿して解消。
ファン浮き(密着不足)での自動停止
CPUクーラーがネジ止めされず浮いていると、数十秒〜1分で「バツン」と強制切断される。CPU内部のデジタル温度センサー(DTS)がTjMax(約100〜105℃)を検知した瞬間、最優先のハードウェア割り込み THERMTRIP#(Active-Low)を発し、電源管理ICが物理的にATX電源を落とすため。
BIOSの低レイヤ設定
オシロで波形を拾うための下ごしらえ。
- Enable Clock to All DIMM/PCI: Enabled — 空スロットにも常時クロックを流し続ける。波形を拾うのに必須。
- Spread Spectrum: Disabled — 通常はEMI対策でクロックを微妙に揺らす(例: 99.5〜100.5MHz)機能。有効だとオシロ上で波形が左右に震えて(ジッター)ボヤけるので、解析時は無効化して周波数を固定する。
オシロでBIOS目覚めの瞬間(CE#)を捕獲
プローブと本体設定
- プローブ: 10X(10倍アッテネータ)にし、本体のCH設定も 10X に合わせる。1Xだとプローブの容量で100MHz帯が鈍る、または回路に負荷がかかりフリーズする。
- GND: 黒いワニ口を、ネジ穴の銀フチやUSBポート外枠など巨大なGNDプレーンにガッチリ接続。GNDが浮くと、空間の50Hz交流ノイズをアンテナのように拾い、画面に綺麗なサイン波がウネウネ出る。
- ターゲット: BIOSチップ(SST 25VF080B)の1番ピン(CE# / チップイネーブル)。左下の丸いくぼみのすぐ横の足。
シングルトリガー(待ち伏せ)
- 縦軸: 1.00〜2.00V/div
- 横軸: 50〜100ms/div(起動直後の通信の塊全体を俯瞰する)
- トリガーエッジ: 立ち下がり(Falling)
- トリガーレベル: 1.5V付近(3.3V→0Vの途中に罠を仕掛ける)
- OWONは
Forceボタンで待機。左上が「Wait / Ready」になれば準備完了
捕獲できた波形
- 起動前は3.3V(High)の直線
- ショート起動の数ミリ秒後、CPUが最初の機械語をフェッチするためCE#を垂直に0V(Low)へ引きずり下ろす(崖が出現)
- その後データが猛烈に流れ、線が密集して「極太の黄色いブロック」としてフリーズする。Nand2Tetrisのフェッチサイクルがシリコン上で動いた物理的証拠
オシロのUSB保存制限とdiskpart
オシロの組み込みOSはクセが強い。
- FAT32しか受け付けない(exFAT / NTFS 不可)
- クラスターサイズは4096バイト(4K)でないと弾かれる
- 最新のUSB3.0や大容量(GPT)は古いUSBコントローラと相性が悪く拒絶される
- 最強の解決策: 引き出しの奥の「超昔のUSB2.0小容量メモリ」を使うと一発で認識・保存できる
Windowsで頑固なパーティションを物理レベルで初期化してMBR/FAT32に直す手順(select disk の番号ミスに厳重注意):
diskpart
list disk
select disk 2 # ← 対象USBの番号。ミスると別ディスクを消すので厳重確認
clean
convert mbr
create partition primary size=4000
format fs=fat32 unit=4096 quick
assign保存形式は .bin(生のADC電圧データ、公式ソフトで波形再構築)/ .csv(Excel・Pythonで解析)/ .bmp(画面スクショ)。
Memtest86+でベアメタルテスト
- 現代風のGPTで焼いたUSBは「Missing operating system.」で弾かれる(レガシーBIOSはMBRブートしか読めない)
- 前述の「超昔のUSBメモリ」にMemtest86+を書けば正常ブート
- OSの力を一切借りず、CPUが物理メモリの全アドレスに0/1のテストパターンを書き込み・読み出しして回路の健全性をチェックする。ハードとソフトの境界線を体感できるツール