mcpField
D
datasheet-and-refmanual-reading

datasheet-and-refmanual-reading

github.com/mohitmishra786開発269327 回インストール18 週間前に更新
リポジトリ

datasheet-and-refmanual-reading について

datasheet-and-refmanual-readingは、未知のMCU資料を読むエージェント向けのスキルです。レジスター、ピン、タイミング、正誤表の情報を探す手順を示し、関連する表の照合を重視します。

主な機能

  1. 01データシートとリファレンスマニュアルの用途
  2. 02リファレンスマニュアルの読み進め方
  3. 03レジスターマップの確認項目
  4. 04ピンと信号の相互照合
  5. 05タイミング・電気条件・正誤表の確認

活用シーン

  1. 01未知のチップ向けドライバー開発の開始
  2. 02レジスタービットの動作確認
  3. 03ファームウェアやPCB確定前の電気条件確認
  4. 04リファレンスマニュアル内の周辺機能情報の特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill datasheet-and-refmanual-reading

インストール後、Claude Code で/datasheet-and-refmanual-readingを入力して読み込まれたか確認します。

詳細

データシートとリファレンスマニュアルの読み方

目的

MCU のデータシートとリファレンスマニュアルを体系的に読む方法をエージェントに教えます。ファームウェアに関係するセクション、ピン表とレジスタマップの相互参照方法、エラッタ、脚注、条件付きフィールドなど、ドキュメントの落とし穴を避ける方法を扱います。skills/baremetal/peripherals-from-datasheet とは統合されていません。このスキルではドキュメントの読み方を扱い、もう一方のスキルではドキュメントをもとにしたドライバーの書き方を扱います。

使用する場面

  • 不慣れなシリコンでドライバー開発を始めるとき
  • レジスタビットの動作が曖昧なとき
  • PCB/ファームウェアの最終承認前に電気的特性やタイミングの制約を確認するとき
  • skills/baremetal/peripherals-from-datasheet(実装に重点)を補完するとき
  • 「RM のどこに X が載っていますか?」という質問に答えるとき

ワークフロー

1. ドキュメントの種類
ドキュメント主な用途
データシートピン配置、最大定格、パッケージ、主な機能
リファレンスマニュアル(RM)レジスタマップ、ビットフィールド、クロックツリー、ペリフェラルの動作
プログラミングマニュアル(PM)Cortex-M コア、NVIC、MPU、デバッグ(ARM のドキュメント)
エラッタシートファームウェアでの回避策が必要になるシリコンの不具合

データシートで何があるかを確認し、RM でどのようにプログラムするかを確認します。

2. RM の初回確認順序
1. Memory and bus architecture (address map)
2. Reset and clock control (RCC / CGU)
3. GPIO / pin multiplexing
4. Target peripheral chapter (e.g. USART, SPI, DMA)
5. NVIC / EXTI interrupt mapping table
6. Electrical characteristics (only if timing-critical)
7. Errata — search peripheral name
3. レジスタマップの抽出チェックリスト

各レジスタについて、次の項目を確認します。

  • ペリフェラルベースからのオフセット(メモリマップ表と照合します)
  • リセット値(読み取り・変更・書き込みのデフォルト値に影響します)
  • 読み取り専用/書き込み専用/1 を書き込むとクリアされるビット
  • モードに依存するフィールド(表の「Notes」を確認します)
  • 副作用:フラグのクリア、自動クリアビット、0 の書き込みが必須の予約ビット
/* Good — named constants from RM bit table */
#define USART_CR1_UE   (1U << 13)
#define USART_CR1_TE   (1U << 3)

/* Bad — magic numbers without RM citation */
*(volatile uint32_t *)0x40011000 = 0x2000;
4. ピン/信号の相互参照
Schematic net → Datasheet pin table (AF number)
             → RM GPIO chapter (MODER, AFR)
             → Peripheral chapter (USART_TX on PA2 = AF7)

リセット後のデフォルト状態(アナログモード、プル、JTAG ピン)を必ず確認します。

5. タイミングと電気的特性の落とし穴
  • 外部バスモード(FSMC、SDIO)のセットアップ時間/ホールド時間
  • ADC のサンプリング時間とソースインピーダンス(データシートのグラフ)
  • 負荷容量に対する最大 GPIO トグルレート
  • リセット時にのみサンプリングされるブートモードピン
6. エラッタの確認手順
Symptom matches errata?
├── Yes → apply documented workaround in driver
└── No  → verify silicon revision (DBGMCU_IDCODE / UID)
7. エージェントの使用方法
/datasheet-and-refmanual-reading Find STM32F4 USART baud rate formula and required clock source

よくある問題

症状原因対処法
レジスタの動作が正しくない間違ったシリコンリビジョンのエラッタを参照しているまず ERRATA シートを確認します
AF が動作しないDS のピン名と RM の AF 表を混同している両方の表を照合します
DMA が断続的に動作するバッファーのアライメントに関する脚注を見落としているRM の DMA 章の注記を確認します
クロックが一致しないDS のバナーにある最大周波数を使用し、電圧範囲の表を確認していない動作条件の表を使用します

関連スキル

  • skills/baremetal/peripherals-from-datasheet — ドライバー実装のワークフロー
  • skills/baremetal/mmio-and-bit-manipulation — 安全なレジスターアクセス
  • skills/baremetal/gpio-baremetal — RM の表を使ったピンマルチプレクサー設定
  • skills/kernel-dev/device-tree — Linux のバインディングは RM の機能を反映します

コメント