楽天市場
[無料でホームページを作成] [通報・削除依頼]

続4 8ピンPICでUSB 16FUSBの改良版


Diego Mariano López様の"Inalambrico USB 12F675"は16FUSB-HIDのアセンブラコードを、
RAM使用量が64バイト、flash使用量が1kワードに収まるように改良したアセンブラコードです。

Inalambrico USB 12F675
http://www.ucontrol.com.ar/forosmf/programacion-en-asm/inalambrico-usb-12f675/


RAM使用量を64バイト以下にしたメリットは非常に大きく、
例えばUSBを介してデバイスのI/Oを操作するUSB接続デジタル入出力モジュール(USBIO)ならば、
なんと12F5XX以外のすべての8pinデバイスにソフトウエアUSBスタックを搭載することが可能となります。



                                     flash(kbyte) RAM  EEPROM
img_20140821-115544.jpg


移植上の留意点
?ソースコードのコメントはスペイン語で書かれています。

?オリジナルの"Inalambrico USB 12F675"ではEEPROMを使用していますが、これはI/O処理部のユーザーコードが
大きくなったためストリングデスクリプタをEEPROM領域に逃がしたのであって、EEPROMの使用は必須ではありません。
またデスクリプタの記述変更によりストリングデスクリプタを出力しないように変更することも可能です。

?オリジナルのソースコードではMOVWF命令を用いてTRISレジスタを書き換えていますが、USBIOを搭載する場合には
この記述が問題になるかもしれません。(必要に応じてANDWF,IORWFに変更したほうがよい。)

?サブルーチンLevantarTablaは0x300以降に配置してください。



サンプルプログラム(ソース付き)
PIC12F1822を使用したシリアルインターフェースを用いた双方向通信機能(擬似CDC)

「8ピンPICでUSB −16FUSBの移植−」「続8ピンPICでUSB −ターミナルソフトからの操作−」
で使用したファームウエアと置き換えて使用できます。

16FUSB-hid との互換性確保のため、オリジナルから以下の点を変更しています。
?プロダクトIDの変更 0x0001 -> 0x0628
?レポートデスクリプタのサイズ 29 -> 25
?レポートデスクリプタ本体
?EEPROMの開放、ストリングデスクリプタをフラッシュ領域に記述。
?サブルーチンMain新設
?サブルーチンProcessOut新設
?上述したTRISレジスタの処理

ダウンロード先

Bequest333のページ(別館)

http://hp.vector.co.jp/authors/VA058115/

https://drive.google.com/file/d/1DS4OJP6lR_83Q1sEIS-OEP8ym9yRB3jr/view?usp=drivesdk


























.