USB対応PICの簡易インタフェース
せっかくUSBインタフェースを持っているPICなので、
パソコンからEEPROMの内容確認、もしくは編集が出来ると良いかな?
ということなのだけど、パソコン側のプログラムが面倒。
というか、プログラム環境がないので、どうしよう???
で、ターミナルソフトが使えないかと、ためしてみました。
WIN2000に付属するハイパーターミナルで確認すると、
1文字の送信はOKなのですが、複数バイトの送信をファイル送信で送るとうまく行きません。
で、ためしにフリーソフトのテラタームを使ってみたら、、、
うまくいきました。
USBの動作確認とか、EEPROMの書き込み等には十分に使えそう!
ということで、あとはEEPROMの書き込みなのだけど、、、、
PICメーカーさんのフリーのCコンパイラーにはツールが用意されている、
だけど、、、参考書の使用例はなぜか外付けのEEPROMを使ってます。
ちょっと、やな予感。
おまけ、上記テスト時の概要とPIC側プログラム抜粋
0 OK・・・ターミナルより0をキー入力した時のPICからのデータ
2 OK・・・ファイル転送したときのPICからのデータ
ファイルの具体的な内容・・・207000000
07000khz 00・・・ターミナルより1をキー入力した時のPICからのデータ
以下PIC側プログラム抜粋
USBCheckBusStatus();
if(UCFGbits.UTEYE!=1)
USBDriverService();
CDCTxService();
if((usb_device_state >= CONFIGURED_STATE)&&(UCONbits.SUSPND==0))
{
if(getsUSBUSART(input_buffer,64)) // データ受信あり?
{
switch(input_buffer[0]) // command チェック
{
case '0': // 0 OK
if(mUSBUSARTIsTxTrfReady())
putrsUSBUSART("0 OK \n");
break;
case '1': // 表示周波数を返す
if(mUSBUSARTIsTxTrfReady())
mUSBUSARTTxRam(Disp_Freq, 16);
break;
case '2': // 周波数設定 発信周波数セット
S_Freq = 0;
for(i=0; i<8; i++)
{
S_Freq = S_Freq * 10 + (input_buffer[i+1] - 0x30);
}
if(mUSBUSARTIsTxTrfReady())
putrsUSBUSART("2 OK \n");
break;
case '3': // 周波数設定 表示補正周波数セット
H_Freq = 0;
for(i=0; i<8; i++)
{
H_Freq = H_Freq *10 + (input_buffer[i+1]-0x30);
}
if(mUSBUSARTIsTxTrfReady())
putrsUSBUSART("3 OK \n");
break;
default: break;
}
}
}
| 固定リンク
「電子工作」カテゴリの記事
- 続Arduino IDEでマルチタスクプログラミング ?(2022.12.23)
- SPRESENSE ILI9341用ライブラリーでハマりました。(2022.11.24)
- Arduino IDEでマルチタスクプログラミング ?(2022.11.19)
- Windows10 ???.tar.gzの解凍(2019.12.19)
- マルチカットSIMって何かと思ったら(2019.10.06)
コメント