USB HID / implementation

SAMD51: USB MIDI controller

SAMD51でUSB MIDI controllerを試作する実装ページです。USB Device controller、board配線、class stack、descriptor、入力回路を別々に成立させます。 本ページでは、MCUそのもの、開発ボード固有回路、SDK対応、外付け部品を分け、手元の構成で再現可能かを判断します。最初に完全型番、board revision、電源、書き込み方法を固定し、最小構成が成立してから機能を追加してください。

対象SAMD51
用途USB MIDI controller
Review2026-08-03

追加調査で押さえる実務ポイント

SAMD51でUSB MIDI controllerを試作する実装ページです。USB Device controller、board配線、class stack、descriptor、入力回路を別々に成立させます。 本ページでは、MCUそのもの、開発ボード固有回路、SDK対応、外付け部品を分け、手元の構成で再現可能かを判断します。最初に完全型番、board revision、電源、書き込み方法を固定し、最小構成が成立してから機能を追加してください。

先に結論

SAMD51はUSB Host/Device、ADC、DMAを持ち、USB MIDIに適しています。Harmony、Arduino、TinyUSB等のstackを混在させません。

最小data path

input
→ debounce / ADC filter
→ event mapping
→ USB report or MIDI packet
→ PC monitor

実装順

  1. USB Deviceの最小enumerationを確認する。
  2. 固定reportまたは固定MIDI eventを送る。
  3. buttonを1個追加する。
  4. pressとreleaseを確認する。
  5. analog入力またはencoderを追加する。
  6. dead bandとrate limitを追加する。
  7. unplug/replug、suspend/resumeを試す。
  8. bootloaderまたはdebuggerで復旧する。

入力の注意

buttonはdebounce、analog stickやpotentiometerはcenter、range、noise、dead bandを測ります。入力値が1 LSB変化するたびにUSB eventを送らず、変化量と最小送信間隔を設けます。

実装前に固定する情報

同じMCU系列でも、完全型番、package、開発ボード、基板revision、bootloader、SDK、board support packageが違えば、pin、memory、USB配線、clock、書き込み方法は変わります。作業前に次を1枚の記録へ固定します。

項目記録内容
MCU完全型番、package、chip marking
board製品名、revision、購入元、回路図
power給電点、入力電圧、logic voltage
softwareSDK、toolchain、IDE、commit
programmingprobe、boot mode、runner
interfaceUSB role、UART、SPI、I2C等
observationconsole、LED、logic analyzer、電流
recoveryknown-good firmware、erase方法
result合格条件、失敗条件、再現回数

販売ページの写真、別revisionのpinout、同系列MCUのsampleは補助資料です。現物と公式回路図を一致させてから使います。

共通の最小検証

  1. 外付け回路をすべて外す。
  2. board単体へ公式または既知の最小firmwareを書き込む。
  3. LEDまたはUARTで起動を確認する。
  4. 使用する周辺機能を1つだけ追加する。
  5. logic analyzer、USB descriptor、電流波形などで観測する。
  6. reset、完全電源断、cable再接続を試す。
  7. 異常系を1つずつ加える。
  8. known-good firmwareへ戻せることを確認する。

電源と安全

絶対最大定格は通常動作条件ではありません。配線変更は無通電で行い、GPIO電圧、USB VBUS、外部電源、motor電源、battery電圧を混同しません。USB給電と外部給電を併用する場合は、逆流経路とpower selectorを回路図で確認します。

次の場合は作業を中止します。

  • MCU型番またはboard revisionを確認できない
  • target voltageやlogic voltageが不明
  • 公式sampleが無改変で動作しない
  • recovery方法がない
  • 異常発熱、焦げ、変色、接触不良がある
  • motorやUSB機器の必要電流を供給できる根拠がない

記録と受入基準

  • clean workspaceから再buildできる
  • 別個体へ書き込める
  • 完全電源断後も同じ結果になる
  • 3回以上の試験で観測結果が一致する
  • timeout、overflow、brownout、通信断を検出できる
  • 書き込み失敗後に復旧できる
  • 使用pin、電圧、周辺機能を説明できる
  • source、ELF、map、binary、設定、console logを保存している

次に確認するページ

参考リンク

  • https://www.microchip.com/en-us/product/ATSAMD51J20A - 公式製品情報、データシート、SDKまたはboard資料。
  • https://www.microchip.com/en-us/products/microcontrollers - 公式製品情報、データシート、SDKまたはboard資料。
  • https://ww1.microchip.com/downloads/en/DeviceDoc/SAM_D5x_E5x_Family_Data_Sheet_DS60001507G.pdf - 公式製品情報、データシート、SDKまたはboard資料。

確認日: 2026-08-02

Amazonの検索結果

購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。

次に読むとよい記事