Akizuki 117185 (ArduEZ Dual Power + Dual 5-States Logic Probe Breadboard) — 5-State Logic Probe Spec
対象: 秋月電子通商 販売コード 117185(ArduEZ製 "Dual Power+Dual 5-States Microcomputer Logic Pen Breadboard"、20807-2)。MS51PC0AE(Nuvoton 1T-8051系)を内蔵し、ブレッドボード上で2チャンネルの簡易ロジックプローブ機能を提供する。
このメモは tang-1k-nu-link(GOWIN Tang Nano 1KでこのMCUのICP読み書きを行うプロジェクト)の副産物として、実機ドキュメントとファームウェアダンプ(original.bin, SHA-256 d63435329b80a43ee33f10555edd7ada4d5209146b381c4d293952d47ce8eba6)を突き合わせて作成した。
- 秋月電子 商品ページ: https://akizukidenshi.com/catalog/g/g117185/
- ArduEZ公式PDF「Breadboard LED lights and warning sound description」(3ページ目が本製品の章): https://arduez.com/wp-content/uploads/2023/09/ArduEZ_Three_DC_Power_Supply_Breadboard_Instructions_warning_light_and_-operation_light_en.pdf
original.bin(実機からICP経由で読み出したAPROMダンプ、32768バイト、使用領域は0x0000-0x1D2E)をradare2(r2 -a 8051)で逆アセンブルして確認
製品名の "Dual Power" と "Dual 5-States" は別々のLED群を指す。
3列ある電源ライン(各系統5V/3.3V切替可能)の出力状態を表示する。
| 色 | 意味 |
|---|---|
| 緑 | 電源出力が正常 |
| 赤 | 過負荷/ショート検出。保護回路が作動し出力を遮断。ブザーで警告音(beep)を鳴らす |
起動時にはPOST(Power-on Self-Test)として、各系統の電源出力を順次確認する動作がある(公式PDFのオリジナル説明は3電源(Three DC Power Supply)モデル向けの文言の使い回しだが、本製品にも同種のPOST/beep動作が明記されている)。
TEST-1 / TEST-2 の2つの独立したテストポイントがあり、それぞれに赤/緑2色LEDが付く(公式PDFでは "each with two sets of independent lights" と表現)。
5状態の定義:
| 状態 | LED表示 |
|---|---|
| High(High電位) | 赤 点灯 |
| Low(Low電位) | 緑 点灯 |
| 未接続/フローティング | 消灯 |
| 周波数帯検出(パルス入力) | 赤/緑 交互点滅。点滅速度で3つの周波数帯を判別(実質的にはこの1状態が3パターンに細分化され、High/Low/Floatingと合わせて計5状態という呼称になっている) |
最大測定周波数は1MHzまで。LEDはいずれも active-low(信号がLowのときにLED点灯)。
赤・緑それぞれのアクティブ区間とギャップを、1秒周期のサイクルとして図示したもの。数値は秒。
1周期 = 1.0s
赤: 0.3s ON → (0.2s 重なり/遷移区間) → 0.7s
緑: 0.3s 遅れて開始 → 0.3s ON 区間
赤がONの0.3s後に緑がONになり、0.2s→0.3sの間隔で赤緑が入れ替わる、比較的ゆっくりした交互点滅。
1周期 = 1.0s
赤: 0.15s ON → 0.1s 遷移 → 0.35s
緑: 0.15s 遅れて開始 → 0.35s
低速帯のおよそ半分の周期で交互点滅(赤0.15s/緑0.15s、遷移0.1s)。
1周期 = 1.0s
赤: 0.1s ON → 0.233s 区間、遷移 0.067s
緑: 0.1s 遅れて開始 → 0.233s
最も速い交互点滅(赤0.1s/緑0.1s、遷移0.067s)。3段階のうち最速。
→ 3帯域とも「赤ON時間 : 緑ON時間 : 遷移時間」の比率はほぼ共通で、周期だけが約2倍ずつ短くなっていく設計(低速→中速で概ね1/2、中速→高速でさらに短縮)。ホスト(MCU)側は入力パルスのエッジ間隔を計測し、3つの閾値(100Hz, 100kHz)で帯域を判定してから、対応する固定パターンでLEDを交互点滅させていると推測される。
original.bin を radare2(r2 -a 8051 -c "pd <len> @ 0")で逆アセンブルし、setb/clr によるビット単位I/O操作を全数集計したところ、以下のポート・ビットへの直接書き込みが見つかった(ソフトウェアフラグ用の内部RAMビット 0x20.0/0x20.1 と割込み許可ビット IE.7(0xA8.7)を除く):
| ポート | 操作されているビット |
|---|---|
| P0 (0x80) | .0 .1 .2 .6 .7 |
| P1 (0x90) | .0 .2 .3 .4 .5 .6 |
| P2 (0xA0) | .1 .2 .3 .4 .5 |
| P3 (0xB0) | .3 .4 .5 |
これは本リポジトリの firmware/rgb_scale_demo/main.c が前提としている「2組のRGB(3色)LED、計6ピン(P0.7 / P2.1 / P2.3 / P1.3 / P1.5 / P1.6)」という仮定より大幅に広い。P3ポート(電源制御や入力バッファ切替に使われている可能性)は現行ファームウェアで全く考慮されていない。
実際には:
- ロジックプローブLED(赤/緑のみ、2色)は上表のうちのどれか4本(TEST-1×2 + TEST-2×2)
- 残りのP0/P1/P2/P3ビットは電源系統(Dual Power)の制御・監視や、プローブ入力バッファの切替、ブザー(PWM0_CH1 = P1.4、これは今回の集計に出てこない=常時PWM出力のみでsetb/clrされていないため妥当)などに使われていると考えられる
→ 正確なピン割当を確定するには、この表の各ビットを起点にした個別のデータフロー解析(どのタイミングで読み書きされるか、周辺のTimer/ADC設定と組み合わせて)が必要。今回はここまでの粒度に留める。
firmware/rgb_scale_demo/main.cの「2 RGB LED」仮定は、実機ドキュメントと照らすと不正確な可能性が高い(実際は赤/緑2色 × 2プローブ、かつ電源監視用の別LEDがある)。書き込み前に実機シルクやLED色を目視確認するか、上記のP3ポート含めた広いGPIO操作を追加解析することを推奨。- 同ファームウェアには別途、SFRページ切替(
SFRS=1でP2M1/P2M2のつもりが実際はP0S/P0SRを叩いてしまうバグ、正しくはSFRS=2で0x89/0x8A)を確認済み。破壊的ではないが、意図通りには動作しない。