USB

PIC16F145x (1) --- クロックの周波数変動

PIC16F1454/1455/1459 (以下 PIC16F145x と略記) は、Enhanced Mid-Range (14 ビット・コア) に属するマイコンで、USB (デバイス) モジュールを内蔵していることが特長です。 それぞれ、 PIC16F1454 — 14 ピン、アナログ・モジュールなし PIC16F1455 — 14 ピ…

PIC18F14K50 (19) --- aitendo USB-GPIO

先日 (3 月 24 日)、aitendo の店頭 (出入り口前の廊下に置かれたダンボールの中) で PIC18F14K50 使用の小さなマイコン・ボードを見つけ (単価 199 円)、2 つほど買ってきました。 そのままでは動作しませんでしたが、水晶発振回路のコンデンサを換装して正…

PIC18F14K50 (18) --- USB-Blaster もどき

Altera の FPGA/CPLD に書き込むための「JTAG ケーブル」として、現在はパラレル・ポート接続の「Byte Blaster MV」相当の自作品を使用しています。 「メイン・マシン」の PC にはパラレル・ポートがなく、「サブ・マシン」のノート PC のパラレル・ポートに…

USB-MIDI (13)

今回は USB-MIDI コンバータの MIDI IN 側の処理の話です。 MIDI OUT 側に比べて処理は複雑になります。 それは、 ランニング・ステータスに必ず対応する必要がある 入力される MIDI メッセージに対応して MIDI パケットを組み立てる必要がある USB ホスト側…

USB-MIDI (12)

今回は USB-MIDI コンバータの MIDI OUT 側の処理の話です。 USB-MIDI イベント・パケットから直接に内蔵音源をドライブするのではなく、MIDI のシリアル・データに変換して MIDI 端子から出力するという機能に限れば、(MIDI IN 側に比べて) その処理は非常…

USB-MIDI (11)

システム・エクスクルーシブ・メッセージ (System Exclusive Message) はステータス・バイト 0xF0 に始まり 0xF7 (EOX: End Of eXclusive) に終わる、MIDI メッセージでは唯一の可変長のメッセージです。 USB-MIDI イベント・パケット内のペイロードは 3 バ…

USB-MIDI (10)

MIDI ケーブルの中を流れる MIDI データは、「バイト・オリエンテッド」なビット・レート 31.25 kbps、データビット数 8、パリティなし、1 ストップビットの調歩同期形式です。 一方、USB を介してやりとりされる MIDI データの形式は「バイト・オリエンテッ…

USB-MIDI (9)

前回の規格書付録 B のディスクリプタと同等のディスクリプタを。C 言語の初期値付き配列の形で表現したものを下に示します。 LPC11U35 を使った FM 音源プログラムの USB-MIDI 機能部分で、このディスクリプタを使ってコンパイルして MIDI OUT 機能が正常に…

USB-MIDI (8)

MIDIStreaming サブクラスの規格書[*1]の付録 B に示されているディスクリプタを元に解説を加えます。 規格書は、「usb.org midi」 を検索キーワードとしてググればすぐに見つかります。 ここで示すディスクリプタは、 2 箇所を除いて規格書の付録 B と同じ…

USB-MIDI (7)

MIDIStraming 要素の MIDI ジャックや「エレメント」のトポロジーは、実際にはクラス固有ディスクリプタで表現されます。 MIDIStreaming の場合 (AudioStreaming なし) のコンフィギュレーション・ディスクリプタ(群) の構成図を左に示します。 先頭に「Std.…

USB-MIDI (6)

MIDIStreaming インターフェース・サブクラスの例として、規格書の付録 B "Example: Simple MIDI Adapter (Informative)" のディスクリプタで示されている (外部) MIDI 入力 1 系統、(外部) MIDI 出力 1 系統の最も基本的な USB-MIDI 機能を実現するトポロジ…

USB-MIDI (5)

AudioControl インターフェース・サブクラスのディスクリプタのクラス固有 (Class Specific) 部分には、USB から制御可能な要素および要素間の接続の「トポロジー」を抽象化して記述することになっており、エレメントごとに記述方法が規格化されています。 …

USB-MIDI (4)

「レイテンシ」の観点から結論を先に言うと、USB 2.0 ハイスピード・ハブを介して接続した方が、USB 1.1 FS ネイティブなポートに接続した場合よりもレイテンシが小さくなります。 後述するような条件では、HS ハブ経由では最短 250 μs (2 マイクロフレーム)…

USB-MIDI (3)

USB の規格では MIDI データの取り扱い方法が標準のクラスとして定められていて、その規約に従っているデバイスならばユーザがドライバをインストールする必要はなく、自動的に OS の標準のドライバがロードされ動作します。 MIDI データは独立のクラスでは…

