PIC32MX

ICSP 接続で PIC32MX のフラッシュに書き込む (16)

単価 380 円で秋月で販売されている PIC32MX270F256B-50I/SP (クロック 50 MHz / フラッシュ 256 KB / SRAM 64 KB) に LPC1114FN28/102 使用の ICSP ライタで書き込めることを確認しました。 PIC32MX220F032B 用の USB MIDI ホスト・プログラムの HEX ファイ…

ソフト S/PDIF トランスミッタ (18)

ソフト S/PDIF トランスミッタ・プログラムを PIC32MX 用にも作りました。 DDA によるサイン波発生プログラム部分を含む CPU 負荷率は約 14 % で、 STM32F401: 6 [%] × 84 [MHz] = 5.04 [MHz] STM32F407: 3 [%] × 168 [MHz] = 5.04 [MHz] PIC32MX : 14 [%] ×…

ICSP 接続で PIC32MX のフラッシュに書き込む (15)

約半年前 (2014 年 4 月) から単価 360 円で秋月で販売されている PIC32MX250F128B (フラッシュ 128 KB / SRAM 32 KB) に LPC1114FN28/102 使用の ICSP ライタで書き込めることを確認しました。 PIC32MX220F032B 用の USB MIDI ホスト・プログラムの HEX フ…

PIC32MX220F032B USB MIDI ホスト (15)

PIC32MX USB MIDI ホストの基板を「箱入れ」しました。 と言っても、従来の基板ではなく、ケースにおさめるための基板を新たに作成しました。 メインのチップの PIC32MX220F032B が 220 円なので、今回は各パーツの単価が 220 円を超えないようにという「縛…

ICSP 接続で PIC32MX のフラッシュに書き込む (14)

LPC1114 / NUC120 / ATmega / Arduino 共用のソース・パッケージと、Arduino のスケッチをアーカイブしたものを公開しました。(→ こちら) ファイル名は。LPC1114/NUC120/ATmega/Arduino 版、Arduino スケッチ版それぞれ、 pic_icsp-20130722.zip icsp_arduin…

ICSP 接続で PIC32MX のフラッシュに書き込む (13)

Arduino ライブラリを使わない「素」の AVR ATmega 用プログラムに「空っぽ」のメイン・スケッチ・ファイルを追加し、「形式上」 Arduino スケッチ化することができました。 (Arduino 1.0.5 のみ確認、他のバージョンでは未確認) 最も簡単には、 20130706 版…

ICSP 接続で PIC32MX のフラッシュに書き込む (12)

LPC1114 / NUC120 / ATmega 共用のソース・パッケージを公開しました。(→ こちら) ファイル名は pic_icsp-20130706.zipです。 Atmega 版のソース・プログラムは C 言語で記述されたプログラムとなっており、Arduino の「スケッチ」としては実現できていない…

ICSP 接続で PIC32MX のフラッシュに書き込む (11)

移植第 2 弾として、Atmel AVR ATmega328P/168/88 用のプログラムを作り、動作を確認しました。 フラッシュ 8 K、RAM 1 K におさまったので、ATmega88 でも動作します。 「ハードウェア」としては、専用に回路を作るほかに、既存の「Arduino」(互換ボード) …

ICSP 接続で PIC32MX のフラッシュに書き込む (10)

LPC1114 / NUC120 共用のソース・パッケージを公開しました。(→ こちら) ファイル名は pic_icsp-20130619.zipです。

ICSP 接続で PIC32MX のフラッシュに書き込む (9)

2 線式 ICSP 接続によるフラッシュ書き込みでは、JTAG のクロック 1 周期分のデータ転送を ICSP クロック 4 周期に対応させて転送しています。 LPC1114FN28/102 による ICSP 書き込みプログラムでは、ARM の IP と思われる SSP モジュールを 4 ビット SPI モ…

PIC32MX220F032B USB MIDI ホスト (14)

pic32mx USB MIDI ホスト・プログラムにロースピード・デバイス (1.5 Mbps) を接続する例として、もあ (morecat_lab) さん開発の USB-MIDI コンバータ・デバイス MICO (MIDI-In COnverter) / MOCO (MIDI-Out COnverter) USB-MIDI Converter もこ を試してみ…

PIC32MX220F032B USB MIDI ホスト (13)

pic32_usbhost プログラム (簡易ハブ・サポート版) のバグ修正版のソース・パッケージをいつもの Yahoo! ボックス上に置きました。(→こちら) ファイル名は pic32_usbhost_hub-20130505.zipです。

PIC32MX220F032B USB MIDI ホスト (12)

pic32_USBhost プログラム (簡易ハブ・サポートなし版/あり版両方とも) に USB ホスト --> USB デバイス方向の動作にバグが発覚しました。 USB デバイス --> USB ホスト側には問題はないので、キーボード・コントローラを接続して MIDI 出力を得るだけの使い…

PIC32MX220F032B USB MIDI ホスト (11)

USB ハブの最も重要な機能は、ホストに接続できる USB デバイスの数を増やすことです。 その意味では、USB ハブには 2 ポート以上が必要で、ホスト側のソフトウェアとしては、2 個以上の USB デバイスと USB ハブ自体との合計 3 個以上の USB デバイスを管理…

PIC32MX220F032B USB MIDI ホスト (10)

