Skip to content

Instantly share code, notes, and snippets.

@GOROman
Created August 26, 2026 04:06
Show Gist options
  • Select an option

  • Save GOROman/d3a56a2ff2e2b564f47574abd7cb107c to your computer and use it in GitHub Desktop.

Select an option

Save GOROman/d3a56a2ff2e2b564f47574abd7cb107c to your computer and use it in GitHub Desktop.
Akizuki 117185 / ArduEZ Dual 5-States Logic Probe spec analysis

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)を突き合わせて作成した。

出典

機能構成: 2つの独立した表示系統

製品名の "Dual Power" と "Dual 5-States" は別々のLED群を指す。

1. Dual Power(電源監視LED)

3列ある電源ライン(各系統5V/3.3V切替可能)の出力状態を表示する。

意味
電源出力が正常
過負荷/ショート検出。保護回路が作動し出力を遮断。ブザーで警告音(beep)を鳴らす

起動時にはPOST(Power-on Self-Test)として、各系統の電源出力を順次確認する動作がある(公式PDFのオリジナル説明は3電源(Three DC Power Supply)モデル向けの文言の使い回しだが、本製品にも同種のPOST/beep動作が明記されている)。

2. Dual 5-States(ロジックプローブLED)

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点灯)。

タイミング図(公式PDFより転記、1周期=1秒として正規化)

赤・緑それぞれのアクティブ区間とギャップを、1秒周期のサイクルとして図示したもの。数値は秒。

低速帯: <100Hz

1周期 = 1.0s
赤: 0.3s ON → (0.2s 重なり/遷移区間) → 0.7s
緑: 0.3s 遅れて開始 → 0.3s ON 区間

赤がONの0.3s後に緑がONになり、0.2s→0.3sの間隔で赤緑が入れ替わる、比較的ゆっくりした交互点滅。

中速帯: 100Hz〜100kHz

1周期 = 1.0s
赤: 0.15s ON → 0.1s 遷移 → 0.35s
緑: 0.15s 遅れて開始 → 0.35s

低速帯のおよそ半分の周期で交互点滅(赤0.15s/緑0.15s、遷移0.1s)。

高速帯: >100kHz

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.binradare2(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=1P2M1/P2M2 のつもりが実際は P0S/P0SR を叩いてしまうバグ、正しくは SFRS=20x89/0x8A)を確認済み。破壊的ではないが、意図通りには動作しない。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment