商品タイプで探す

Designers' Tips

2026年02月18日号

技術で探す

著者/講師で探す

Access:375

[VOD/KIT/data]脱シリアル変換IC!USBマイコン・プログラミング入門

HID/独自クラスで自在にI/O!スマートなPC計測/制御システムを作ろう

2026年2月4日(改版) / 2025年8月26日(初版)

 

  • 型名:z-usbnative-on1
  • 仕様:実習キット,講義306分,解説167頁,補足資料,実習用ソースコード
  • 定価:29,150円(税込・送料無料)
  • 著者・講師: 山田 浩之(Y-Logic)
  • 企画編集・主催: ZEPエンジニアリング株式会社
  • 著作権に関する注意事項 1人1ライセンスです.本製品のすべての映像,画像,文書テキスト,ソースコードは 著作権法によって厳格に守られています.無許可の転載,複製,転用は法律により罰せられます.
  • 【お知らせ】 WEBセミナ「脱シリアル変換IC!USBマイコン・プログラミング入門」(2025年10月25日開催)を受講された方は,リピート学習割引価格(11,000円)にてお求めいただけます. こちらからお申込みください。

同梱キットの詳細

  1. AVR-DUマイコン(AVR32DU28)搭載 USBプログラマ内蔵開発ボード
  2. USBケーブル(TypeA – MicroB)
  3. USBケーブル(TypeA – TypeC)
図1 実習キットを用いたUSB-OLED制御デバイス(HIDクラス)の作成例

本製品の説明

本製品では,USB HID クラスとVendor-specificクラス(独自クラス)の2種類を活用し,PCと自由に通信できるUSBデバイスの開発手法を学びます.「USB-シリアル変換」から一歩進んで,USBネイティブ・デバイスを自作したい方に最適な内容です.

本製品にはAVR-DUマイコンとUSBプログラマ付きの専用ボードを付属します.実装するUSB-I2C変換デバイスは,受講後の開発にも幅広く役立ちます.

近年,IoT やエッジ・デバイスの広がりにより,USB経由でPCと双方向通信するカスタム・デバイスの需要が増えています.また,従来のUSBシリアル変換ではできない,独自プロトコルによる柔軟なデータ転送や複数エンド・ポイントの活用といった高度な機能が求められる場面も増えてきました.

さらに,最近では低価格なUSB対応マイコンやオープンな開発環境が整い,以前よりUSBデバイス開発のハードルが下がっています.これらの状況が整った今こそ,「USBネイティブデバイス開発」を始める絶好のタイミングです.HIDや独自プロトコルの構築方法を実践的に学び,ローエンドからハイエンドまで幅広いUSB機器の設計力を身につけましょう.

なお,本製品は今後シリーズ化を予定しています.USB 2.0の基本から,USBホストやUSB 3.2による高速通信な,より高度な応用まで段階的に学べる「USBマイコン応用セミナシリーズ」の第一弾となります.

図2 オリジナルのEEPROM書き込み器を作成する例(Vendor Class)
図3 汎用USB-I2C/SPIブリッジとしてセミナ終了後も便利に使える
動画1 USBでは必ずホストから転送を開始する
動画2 Control転送の通信フォーマットとデバイス接続時のやりとり
動画3 USBパケットの種類とPIDの役割

目次

(1)開発環境のインストールと教材基板について

(2)USBデバイス開発の共通事項

  • USBの基本用語
  • USBの基本概念(コネクタ/ハードウェア)
  • USBの転送タイプ
  • USBデスクリプタの種類
  • USBの転送規格
  • 【実習】USBマイコンをPCに接続する
  • USBの転送モードの詳細

(3)HIDのしくみを知って正しく HID デバイスを作る

  • USBのHID Classとは?
  • HIDはReportと呼ばれるデータをやりとりする
  • HIDデバイスの構造
  • Reportのフォーマット
  • HID Classのデバイス・デスクリプタ
  • HID Report Descriptor の構造
  • HID Class の基本
  • 実は Linux のほうがデバッグしやすい
  • HID Class を覗いてみる
  • 実際の製品のデスクリプタを確認
  • 【実習】基板を HID キーボードとして認識させよう
  • 【実習】HID デバイス(キーボード)の実装
  • 【実習】HID デバイス(キーボード+ユーザ定義)の実装
  • 【実習】HID – I2Cブリッジの実装
  • 【実習】カスタム HID デバイスの制御
  • 【実習】WebHID による制御

