datasheet-and-refmanual-reading について
datasheet-and-refmanual-readingは、未知のMCU資料を読むエージェント向けのスキルです。レジスター、ピン、タイミング、正誤表の情報を探す手順を示し、関連する表の照合を重視します。
主な機能
- 01データシートとリファレンスマニュアルの用途
- 02リファレンスマニュアルの読み進め方
- 03レジスターマップの確認項目
- 04ピンと信号の相互照合
- 05タイミング・電気条件・正誤表の確認
活用シーン
- 01未知のチップ向けドライバー開発の開始
- 02レジスタービットの動作確認
- 03ファームウェアやPCB確定前の電気条件確認
- 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 の機能を反映します
コメント
Markdown 対応