SSブログ

USB_Controler(PIC18F2550)とパソコンを接続した [電子工作]

(2012.02.11)
PIC18F2550とパソコンのUSB接続は既に一度試したことがあります(この辺です)。そのプログラム・ソースをそっくり取り込んで、USB_Controlerとパソコン間の通信機能をサクッと確認するつもりでしたが、思う通りには進みませんでした。

USB通信制御について詳しいことは判らないまま、Microchip Solutionライブラリ(USB Device CDC Basic Demo)をPIC18F2550用に書き換えて動かしてみただけなので、上手く動かなかったときに何をどう確認すれば良いか判りません。

”Initialize.cにUSB_DEVICE.Hをインクルードし忘れた(それでもコンパイルは通る)”とか、”USB_HAL_PIC18.Hの設定が合っていなかった”とか、少しずつ、少しずつ合わせ込んでいって、最後にクロックの設定を見直して(以前USB接続を試したときと同じ設定にして)、PIC18F2550とパソコンのUSB接続が出来た”と思ったら、PIC10F322とのシリアル通信が出来なくなっていました。orz

clock_config.pngPIC18F2550のクロック設定

PIC10F322は内部クロック8MHz(デフォールト設定)で動作しています。USB_Controlerもそれに合わせて8MHzの水晶発信器を外部に設けて、Fosc=8MHzで動作させています。USBモジュール用にPLLを有効にして、CPU用は従来通りのクロックを供給するように設定したかったのですが・・・

上図(PIC18F2550のマニュアルから抜粋)の赤線部分(FOSC3:FOSC0)4ビットとセレクタの0/1がどのように対応するのか説明がありません。親族SNS管理人が試した限りでは、PLLを有効にする(FOSC:ECPLL/ECPIO/etc.)とセレクタは1、PLLを無効にする(FOSC:EC/ECIO/etc.)とセレクタは0になるようです。

つまり、PLLを有効にするとCPU用Primary Clockの選択肢は16MHz/24MHz/32MHz/48MHzに限られる(8MHzは選べない)ということです。幸い、Primary Clockに32MHzを選び、TMR2のプリスケーラで1/4に落として、これまでと同じクロック・レートでシリアル通信を行うことが出来ましたが、もう少しでPIC10F322のプログラムに重大な変更を迫られる所でした。(危ない危ない!)

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。