PIC32MX

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

AC97 コーデック (Realtek (旧Avance Logic) 製 ALC650) を実装し、AD 入力、DA 出力ともに正常に行えることを確認しました。 しかし、DAC 側には HPF (ローカット・フィルタ) が入っていて、DC が出力できないという残念な事実も判明しました。 ALC650 には…

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

AC97 コーデックとインターフェースする信号の波形写真を示します。 まだコーデック自体は実装しておらず、ソフトウェアの方もアプリケーションの入出力部分は実装していません。 ダブル・バッファ構成の DMA バッファおよび割り込みハンドラで 1/2 転送完了…

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

PIC32MX220F032B には DMA コントローラが 4 ch 内蔵されています。 ひとつの DMA コントローラを入出力に兼用できないので、AC97 コーデックの ADC 入力と DAC 出力とを同時に利用する場合には DMA コントローラを 2 ch 使用することになります。 DMA 用の…

PIC32MX220F032B (4) -- AC97 コーデックを接続する (1)

PIC32MX に AC97 コーデックを接続する実験をしています。 と言っても、現在使用している基板上に実装スペースがないので、実際にはまだ接続しておらず、信号をオシロで観察しながらプログラムを書いている状況です。 当初 DMA や割り込みがうまく起動せず悩…

PIC32MX220F032B (3) -- SPI/I2S クロックの検討 (3)

PIC32MX220F032B に接続した (ノンオーバーサンプリング) ディジタル・オーディオ DAC に約 440 Hz の正弦波を出力するプログラムを下に示します。 正弦波は DDA (Digital Differential Analyzer) アルゴリズムで発生させており、左右のチャンネルに 90° 位…

PIC32MX220F032B (2) -- SPI/I2S クロックの検討 (2)

USB モジュール内蔵の PIC32MX2XX シリーズで、ディジタル・オーディオ用の 48 kHz / 44.1 kHz サンプリング周波数に対応するビット・クロックを発生させるブロック図を下に再掲します。 このブロック図の上側の USB PLL の系統で 48 kHz 用クロックを発生さ…

PIC32MX220F032B (1) -- SPI/I2S クロックの検討 (1)

PIC32MX のフラッシュに書き込む「プログラマ」ができたので、PIC32MX 上で走る自前の「プログラム」を書き始めました。 例によって、ディジタル・オーディオ関係の応用として、DAC や MMC/SD カード・スロット などを接続することを考えています。 検討した…

LPC1114FN28/102 (23) -- ICSP 接続で PIC32MX のフラッシュに書き込む (8)

icsp1114 のソース・パッケージを公開しました。(→ こちら) それにともない、HEX パッケージは削除しました。 参考にした「pic32prog」が GPLv2 ライセンスなので、CMSIS ライブラリ関連を除き、GPLv2 ライセンスを継承しています。

LPC1114FN28/102 (22) -- ICSP 接続で PIC32MX のフラッシュに書き込む (7)

LPC1114 用のプログラムができました。 Yahoo! ボックス上においてあります。(→ こちら) とりあえず、HEX パッケージのみを公開します。 ソース・パッケージは近日公開の予定です。 (2012/12/30 追記: ソース・パッケージを公開しました。それにともない、HE…

LPC1114FN28/102 (21) -- ICSP 接続で PIC32MX のフラッシュに書き込む (6)

「Psuedo Operation」の「SendCommand()」は JTAG TAP (Test Access Port) のインストラクション・レジスタ (IR) に値を設定するもので、「XferData()」はデータ・レジスタ (DR) に値を設定すると共に、その値が書かれる前の DR の値を読み出す操作です。 両…

LPC1114FN28/102 (20) -- ICSP 接続で PIC32MX のフラッシュに書き込む (5)

JTAG インターフェースには (プローブ側から見れば) TDI と TMS の 2 本の出力があり、TDO の 1 本の入力があります。 TDI と TMS は独立で、ハードウェア的に言えば、それぞれがパラレル・データから「シリアライズ」されてシリアル・データとして出力され…

LPC1114FN28/102 (19) -- ICSP 接続で PIC32MX のフラッシュに書き込む (4)

前回述べた「キー・シーケンス」を発行したあと、ターゲットが正常に ICSP モードに移行したかどうかを簡単に直接的に調べる方法は存在しないようです。 プローブ側から ICSP モードで、まず IDCODE レジスタやステータス・レジスタを読み出して、期待した値…

LPC1114FN28/102 (18) -- ICSP 接続で PIC32MX のフラッシュに書き込む (3)

「110 円のマイコンで 220 円のマイコンに書き込む」シリーズの 3 回目ですが、「書き込む」側と「書き込まれる」側を明確にするために、タイトルを少し変えました。 進展としては、いわゆる「LED チカチカ」プログラム (Microchip 社のコンパイラ XC32 に付…

LPC1114FN28/102 (17) -- ICSP 接続で PIC32MX のフラッシュに書き込む (2)

前回の記事の最後に示した図を下に再掲しますが、これは Microchip 社のドキュメント PIC32MX Flash Programming Specification (DS61145 Revision K, July 2012) の pp.13 「Figure 5-4」を書き直したものです。 JTAG の 1 クロック分と、2-wire 4-phase IC…

LPC1114FN28/102 (16) -- ICSP 接続で PIC32MX のフラッシュに書き込む (1)

LPC1114FN28 を使って、PIC32MX マイコンのフラッシュにプログラムを書き込む実験をしています。 4 線式 JTAG 接続ではなく、2 線式の ICSP 接続 (2-wire 4-phase) を LPC1114 の SPI (4 ビット転送モード) を使って実現しています。 PC とはシリアル接続を…