(4)ベンダ固有デバイスを作る

  • HID vs Vendor-specific Class
  • Vendor-Specifi c Class のデスクリプタ
  • 従来の Vendor-Class の常識
  • Windows の Vendor Class 対応
  • WebUSB の登場
  • 【実習】Vendor Class デバイスの実装
  • 【実習】Vendor Class デバイスのアプリケーション・ソフト製作
  • 【実習】Vendor Class デバイスの動作

補足資料・更新情報

本製品では,講義時間の都合上,すべての内容を詳細に解説することが難しいため,理解を深めるための補足資料「6. USBセミナ補足資料2.html 」を用意しています.セミナ中に触れられなかった項目について,補足解説を多数掲載しています.

※その他の更新内容は UpdateLog.txt に記載しています.

学習のゴール

  1. HIDクラス・デバイスを実装できる
  2. Vendor-specificクラス・デバイスをマイコン側で実装できる
  3. PC側ソフトウェアからHID/カスタム・クラス・デバイスを制御できる
  4. USB-I2C変換デバイスを設計・開発し,応用できる
  5. 今後のUSB応用(USB 2.0/USB 3.2)に発展させる基礎力を身につける

受講対象

  1. USBデバイス開発に興味があり,基礎から体系的に学びたい方
  2. 「USB-シリアル変換」から一歩進んで,USBネイティブ・デバイスを自作したい方
  3. HIDやVendor-specificクラスを用いた通信を実装してみたい方
  4. IoTやエッジ・デバイス向けにPCと双方向通信するデバイスを開発したい方

講師紹介

略歴

  • 2015年 都内電子機器メーカに入社.主にUSB3.1やDisplayPort,MIPI,車載向けSer/Desなど高速インタフェース変換基板の設計開発.回路設計からファームウェア,ソフトウェア開発(C/C++)を担当
  • 2023年 「Y-Logic」として独立開業

関連商品

主な著書

  1. [VOD/KIT/data]Arm M4/M7/DSP×500MHz!STM32H7ハイスペック計測通信Module開発
  2. 世界統一規格新USBType-C攻略DVD(特集)第4部,トランジスタ技術2020年2月号,CQ出版社.
  3. 電池交換不要!消費電流1μA未満のソーラ充電式導通チェッカ,トランジスタ技術2020年10月号,CQ出版社.
  4. AVRでサクッとマイコン開発(特集すべて),トランジスタ技術2021年4月号,CQ出版社.
  5. 3桁表示ミリオーム計の設計・製作,トランジスタ技術2021年6月号,CQ出版社.
  6. 直流バイアス付きコンデンサ容量計,トランジスタ技術2021年11月号-2022年3月号(短期連載),CQ出版社.
  7. 超便利!ICの故障・真贋チェッカの製作,トランジスタ技術2023年3月号,CQ出版社
  8. 作る!わかる!USBType-C&電源(特集)第1部3-4章,トランジスタ技術2023年6月号,CQ出版社.
  9. 20mVステップUSB可変電源の製作,トランジスタ技術2023年9月号,CQ出版社.
  10. 「大安」「仏滅」を計算する六曜カレンダ回路の製作,トランジスタ技術2024年3月号,CQ出版社.
  1. USBデバイス開発に興味があり,基礎から体系的に学びたい方
  2. 「USB-シリアル変換」から一歩進んで,USBネイティブ・デバイスを自作したい方
  3. HIDやVendor-specificクラスを用いた通信を実装してみたい方
  4. IoTやエッジ・デバイス向けにPCと双方向通信するデバイスを開発したい方

本製品を購入された方へ ~視聴リンクとパスワード~

青字のリンクをクリックして,本製品購入後にメールにてお知らせしたパスワードを入力してください.

講義動画

脱シリアル変換IC!USBマイコン・プログラミング入門』講義動画.mp4


