PICのサイクルタイム
1チップマイコンである PIC のサイクルタイムについてです。
PICはクロック周波数の4クロックで1サイクルです。一部の命令を除き、1サイクルで1命令を実行することが出来ます。従って発振子によって、サイクルタイムは以下のような関係になります。
20MHz | 0.2usec/cycle(200nsec/cycle) |
10MHz | 0.4usec/cycle(400nsec/cycle) |
4MHz | 1usec/cycle(1000nsec/cycle) |
12.8MHz | 0.3125usec/cycle(312.5nsec/cycle) |
PICで他のチップを制御するときなどは、データシートを確認して最小パルス幅などに注意する必要があります。
また、PICで擬似的に発振回路を作ろうとした場合、たとえば以下のようにするとクロック周波数 20MHz で最高 1.25MHz(デューティー比75%) の方形波を出力することが出来ます。
LOOP BCF PORTA,0 BSF PORTA,0 GOTO LOOP
ちなみに goto は 2サイクル。
デューティー比を50%にするためには、以下のように nop を入れてやります。このときの最高周波数は0.833 MHz(833KHz) (クロック周波数20MHz) になります。
LOOP BCF PORTA,0 NOP NOP BSF PORTA,0 GOTO LOOP
でも、これだけではマイコンとして何も出来ないので、結局、数100KHz以上の発振回路を同時に動かそうとしたら、別回路にするしかありませんね。
このエントリーのトラックバックURL:
http://mono-zukuri.net/cgi-bin/mt/mt-tb.cgi/95
Calendar
Categories
Monthly Archives
Search