18F1320 を使って色々試しながら幾つか作りたいアイディアを考えていますが、将来的にはパソコンと接続してデータ交換を行う必要が出て来ると感じています。 プログラム定数の書き換えや、ロギング・データの転送と言った場面を想定しています。 これらは MPLAB と PICkit3 があれば何でも出来るのですが、このブログで作る道具を使う人皆が開発環境に投資してくれるとは限りません。 USART で RS-232C と言う手もありますが、PC から RS-232C が無くなっていますから、変換ケーブルなどに余分な出費が生じます。 そこで USB PIC の中から 18F2550 に挑戦することにしました。

PIC18F2550 は Microchip 社が提供しているソースライブラリーを使うことで、比較的簡単にUSB機能を使えるようですが、私はアセンブラに拘りたいと思います。 USB は未経験ですが、PIC18F2550で USB CDC デバイス製作に挑戦です。

Webで調べてもアセンブラで USB CDC を動かして、詳しい情報を公開しているページは見つけられませんでした。 Cで実現しているページを参考に少しづつ試してみるつもりです。 ターゲットは秋月電子通商さんの USBマイコンボード 完成品(PIC18F2550) です。 PICkit3 を接続する為にもブレッドボードに挿して実験開始です。

DSC00123

とりあえず PIC18F1320 で作ったLED点滅が動いたところです。 ヘッダーファイルの差し替えと TIMER0 定数変更( 内臓8MHz → 外付け20MHz による PLL で 48MHz )だけですんなり動いています。

この挑戦は色々調べて試行錯誤が必要になると思います。 これまでのように動作確認してから記事を書き始めるのではなくて、試行錯誤の様子も記事にする予定です。 ステッピングモーターや内臓EEP-ROMの読み書きなど積み残しの課題と並行して少しずつ紹介しますから、気長にお付き合い願えれば幸いです。


以下は関連記事のインデックスにします。

USB CDC 初受信 
 ようやく最初のホストからのSETUPコマンドを受信jするところまで来ました。

USB CDC RESET  
 最初に出くわしたトラブル、ホストからのRESETを検出できないと言う経験について書いてみます。

USB CDC BDT 
 バッファ・ディスクリプタ・テーブル(BDT)について説明します。

USB CDC 初期設定 
 USB機能を使う為の初期設定について説明してみます。

USB CDC Get_D(device)受信 
 これまで紹介した初期設定の下で、Get_Descriptor ( device ) を受信するまでの高位割り込み処理について説明します。

USB CDC IN トランザクション(1) 
 Get_Descriptor ( device ) に続く IN トランザクションの経験について説明します。

USB CDC IN トランザクション(0) 
 前回記事で受信したSETUPステージ( Set_Address()  )に対するステータスステージに当たる、空の IN トランザクションについて説明してみます。

USB CDC IN トランザクション(2) 
 Get_Descriptor ( device ) に対するデータステージについて、経験したことを紹介します。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。