平成26年12月20日
MPLAB Harmonyの使い方(10) USBライブラリの導入(3) 誤りの訂正
12/16の記述に誤りが見つかりました。訂正します。
サンプルプログラム cdc_com_port_dualの動作内容を誤って説明していました。
このプログラムはPC側から受信したデータの内でUSBパケットの先頭の1バイトのみを異なるCOMポートからPCに送信します。
つまり、人間がキーボード入力するような低速での送受信なら全てのデータがコールバックされますが、テキストファイルの送受信ではUSBのパケットサイズに分割されたときの最初の1バイト目だけがコールバックされ、それ以外の文字は捨てられます。
具体例:
・人手によるキー入力(送受信データは一致する)
入力データ(PCからの送信データ):1234
返信データ(PCでの受信データ) :1234
・テキストファイルの送受信(送受信データは不一致) USBのパケットサイズを8バイトにした場合。
送信データ:123456789abcd
受信データ:19
先日は動作検証を人手でキー入力したので気が付かなかった。
プログラムの内容をほとんど把握しないで変更したので、このようなミスが入りやすくなります。
最終的には、もう少し細部まで検証しますので、どこかで見つかるミスではあります。
これに懲りて、プログラム内容をある程度トレースした上で文書を書くようにします。
そのためにブログの更新がまた開いてしまうのですが、あまりいい加減な内容では記録を残す意味もないのでやむなしです。
取りあえずの目標は、ある程度プログラムの流れを理解して、USBの転送速度を大まかにでも測ってみることとします。