今回は Microchip 社の USB ホスト・スタックの概要について説明します。 USB ホスト・スタックを利用したプログラムは、下のような三層のレイヤー構造で構成されます。 アプリケーション USB クライアント (クラス)・ドライバ USB ホスト・ドライバ 最下層…

PIC32MX220F032B USB MIDI ホスト (9)

基本的に USB デバイス 1 個の接続のみに対応する Microchip の USB ホスト・スタックを使って、無理やり USB ハブに簡易的な対応をする方法について説明します。 まず、今回は USB ハブについての主に一般的な話です。 1 台のホストに 2 台のハブと 3 個の…

PIC32MX220F032B USB MIDI ホスト (8)

簡易ハブ・サポート版の「pic32_usbhost_hub」プログラムのソース・パッケージを Yahoo! ボックス上に置きました。(→こちら) ファイル名は pic32_usbhost_hub-20130417.zipです。 この版では C32 コンパイラが必要になります。 XC32 コンパイラでコンパイル…

PIC32MX220F032B USB MIDI ホスト (7)

Microchip 社の USB ホスト・スタックは「ハブ」をサポートしておらず、複数デバイスの接続には対応していません。 それを無理やりな方法で、ハブのポートひとつだけを有効として、ハブ自体は単なる「電線」として機能させ、制限付きですが何とかハブ越しの…

PIC32MX220F032B USB MIDI ホスト (6)

ヒープ・サイズ修正版の「pic32_usbhost」プログラムのソース・パッケージを Yahoo! ボックス上に置きました。(→こちら)

PIC32MX220F032B USB MIDI ホスト (5)

「pic32_usbhost」プログラムに「バグ」というか「設定ミス」が発覚しました。 それは、「ヒープ・サイズ」の設定が小さすぎるために、接続するデバイスによっては正しく動作しないということです。 オリジナルのデモ・プログラムでは、ヒープ・サイズの設定…

PIC32MX220F032B USB MIDI ホスト (4)

「pic32_usbhost」プログラムのソース・パッケージを公開しました。 Yahoo! ボックス上に置いてあります。(→こちら)

PIC32MX220F032B USB MIDI ホスト (3)

PIC32MX220F032B USB MIDI ホスト・プログラムのソース公開に向けて作業しています。 といっても、ソース全体ではなく、Microchip のオリジナルのデモ・プログラムに対する「差分」という形で「パッチ」を公開する予定です。 2012 年 10 月 25 日版のライブ…

PIC32MX220F032B USB MIDI ホスト (2)

自作の USB-MIDI コンバータ・デバイスを入力方向、つまり、 MIDI IN → USB MIDI デバイス → USB ケーブル → USB ホスト 方向のデータの流れに対応させて USB MIDI ホスト・プログラムをテストしたところ、「バグ」というか、「仕様」というか、不具合が見つ…

PIC32MX220F032B USB MIDI ホスト (1)

PIC32MX220F032B による USB MIDI ホスト・プログラムの USB MIDI デバイス → USB MIDI ホスト の方向の確認はまだですが、 USB MIDI ホスト → USB MIDI デバイス の方向のデータの流れについては、システム・エクスクルーシブ・メッセージのバグと、ランニ…

PIC32MX220F032B ベースボード (3)

今回作成したベースボードの LPC1114FN28/102 (ICSP プログラマ) 部分と PIC32MX220F032B との接続部分の回路図を下に示します。 前回の回路と違うのは、 USB デバイス/ホスト接続のための回路 ICSP プログラマ部分との切り離しに対応 Pinguino MX220 の回路…

PIC32MX220F032B ベースボード (2)

Microchip 社の PIC18/PIC24/PIC32 用 USB ライブラリの USB MIDI デバイスのデモ・プログラムと、USB MIDI ホストのデモ・プログラムを PIC32MX220F032B 用に修正して動作させることができました。 「単価 220 円のマイコンによる USB MIDI ホスト」の実現…

PIC32MX220F032B ベースボード (1)

PIC32MX220F032B には USB OTG モジュールが内蔵されていて、USB デバイスにも USB ホストにもなれます。 しかし USB ホストとして機能するためには接続する USB デバイスに対して電力を供給する能力が必要とされます。 そこで、USB 関係の実験のために外部…

PIC32MX220F032B (10) -- AC97 コーデックを接続する (7)

今回は、また別の AC97 コーデック (Analog Devices Inc. 製 AD1881) との接続を試しています。 AD1881 は AC97 コーデックとしては、かなり初期の製品で、ADC/DAC ともに 16 ビット分解能のものを 2 ch 内蔵するだけです。 その他の特長としては、 スレーブ…

PIC32MX220F032B (9) -- AC97 コーデックを接続する (6)

別の AC97 コーデック (SigmaTel 製 STAC9708) との接続を試してみました。 これは古い 5.1 ch 出力オーディオ PCI カードから取り外してきたものです。 STAC9708 には 18 ビット分解能の DAC が 4 ch 内蔵されており、オーディオ・カードでは 2ch DAC 内蔵…

PIC32MX220F032B (8) -- AC97 コーデックを接続する (5)

Realtek 製 AC97 コーデック ALC650 の DAC 入力の HPF について調べてみました。 ALC650 は DAC 6 ch と SPDIF 出力 2 ch とを備えています。 ADC はステレオ 2 ch のみですが、その変換出力のディジタル・データを (フロント) ステレオ出力に「ループバッ…