00:00:10 自己紹介
00:00:24 開発環境のインストールと教材基板について
00:01:13 MPLAB X のインストール
00:01:31 ライブラリのインストール
00:01:52 (参考) MPLAB X IDEのバグとその解決策
00:02:19 USB Device Tree Viewerのダウンロード
00:03:06 Pythonのインストール
00:04:17 Flash書き込み環境のインストール
00:06:00 重要:pymcuprogのAVR32DU28対応化
00:07:53 使用する基板について
00:19:50 USBデバイス開発の共通事項
00:20:26 USBの基本用語
00:30:52 USBの基本概念(コネクタ)
00:35:50 USBの基本概念(ハードウェア)
00:41:43 USBの転送(Transfer)タイプ
00:43:30 USBデスクリプタの種類(共通)
00:48:19 ConfigurationとInterfaceのイメージ
00:49:41 USBのデバイス・クラス
00:55:16 USBの転送規格
00:56:42 USBマイコンをPCに接続する USBマイコンの初めの一歩
00:57:17 操作手順動画
01:17:30 書き込み方法
01:28:27 USBの転送モードについて コントロール転送
01:31:54 Setup Packet Transactionの例
01:33:25 ちょっと待って,USBのパケット構造は?
01:34:31 PIDの種類 = USB Packetの種類
01:41:22 Control転送の通信フォーマット
01:42:24 デバイス接続時のやりとり(Enumeration)
01:43:12 Interrupt転送
01:45:49 Interrupt転送の通信フォーマット
01:47:44 Bulk転送
01:49:28 Bulk転送の通信フォーマット
01:50:00 Isochronous転送
01:51:20 USBの転送速度の比較
01:53:04 HIDのしくみを知って正しくHIDデバイスを作る
01:53:17 USBのHID Classとは?
01:55:54 HIDはReportと呼ばれるデータをやりとりする
01:58:12 HID Deviceの構造
02:01:52 Q&A
02:03:29 Reportのフォーマット
02:10:06 HID Classのデバイス・デスクリプタ
02:10:46 HID Report Descriptorの構造
02:12:11 HID Classの基本
02:15:34 実はLinuxのほうがデバッグしやすい
02:15:34 HID Classを覗いてみる
02:16:55 実際の製品のデスクリプタを確認
00:00:00 基板をHIDキーボードとして認識させよう
02:18:47 USB設定
02:20:27 ピン設定
02:21:04 クロック設定
02:22:07 Generate Code
02:22:14 デバイスの認識
02:24:34 HID デバイス(キーボード)の実装
02:24:41 MCC で自動生成されるコード (HID Keyboard の場合)
02:30:04 HID デバイスの設計例
02:31:05 MCC で自動生成されるコード (HID Keyboard の場合)
02:41:26 Q&A
02:46:54 HID Descriptor の生成ツール
02:49:14 HID デバイス(キーボード+ユーザ定義)の実装
02:49:26 HID デバイスの設計例
02:51:39 1 Interface でもよくないですか?
02:52:45 2 Interfaces
02:53:43 コードジェネレータは万能ではない
02:56:38 Input ReportのHandling
03:00:00 Output ReportのHandling
03:03:06 Feature ReportのHandling
03:03:51 Report Descriptor と Report のデータ構造の整理
03:05:30 HID – シリアル・ブリッジの実装方針
03:08:05 MCCの設定
03:10:00 生成されたデスクリプタを Keyboardと比較
03:11:11 デスクリプタの確認
03:11:42 Report送受信の実装 (html参照)
03:14:46 HID Reportの設計
03:17:37 ファームウェアの実装:ループバックに実装必要な箇所
03:19:59 カスタムHIDデバイスの制御
03:26:38 Q&A
03:33:26 HID制御ソフトウェアの開発
03:36:02 Windows APIによるHID制御方法
03:38:58 Windows APIによるHID制御方法の実際
03:40:04 Windows APIによるループバック確認
03:41:29 ファームウェアの実装:実装追加
03:44:08 HIDによるEEPROM Read / Writeの動作確認
03:44:16 WebHID
03:46:08 WebHIDの動作例
03:49:03 WebHIDによるEEPROMリーダ・ライタの動作
03:59:55 ベンダ固有デバイスを作る
04:01:06 HID vs Vendor-specific Class
04:07:38 Vendor-Specific Class のデスクリプタ
04:09:12 測定ツールはけっこう Vendor-specific Class
04:10:40 従来の Vendor-Class の常識
04:13:33 WindowsのVendor Class対応
04:16:46 WebUSBの登場
04:20:42 USB Module の設定変更 (MCC)
04:22:04 通常はドライバが必要
04:23:37 Microsoft OS Descriptor (MOD) v1.0対応
04:29:24 MOD対応のファームウェア実装 (html 参照)
04:34:31 String Descriptorの取得例
04:35:08 正しく実装したのにドライバが当たらないとき
04:38:01 Bulk Loopbackの実装
04:46:35 Windowsネイティブ・アプリを作る場合
04:50:49 WebUSBのデバイス側対応について
04:51:47 WebUSBのブラウザ対応
04:52:59 Bulk Loopbackの実装
04:56:32 Bulk – I2C/SPI ブリッジの実装
04:58:07 Application: お絵描きGUIでI2C OLEDを制御する
04:59:40 Q&A

講義テキスト

その他(ソースコードなど)


Translate »