PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 2011.7.11

前へ
次へ
目次へ戻る
ホームページトップへ戻る
☆USBデバッグツール

フリーのUSBデバッグツールSnoopy.proの紹介です。

[第56回]

●USBデバッグツール

[第52回]のテストはうまくいきましたから、それ以上あれこれ調べる必要はありませんでしたが、実はここまでくるまでが一苦労といいますか、そりゃあもう大変でした。
その過程では、一体信号が出ているのかいないのか、それすらもわからない、という情けない状態を少しずつクリアしながらここまでやっとのことでたどりつきました。

たとえば[第52回]で行った連続送信のテストでも、うまくいったからよかったのですけれど、もしPIC18F4550が1文字もRS232Cで送信しなかったり、おかしなデータを送信したり、というようなことになったとしたら、いったいどこに原因があるのか、途端に困ってしまいます。
事実、WriteFile()関数を使ったプログラムに成功するまでの間は、そういう困った状態の中でもがいてきたのです。

そんなときにRS232Cでしたら信号の状態をモニタできるツールもありますし、[第54回]のように信号をオシロスコープで観測することも可能です。
しかしUSBの場合、通信速度がけた違いですから、とても信号を直に見ることはできません。
仮に直に観測することができたとしても、RS232Cとは違い複雑なルールで通信を行っていますから、信号波形から通信の状態を判断する、などということはとてもできません。

USB信号の状態をモニタするアナライザ装置なるものもあるようですが、相当に高価なもののようです。
たまたま悪戦苦闘しているときに、インターネットでフリーのツールをみつけました。
ちょいとクセがありますし、まあ、自分でUSBのためのプログラムを作ろうという方以外には使い道のないツールですが、USB通信がうまくいかなくて、いったいどこがどうなっているのかさっぱり見当がつかない、というような場合などには、それなりに役に立つかもしれませんので、ご紹介することにいたします。

●Snoopy.Pro

なにしろネーミングがこんなのですから、最初はちょっと躊躇いたしましたよ。
ちょっとヤバいんじゃないかなあって。
でもダウンロードして使ってみると、どうしてどうして、なかなかのすぐれものです。



こちらのサイト(http://sourceforge.net/projects/usbsnoop/)からダウンロードできます。

こちらは、WARNING(警告)です。


ちょいとコワいことが書いてあります。
むむ。
思わず躊躇してしまいますですね。
確かに。
量販店などでWindowsがプリインストールされたパソコンを購入して、ただそのままお使いになっていらっしゃるというようなお方などは、このテのものは、インストールされないほうがよろしいかと。

You might damage your system with this tool.
って、そりゃあ、ちょいとこわい。
Don’t use it if you don’t know what you’re doing!!!!
だそうですよお。
ああ。your marriageはジョークでしょうねえ。

なるほど、ご警告いただいております通り、私のWindows98SEの場合ですけれど、Snoopy.proを先に終了すると間違い無くシステムがハングアップしてしまいます。
Snoopy.Proを残した状態でWindowsを終了する分には、おとなしくおねんねしてくれます。

ボクだけ先に寝るなんてぜったいにヤダ!ということのようです。
うう。
ひょっとしてこれは作者のジョークだったりして。

まあ。私の場合、システムのハングアップなど日常茶飯事ですし、ブルーの画面なども日によっては数回ほどもお目にかかったりすることも珍しくありませんし、Windowsの再インストールなど、もう何回行ったか記憶にないほどですから、そんなことは意にも介しませんけれど。
ブルーの画面に遭遇すると、パソコンがこわれてしまった、とつい思ってしまう、というようなお方は、確かに近づかないほうがよろしいかもしれません。

[第52回]で行った連続送信テストをSnoopy.Proでモニタしたところです。

Snoopy.ProはUSBの送信、受信をソフトウェア的にモニタしてログを取ることができます。
画面でdownとあるのは、ホストからデバイスへの方向の通信を示しています。
WriteFile()の実行は5回連続して行いました。

うん。ちゃんと5回、「中身のある」downが見えます。
最初は73、61、6d、69で、sami…です。
次は6e、61、74、73で、nats…です。
3番目は73、68、69、7aで、shiz…です。
4番目は79、75、6b、75で、yuku…です。
最後は61、72、61、75で、arau…です。
おお、しっかりモニタできているようですね。

Timeのところを見ますと、11.489、11.524、11.549、11.585、11.633になっています。
単位は秒のようです。
あまり正確とは言えないようなのですが、それでも30〜40msec程度間が空いているのがわかります。

左にある「+」をクリックすると、送信データの全部が表示されます。

CPUをつくろう!第483回(2010.4.22upload)を再編集

PICでUSBを![第56回]
2011.7.11upload

前へ
次へ
目次へ戻る
ホームページトップへ戻る