VCP(仮想COMポート)DEMOを動かす

SkyDriveにうpしたソースコードのファイルのURLが全部別のに
変更されていた!少し前に仕様が変わって10MB以下のファイルでも
直リン不可になってしまっていたらしいorz

人が見に来るようになる前にソースのダウンロード先だけは
確実に落とせるように変更しておきました。(←うつけ)
幸い画像の直リンはまだ出来るみたいだから画像の処置は様子見ですよぅ。




マイコン使って仮想COMポートを実現する…今ではいろんな手法があります。
tiny45などのAVR使って簡易なCDCなんかもできたりしていやはや
すごいな〜なんて。CQ-STARMに乗っかってる石にもUSBのインタフェ
ースがサポートされてるので当然のごとく仮想COMポート(以下VCP)の
デモなんか用意されてるわけですが…

これがなぁ…コンパイラのバージョンにシビアでコンパイルすら通らなか
ったり通ってもwarningわんさか出たりそれ潰してフラッシュしてUSBが認
識された!と喜んだのもつかの間ポート開いた瞬間に固まったりでもう一回
warningで出てたとこ穴のあくほど見て修正してやった開いた!と思ったら
今度は文字が送信出来てなくてもう一回ソースや海外の掲示板の投稿を穴
のあくほど見てまわりまわった挙句結局最適化のせいだとわかって修正し
てやっとこ使える代物になれたかなでも所詮はDEMOだと言ってしまえば
それで終わりですがそう言い切るのもなんだかな…あーつかれた。
いかんまた前振りが長い。

20110129追:
107系のUSB-OTGの物とソースを一本化し、なおかつエンドポイント3をダブルバッファリング
にしてさらに大量のデータを受信したときに取りこぼすバグを修正しました。こちらからどうぞ。

おソースはこちらです。USBライブラリV3.1.0のデモを適用してます。
上で長々と書いた私の無駄な努力が修正されています。
(どうやらV3.0.0でもまだ不具合あったみたいですねorz)
20101221追:
 今気づいたけどダブルバッファリング化して動作をさらに安定化させたverにふつー
 のバグ満載verを上書きした状態で放置してました。でもローカルのソースも破棄して
 残してないからもう修正できないやごめんね(テヘッ♥



でもこのV3.X.X系ってライブラリの構成が大幅に変わってますね。
調べてみるとこの規格に合わせたといったところでしょうか。
てかこれだいぶ前の情報じゃないか…。
ねむいさんの知識は断片的で非常に危ういです。日々お勉強はつづきます。


あと私が使いやすいように独自の修正加えてます(これまで
公開したのもほとんど私仕様にしちゃったけど)。"Nemui"でコードを
サーチすると何やってるか分かると思いますが、重要なのを一つ。

void Virtual_Com_Port_init()関数開始直後にあるGet_SerialNum();
をコメントアウトしてUSBシリアルナンバを"STM3210"固定にしてます。
どうもこの関数がとってくるユニークIDとやらがうまくシリアルナンバを
反映してくれない。他のUSBデバイスだとあまり気にならないのですがVCPは
COMポートが増設され、違うUSBポートにさすごとにどんどんCOMポートが
増殖していくのでシリアルを固定にしてそれを防がなくてはなりません。
(多分うまくやる方法があるんでしょうけどね、現状はこれで満足…)






以下ねむいさん流仮想COMポートの消し方(WinXP32bit用)
1.提供された仮想COMドライバにアンインストーラがあれば
  それを使用する。
2.1.が無い場合、
  環境変数に画像の変数を追加する
  変数名:DEVMGR_SHOW_NONPRESENT_DEVICES
  変数値:1
3.パソコンを再起動。
4.ファイル名を指定して実行で"COMPMGMT.MSC"と入力、実行。
5.「デバイスマネージャ」を選択し、ウインドウの表示(V)をクリック。
6.プルダウンメニューの「非表示のデバイスを表示」をクリック。
7.「デバイスマネージャ」-> ポート(COMとLPT)をクリックすると
  半透明のCOMポートが見える。不透明は現在物理的に繋がっているデバイス。
8.「削除」で憎いあいつを消す!これでCOMポートが消えます。

でも何度も言いますが提供された仮想COMドライバにアンインストーラが
あれば必ずそれを使用しましょうね。












9.たまにB.S.O.D.になって泣く

Comments

Post a Comment








Go to top of page