標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第505回]

●試作基板のアートワークを少し変更しました

今朝になりましてから、前回お見せしました、Z80版TK80ボード試作基板のアートワーク図を眺めていましたら、なんだか間延びしているところが目に付いてしまいました。
このままですとちょいとみっともないようですので、もう基板屋さんにガーバーデータを送ってしまったあとなのですけれど、そこのところを直すことにしました。



左が変更前で右が変更後です。
’74’(74HC74のことです)の上がすっぽり空いていてなんとも間が抜けた感じになっていたところを直しました。
実はその部分を縦方向少し斜めに走っている赤い線はPIC18F14K50のための12MHzクロックなのです。
なおさらここは間を詰めておきたいところです。
そういうこともあって、右図のように直してしまいました。
基板屋さんに、ガーバーデータの送り直しです。

●PIC18F14K50のシステムクロック

いよいよPIC18F14K50を使っての動作テストです。
PIC18F14K50もPIC18F2550と同様に、システムクロックとしては、内蔵発振回路、外部クロック入力、そして外付けのクリスタルによる発振クロックを選択することができます。
そのほかにもセカンダリクロックなどというものも使えますが、それについてはここでは考えないことにします。

まずは、PIC18F2550のときと同じように、p18f14k50.incからCONFIGのクロック設定のところを見てみることにいたします。

;
;   Oscillator Selection bits:
;     FOSC = LP            LP oscillator
;     FOSC = XT            XT oscillator
;     FOSC = HS            HS oscillator
;     FOSC = ERCCLKOUT     External RC oscillator, CLKOUT function on OSC2
;     FOSC = ECCLKOUTH     EC, CLKOUT function on OSC2 (high)
;     FOSC = ECH           EC (high)
;     FOSC = ERC           External RC oscillator
;     FOSC = IRC           Internal RC oscillator
;     FOSC = IRCCLKOUT     Internal RC oscillator, CLKOUT function on OSC2
;     FOSC = ECCLKOUTM     EC, CLKOUT function on OSC2 (medium)
;     FOSC = ECM           EC (medium)
;     FOSC = ECCLKOUTL     EC, CLKOUT function on OSC2 (low)
;     FOSC = ECL           EC (low)
;

むむむ。
PIC18F2550と書き方が違うのですよねえ。
なんとかなりませんかねえ。
こんなにチップごとにころころ変える必要はないと思うのですが…。

PIC18F2550ではCPUクロックの指定と同時にUSBクロックに対する指定も行う必要がありました。
しかし、PIC18F14K50では、どこにもUSBに対する指定らしきものがありません。
PIC18F14K50もPIC18F2550と同様にUSBコントローラを内蔵していますし、それを利用するためには、48MHz(Full Speedモード)か6MHz(Low Speedモード)が必要です。
ただ、そのUSBのためのクロックを供給する方法がPIC18F2550とは異なっているのです。
なんとも不統一でちぐはぐな感じです。

●PIC18F14K50のUSBのためのクロックの設定

さて、それではPIC18F2550のときと同じように、DataSheetを見てみることにしましょう。


[出典]Microchip社PIC18F1XK50DataSheet

PIC18F14K50はUSBのLow Speedモード(6MHz)とFull Speedモード(12MHz)の両方に対応しているのですが、今回のHIDはFull Speedモードですから、ここではLow Speedモードについては考えないことにします。

Full Speedモードでは、PIC18F2550と同じように、内蔵のUSBコントローラのクロックには48MHzを供給しなければなりません。
そしてこれもPIC18F2550と同じで、そのUSBのためのクロックとしては内蔵発振クロックは使用することができません。
外部から供給する48MHzまたは12MHzクロック(EC High−power mode)か、12MHzクリスタルを外付けして得られる水晶発振クロック(HS mode)のいずれかしか使うことができません。

外部入力の48MHzクロックモードについてはPIC18F2550と同じですが、PIC18F2550ではそれ以外に4、8、12、16、20、24MHzの外部入力モードか外付け水晶発振モードのうちから選択することができました。
しかしPIC18F14K50では48MHzを外部入力とする以外には、外部入力モードでも、外付けクリスタルでも12MHz以外は使うことができません。
あ。もちろん、USB(Full Speedモード)を使うためには、という前提でのお話です。
USBを使わないのでしたら、そのような制約はありません。

USB(Full Speedモード)のためのクロックについては、Table 2−5を見なさい、と書いてあります。
で。
Table 2−5です。

[出典]Microchip社PIC18F1XK50DataSheet

PIC18F2550と違って、これだけしかありません。
外部から48MHzを入力する(EC High)以外は、12MHzを外部から入力する(EC High)か、12MHz水晶発振による(HS)か、そのいずれかしかありません。
PIC18F14K50では、USBクロックはダイレクトに入力した48MHzを使うか、12MHzをPLLで4倍にすることで得られる48MHzを使うか、そのいずれかを選択することになります。
そしてCPUクロックは、その48MHzをそのまま使うか、それとも48MHzを分周して得られる24、16、12MHzのいずれかを使うか、になります。

PIC18F2550と同じようにブロック図を見てみましょう。

[出典]Microchip社PIC18F1XK50DataSheet

このブロック図のUSBクロックについての部分については、これでは何もわからないのと同じです。
ですけれど、さきほどのTable 2−5にありますように、とにかくUSBクロックとしては、クロックのソースが48MHzか12MHzのEC(外部入力)か、12MHzのHC(水晶発振)で、PLLをONにする(48MHz外部入力のときはPLLをOFF)、という設定が選択できる全てです。

●PIC18F14K50の内蔵発振モード

せっかくブロック図を見ましたので、USBには使えませんが、PIC18F14K50の内蔵発振モードについても、少し説明をしておきましょう。
PIC18F2550の内蔵発振クロックは最高8MHzでした。

ところが上のブロック図をよく見ますと、PIC18F14K50ではなんとその倍の16MHzまでいけるようなのですよね。
これは、ぜひとも試してみたいですねえ。

さらに、さらに。
よくよく見てみますと、内蔵発振の8MHzがツツーッと上に伸びて、どうも4xPLLに入っているようではありませんか。
8MHzの4倍ということは、32MHzです。
うう。
これは、内蔵発振でそこまでいけるということか?

おお。
こんなところにちらりと書いてありました。

[出典]Microchip社PIC18F1XK50DataSheet(赤線は筆者)

これは、なんとしても試してみないといけません。

実は、PIC18F14K50についてもPIC18F2550と同じように、簡単なテストプログラムを書いて動作を確認してみました。
ですけれど、本日は時間がなくなってしまいましたので、それにつきましては、また次回にご披露させていただくことにいたします。

2010.5.22upload
2010.5.23 USBクロックの説明が少し舌足らずだったところを補正しました。

前へ
次へ
ホームページトップへ戻る