USB-MIDI (2)

LPC11U35 には USART は 1 系統しかなく、実際に同時に 2 つの MIDI OUT を得ることはできないので、UART を 2 系統持つ (無印) EZ-USB (旧 Anchor Chips / 現 Cypress 製 AN2131SC) でケーブル・ナンバー対応の出力振り分け処理を追加したプログラムを作成…

USB-MIDI (1)

第 14 回アナログシンセ・ビルダーズ・サミットで USB-MIDI についてプレゼンを行ったのですが、10 分の持ち時間を大幅に超過したあげく内容も十分に説明できなかったので、ブログ上に解説の記事を書いていこうと思っています。 USB 規格上は出力エンドポイ…

LPC11U35/トラ技 ARM ライタ (4) -- FM音源プログラム TG11U35 (4)

トランジスタ技術 2014 年 3 月号付録の「トラ技 ARM ライタ」用のFM音源プログラム「TG11U35」USB-MIDI サポート版のソース・パッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。 (2014/12/06 追記: パッケージ…

LPC11U35/トラ技 ARM ライタ (3) -- FM音源プログラム TG11U35 (3)

LPC11U35 基板用のFM音源プログラム「TG11U35」に USB-MIDI 機能を追加しました。 近日中にソース・パッケージを公開します。 USB に関しては VID/PID の問題 (基本的に VID は「誰か」の所有物) があるので、パッケージに同梱するオブジェクト・ファイル…

PIC18F14K50 (2)

「ライタ」側ではなく、18F14K50 の「応用回路」側の回路図を下に示します。 と言っても、「周辺」としてつながっているのはシリアルだけで、しかも RS232C インターフェース回路は外付けなので、ボード上には抵抗しかありません。 あとは、USB 「B」コネク…

PIC18F14K50 (1)

Microchip 社の PIC18F14K50 は ROM/RAM 容量は少ないですが、USB インターフェースを内蔵していて、価格は秋月で DIP パッケージの場合で 200 円と安く、かねがね使ってみたいと思っていました。 ところが、手持ちの PIC ライタは AKI-PIC プログラマ Ver.3…

FR60 マイコン基板 (22) -- USB-MIDI (7)

FR60 版の USB-MIDI プログラムは、当然、FR60 用のベースボード上で作成しているわけです。 ベースボード上の LCD が電源投入時のデフォルト状態のまま、1 行だけ薄ぼんやりと見えているのは寂しいので、FM音源プログラムの LCD 表示部のプログラムを追加…

FR60 マイコン基板 (21) -- USB-MIDI (6)

FR60 用の USB-MIDI プログラムが動作するようになりました。 OSDC のドットクロック周波数を 48 MHz に設定して USB クロックとして使う「0 円 48 MHz オシレータ」機能もプログラムして、実際に動くことを確かめました。 3種類の USB-MIDI をまとめて PC …

FR60 マイコン基板 (20) -- USB-MIDI (5)

現在、FR60 用の USB-MIDI プログラムを作成中です。 例によって、バルク出力データは読み捨て、LED を点滅させるだけの段階ですが、データは通って来ているようです。 FR60 用の USB ターゲットのサンプルプログラム (USB マウス・エミュレーション) のオブ…

USB-MIDI (4)

STARM 基板に続き、オプティマイズ製のボード、「MINI EZ-USB」用の USB-MIDI プログラムを書いてみました。 MINI EZ-USB ボードは、購入後サンプルプログラムを試しただけで、長い間放置したままでしたが、最近になって、やっと AVR の書き込み器として「実…

STARM マイコン基板 (15) -- USB-MIDI (3)

オーディオストリームを外して、MIDI ストリームだけにしたプログラムで試してみましたが、各 OS での動作には変化ありませんでした。 ただし、Windows Me でドライバがロードされたというのは思い違いで、実際には「不明なデバイス」となって動作していませ…

STARM マイコン基板 (14) -- USB-MIDI(2)

「Audio Speaker」プログラムを改造して、USB-MIDI 機能を実現する試みの続きです。 エンドポイントからデータを取り出し、USART から出力する部分のプログラムも作成して、実際に USB-MIDI インターフェースとして機能するようになりました。

STARM マイコン基板 (13) -- USB-MIDI(1)

FR60 基板の「フル機能版」のプログラムの次は STARM 基板のベースボード作成の順番ですが、指定の SD カードコネクタをまだ入手していなくて、ヘッダピンを取り付けられないでいます。 そういうわけで、ベースボードおよびフル機能版プログラムの作成は SD …