Microchip Application Libraries v2010-04-28 ( MCHP_App_Lib_v2010_04_28_Installer.zip ) をダウンロードしてインストールしてみた。これとて、半年か1年したら、非公開になってるんだろうが。。。。
Microchip Application Libraries v2009-07-24 で開発したソースが動くか試してみた。
想像どおり、動かない。動かないというか、コンパイルが通らない。それなのに古いフレームワーク消しちゃうんだよな~Microchipは。
で、キーボードのサンプルを比較して、どう新旧で変わったか確認してみた。
1. usb_config.h
#define USB_INTERRUPT → #define USB_POLLING
2. usb_descriptors.c
#include "GenericTypeDefs.h"
#include "Compiler.h"
#include "usb_config.h"
#include "./USB/usb_device.h"
#include "./USB/usb_function_hid.h"
↓
#include "./USB/usb.h"
#include "./USB/usb_function_hid.h"
3. Keyboard.c
#include "GenericTypeDefs.h"
#include "Compiler.h"
#include "usb_config.h"
#include "./USB/usb_device.h"
#include "./USB/usb.h"
#include "HardwareProfile.h"
#include "./USB/usb_function_hid.h"
↓
#include "./USB/usb.h"
#include "HardwareProfile.h"
#include "./USB/usb_function_hid.h"
上記について、
1.は、ぶっちゃけどうでもいい。動作はそう変わらないと思う。
2.、3.は、新フレームワークで使用するときは要変更。
で、修正したら、コンパイルは通った。動くかどうかは未確認だが、おそらく動くんだろうなぁ。。。
Microchip Application Libraries v2009-07-24 で開発したソースが動くか試してみた。
想像どおり、動かない。動かないというか、コンパイルが通らない。それなのに古いフレームワーク消しちゃうんだよな~Microchipは。
で、キーボードのサンプルを比較して、どう新旧で変わったか確認してみた。
1. usb_config.h
#define USB_INTERRUPT → #define USB_POLLING
2. usb_descriptors.c
#include "GenericTypeDefs.h"
#include "Compiler.h"
#include "usb_config.h"
#include "./USB/usb_device.h"
#include "./USB/usb_function_hid.h"
↓
#include "./USB/usb.h"
#include "./USB/usb_function_hid.h"
#include "GenericTypeDefs.h"
#include "Compiler.h"
#include "usb_config.h"
#include "./USB/usb_device.h"
#include "./USB/usb.h"
#include "HardwareProfile.h"
#include "./USB/usb_function_hid.h"
↓
#include "./USB/usb.h"
#include "HardwareProfile.h"
#include "./USB/usb_function_hid.h"
上記について、
1.は、ぶっちゃけどうでもいい。動作はそう変わらないと思う。
2.、3.は、新フレームワークで使用するときは要変更。
で、修正したら、コンパイルは通った。動くかどうかは未確認だが、おそらく動くんだろうなぁ。。。
PR
ちょうど1年ほど前にUSBキーボードを自作する際に利用したフレームワーク、USB Framework v2.5a(Microchip Application Libraries v2009-07-24.zip)がネット上から完全に駆逐されている。。。。
1年前は最新版だったけど、今では4世代前のフレームワークということになるらしい。OSにたとえると、7→Vista→XP→98→95ということで、未だにwindows95を使っていることに相当する。
来年になると、8世代前になるのか。。。そうすると、7→Vista→XP→98→95→3.1→3.0→386→2.0でWindows2.0相当になるか。。。。新フレームワークで作り直さなきゃだめかな?
そういやWindows2.0って漢字Talk6とそう時代は変わらなかったと思うけど、完成度は雲泥の差だったよな。
1年前は最新版だったけど、今では4世代前のフレームワークということになるらしい。OSにたとえると、7→Vista→XP→98→95ということで、未だにwindows95を使っていることに相当する。
来年になると、8世代前になるのか。。。そうすると、7→Vista→XP→98→95→3.1→3.0→386→2.0でWindows2.0相当になるか。。。。新フレームワークで作り直さなきゃだめかな?
そういやWindows2.0って漢字Talk6とそう時代は変わらなかったと思うけど、完成度は雲泥の差だったよな。
microchipのサイトにあるUSBフレームワークには、ジョイパッド、マウス、キーボードのサンプルが入っていて、簡単にそれらが実装できるようになっている。が、残念ながらPIC18F2550用のが用意されていない。
で、仕方なくブートローダーにUBWとかいうよくわからないものを使ったり、microchipのではない独自のUSBフレームワーク使ったりしているのかも。
microchipのサイトにあるUSBフレームワークは、それに同梱されているHID bootloaderからUSB経由でロードできるようになっているので、今は賞味期限の切れたと思われるUBWやらを使わずに、すなおにmicrochip謹製HID bootloaderを使うべき。
しかし、これまたPIC18F2550用がない。
さて、どうしよう。。。。。 心配ご無用!
USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex がそのまま使える。
ちょっとまて、チップが違うぞ、という人もいるが、気にしない。動けばいいのだ。2550と4550は2が4になっただけでほとんど同じもの。
ちなみにフレームワークもPICDEM FSUSB用のが無修正で動く。これも4550用だけど気にしない。へたにインクルードファイルをPIC18F2550用に切り替えるとエラーる。
で、仕方なくブートローダーにUBWとかいうよくわからないものを使ったり、microchipのではない独自のUSBフレームワーク使ったりしているのかも。
microchipのサイトにあるUSBフレームワークは、それに同梱されているHID bootloaderからUSB経由でロードできるようになっているので、今は賞味期限の切れたと思われるUBWやらを使わずに、すなおにmicrochip謹製HID bootloaderを使うべき。
しかし、これまたPIC18F2550用がない。
さて、どうしよう。。。。。 心配ご無用!
USB Device - HID - HID Bootloader - C18 - PIC18F4550.hex がそのまま使える。
ちょっとまて、チップが違うぞ、という人もいるが、気にしない。動けばいいのだ。2550と4550は2が4になっただけでほとんど同じもの。
ちなみにフレームワークもPICDEM FSUSB用のが無修正で動く。これも4550用だけど気にしない。へたにインクルードファイルをPIC18F2550用に切り替えるとエラーる。
ファームの書き換えが、貴重なPORTBを使用するのが気に入らなかったので、HID bootloader をカスタマイズしようとしたものの、エラーが出てビルドできなかった。
容量が不足するのが原因らしく、要らないロジックを削除して対処するのが正しいやり方みたい。
でも、いらなそうなロジックを消すだけではダメで、無くてもどうにか我慢できそうなロジックを徹底的に削っていく必要がある。
一応、C18 student editionでビルドできるHID bootloader(改) (RE3でファーム書き換え)を、ここにおいておく。
https://blog.cnobi.jp/v1/blog/user/0f56daaba6df0301724d7ee2124f5219/1250949685
容量が不足するのが原因らしく、要らないロジックを削除して対処するのが正しいやり方みたい。
でも、いらなそうなロジックを消すだけではダメで、無くてもどうにか我慢できそうなロジックを徹底的に削っていく必要がある。
一応、C18 student editionでビルドできるHID bootloader(改) (RE3でファーム書き換え)を、ここにおいておく。
https://blog.cnobi.jp/v1/blog/user/0f56daaba6df0301724d7ee2124f5219/1250949685