標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第643回]
●PIC18F14K50のHIDプログラム(その初期設定部分その4)
今回もPIC18F14K50を使ったHIDプログラムの初期設定部分の続きです。
前回までのプログラムでUSB接続の準備は全て終わり、あとはUSBホストコントローラからのコマンドを待つばかりです。
; movlw 48 movwf UCON;clear bit4,for SIE enbl loop_ucon btfss UCON,4 goto loop_ucon ; ;connected to USB ! ;
USB接続スタンバイにするために最後に行うのがUCONレジスタの設定です。
UCONレジスタについては[第511回]で説明をしています。
Datasheetもお見せしておりますけれど、いちいち戻るのも面倒な話ですので、下に再掲いたします。
[出典]MICROCHIP社PIC18F14K50DataSheet
UCONレジスタはその名の通り、USB Control Registerです。
このレジスタを設定しないことには、USBSIE(PIC内蔵USBコントローラ)は動作してくれません。
EP0(OUT)をping−pong bufferとして使いますから、bit6=1にします。
bit4=0、bit3=1にします。
bit5、bit2、bit1は0にしておいて問題はありません。
ですからUCONの初期設定は48を指定します。
UCONレジスタを初期設定したあとは[第511回]で説明をしましたように、UCONレジスタのbit4が1になるまでループしながら待っています。
UCONレジスタのbit4はプログラムでは0を書き込むことしかできません。
このビットはUSBSIEがUSBホストコントローラからのSETUPトークンパケットを受信すると、SIEによって1がセットされます。
ですから、USBのための初期設定を完了したあとは、USBホストコントローラから送られてくるSETUPトークンパケットが検出されるまで(つまりUCONレジスタのビット4が1にセットされるまで)ひたすら待っている(あるいはその間はUSB以外のなにかの作業をしながら待っている)ということになります。
2010.10.21upload
前へ
次へ
ホームページトップへ戻る