PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.13 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆PIC18F14K50 PIC18F2550では大きすぎて、計画中のTK80互換マイコンボードND80ZVには組み込めそうにないことがわかりました。 USB機能内蔵のPICにはPIC18F4550、PIC18F2550のほかに20pinのPIC18F14K50があることはちょっと前から知っていました。しかしUSBに関する部分がPIC18F2550とはかなり異なっているようです。 案の定しっかり泥沼にはまってしまいました。 |
[第89回]
●火事場の馬鹿力?
人には不思議な力が備わっているようです。
ある種のパワーのようなもので、それは普段は隠れていて表には出てこないのですが、ここ一番、という場面で突如として力を発揮する、ということがあるようです。
火事場の馬鹿力とか、コケの一念などと言います。
人の一念岩をも通す、という言葉もありますですね。
前にも何回か書いたことがあります。
考えて考えて考え抜いて、もう駄目だ、これ以上はどうすることもできない、というぎりぎりのところまでいったときに、そこからもう1歩先に踏み込みますと、突然、霧が一気に晴れて、急転直下全て解決してしまう、ということを何回も経験しております。
そのぎりぎりのところまで、問い詰めていく、考え抜く、ということが大切なことなのだと思います。
もう駄目だ、とあきらめてしまう、そのもう1歩先にこそ、解決の道が用意されているのだと思います。
なんだかだんだん神がかって、まいりますですねえ。
やっぱり、あれだ。
ぼちぼち、お迎えが近いかもしれんぞお。
これもいやというほど何回も書いたことなのですが。
こと記憶力については保証付きで絶対に誰にも負けてしまう、という?おかしな自信があります。
神経衰弱というゲームがありますが、あれが全然、まったく、からっきし駄目なのですねえ。
たった今めくったばかりのカードなのに、伏せてしまうと、もうわかりません。
そういう私なのですけれど、今回の、もう駄目だ。どーしようもない、というところまできましたときに、不思議な力が突然出現したのでありますよ。
どのように考えても駄目。
最後の頼みの綱であった、逆アセンブラも解決には至りませんでした。
そりゃあ、さっさとあきらめてしまって、HIDブートローダでやっておりますことをそっくりそのままいただいてしまえば、とりあえずは動くことにはなります。
でも、それじゃ、ただのサル真似に過ぎませんでしょう。
自分の頭で考えて、理解してこそ、はじめて自分のモノにできるのですから。
なぜ、PIC18F2550で動くプログラムがPIC18F14K50では動かないのか、という疑問にフタをしてしまって、よそ様のプログラムをいただいてきて、それで済ましてしまう、つうのは、そりゃあ敗北主義でしょう。
しかしながら、この先もう打つ手が無い。
どうにも困った。大げさにいうならば万事休す。ジエンドですな。
そのとき、突然、頭の隅で、声がした…。
ような気がいたしました。
どこかで、たしかどこかで。
「PIC18F14K50に限り…」
という文章の断片を見たような…。
おお。
そういえば。
確か、PIC18F14K50用HIDブートローダのソースプログラムのどこかに書いてあったような…。
ざっくりと読んではみたけれど、ついに人様の書いたものは理解できん、ということで投げてしまったソースプログラムのどこかに。
この中のどこかに!
ありました。
見つけましたよ、ついに!
boot.incの中に。それは、書いてありました。
#define GPR0 0x2 ;// 汎用ワークのアドレスBSR( 0 番地からこちらに移動 ) #define GPRF 0xf ;// PIC 18F14K50 限定: 0xf5X アドレス参照のため. |