PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
| 当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.13 前へ 次へ 目次へ戻る ホームページトップへ戻る |
| ☆PIC18F14K50 PIC18F2550では大きすぎて、計画中のTK80互換マイコンボードND80ZVには組み込めそうにないことがわかりました。 USB機能内蔵のPICにはPIC18F4550、PIC18F2550のほかに20pinのPIC18F14K50があることはちょっと前から知っていました。しかしUSBに関する部分がPIC18F2550とはかなり異なっているようです。 案の定しっかり泥沼にはまってしまいました。 |
[第81回]
●PIC18F14K50をクロック48MHzで動かしてみました
前にも説明しましたように、PIC18F14K50でUSB(Full Speedモード)を使う場合には48MHzをUSBクロックとして供給しなければなりません。
PIC18F14K50には4xPLL回路が内蔵されていますから、それを使えば12MHzのクロックを供給すればよいことになります。
PIC18F14K50の内蔵発振回路では16MHzまでのクロックが得られるのですが、残念なことに12MHzはありません。
また内部回路の制約からでしょうか、内部発振クロックでPLLが利用できるのは8MHzだけに限られます。
いずれにせよ、USBのための48MHzクロックをPIC18F14K50に供給するためには、外部から12MHzクロックを与えるか、12MHzクリスタルを外付けするかのいずれかの方法しかありません(外部から48MHzクロックを直接供給することも可能ですが、それについてはここでは考えないことにします)。
ということで、いよいよPIC18F14K50でUSBのプログラムテストをするための前準備として、まずは48MHzクロックで動かしてみることにしました。
これがそのテストプログラムです。
;;;pic p18f14k50 test program
;f14k50test4
;10/5/21
;
;
#include<p18f14k50.inc>
;cpuclock=48MHz 12MHz crystal
;
CONFIG FOSC = HS,CPUDIV = NOCLKDIV,PLLEN=ON,WDTEN=OFF,LVP=OFF;not WDT
;
org 00
clrf ANSEL;PORTA,PORTC are digital
clrf ANSELH;PORTB,PORTC are digital
clrf SLRCON
clrf TRISA;porta=out
clrf TRISB;portb=out
clrf TRISC;portc=out
;
movlw 1
loop
xorwf PORTC
goto loop
;
|


