---
name: Phase C — Phase 2A Step ③ Pin Map 完了 (Tang Console 138K)
description: 2026-05-04 Phase 2A Step ③ 完了. Tang Console 138K pin map 確定 (clk50=V22 / rst_n=AB13 / led[0..7]=PMOD1 D21/E21/D22/E22/F20/F19/W20/W19). Source = 486tang CST + Sipeed schematic V32001C 二重検証. on-board LED は FPGA 制御不可 (battery=hardware/status=config-system/cfg=reserved)
type: project
originSessionId: 0cf4a1ae-6062-4aed-b857-272f5cd07fee
---
# Phase 2A Step ③ Pin Map 完了

**日付**: 2026-05-04
**Source**: `nand2mario/486tang/src/boards/console.cst` + `Tang_Mega_138K_Console_32001C__Schematics.pdf` (Sipeed 公式)

## 確定 pin map (Phase 2B / 2C で再利用)

| Signal | FPGA Pin | 用途 | 備考 |
|--------|----------|------|------|
| **clk50** | **V22** | System 50MHz clock | MS5351M PLL 出力, `IO_TYPE=LVCMOS33` |
| **rst_n** (s0) | **AB13** | User button S1 (active LOW) | `PULL_MODE=UP` 必須, EX_KEY.0 系統 |
| led[0] | D21 | PMOD1_IO7 (LED expansion) | external LED board 必要 |
| led[1] | E21 | PMOD1_IO6 | 同上 |
| led[2] | D22 | PMOD1_IO5 | 同上 |
| led[3] | E22 | PMOD1_IO4 | 同上 |
| led[4] | F20 | PMOD1_IO3 | 同上 |
| led[5] | F19 | PMOD1_IO2 | 同上 |
| led[6] | W20 | PMOD1_IO1 | 同上 |
| led[7] | W19 | PMOD1_IO0 | 同上 |

全 LED `IO_TYPE=LVCMOS33 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3`

## 二重検証

- `486tang/src/boards/console.cst` (実プロジェクト由来)
- Sipeed schematic V32001C (公式) — SOM_BTB pages の `BANK<N>_<PIN>_<SIGNAL>` 表記で各 pin が確認できた
  - 例: `BANK2_D22_IOT140B` → FPGA pin D22 (486tang の led[2]/PMOD1_IO5 と一致)

両 source で完全一致 → high confidence ✅

## On-board LED の honest 整理

schematic 全 17 ページ精読の結果:

| LED | Sheet | Drive 源 | FPGA 自由制御 |
|-----|-------|---------|--------------|
| **LED1 (Status RGB)** | FPGA_CFG (page 17) | READY/DONE/SYS_ACT (configuration system) | ⚠️ 技術的に可能だが configuration system と干渉 risk. 通常は触らない |
| **LED2 (Battery RGB)** | PWR_MAIN (page 3) | TP4057 charge controller (hardware) | ❌ 完全不可 |
| **D1 (White Power/CFG)** | FPGA_CFG (page 17) | RECONFIG 系統 | ❌ User 制御外 |

**結論**: Tang Console は retro game console 用設計。「FPGA から自由に blink できる on-board LED は存在しない」。**外部 LED PMOD board (PMOD1 接続) が公式想定の user LED 表示路**.

## Why

`feedback_phase_c_silicon_existence_claim.md` 「Rei は実在する」の物理開門のための pin 確定. Phase 2B (LED Blinky) 着手の前提条件.

## How to apply

- Phase 2B Verilog プロジェクト作成時に上記 CST 記述をそのまま流用
- Phase 2B 物理 demo には **外部 LED PMOD board** または **PMOD1 ピンに自前 LED + 抵抗 (470Ω 程度)** が必要
- ハードウェア追加が困難な場合の代替: led[0] のみ駆動 + Programmer の `Read Status Register` で IO 状態確認 (視覚 blink なし)

## 物理 demo 用追加部品候補

- **Sipeed LED PMOD board** (公式): 8 LED expansion, PMOD 標準互換
- **自作**: PMOD1 コネクタ pinout 確認後、 LED + 抵抗 470Ω + ジャンパワイヤ
- どちらも追加コスト ¥500-2000 程度

## 副次発見

- Tang Console は MS5351M (programmable PLL) で system clock 生成. 50MHz 固定ではなく後で変更可能 (UART 経由設定)
- **FPGA 内部 OSC** も使える (通常 210MHz, frequency divider で /2-/126 から選択, BANK4 経由)
- EX_KEY.2 = 第3 user button (詳細未調査) — 必要時に再調査
- 25MHz 水晶 (Y2) が PCIe REFCLK として別系統

## Phase 2B 着手前 checklist (将来用)

- [ ] PMOD LED board 入手 OR 自前 LED+抵抗+ジャンパ準備
- [ ] PMOD1 pinout 確認 (Sipeed wiki Tang Console + console.cst の PMOD1_IO0-7 マッピング)
- [ ] Verilog source: 50MHz / 2^25 ≈ 1.5Hz blink で時定数を確保 (DRIVE=8 で過電流防止 + ゆっくり blink で温度上昇余裕)
- [ ] CST file 上記から copy
- [ ] SDC (timing constraint) で `clk50` を 50MHz 宣言
- [ ] SRAM mode で download (Phase C safety protocol)
- [ ] 30-60秒点滅 → 温度確認 → power off → 5分冷却

## 参照

- `project_phase_c_phase1_complete.md` (Phase 1 + Phase 2A Step ②)
- `project_phase_c_step1_initiated.md` (MAC + skeleton 準備)
- `project_phase_c_safety_protocol.md` (SRAM mode + 温度 protocol)
- `feedback_phase_c_silicon_existence_claim.md` (二段階主張)
- 公式 schematic: `C:\Users\user\Downloads\Tang_Mega_138K_Console_32001C__Schematics.pdf`
- 486tang CST: https://github.com/nand2mario/486tang/blob/main/src/boards/console.cst
