PICのサイクルタイム

1チップマイコンである PIC のサイクルタイムについてです。

PICはクロック周波数の4クロックで1サイクルです。一部の命令を除き、1サイクルで1命令を実行することが出来ます。従って発振子によって、サイクルタイムは以下のような関係になります。

20MHz0.2usec/cycle(200nsec/cycle)
10MHz0.4usec/cycle(400nsec/cycle)
4MHz1usec/cycle(1000nsec/cycle)
12.8MHz0.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以上の発振回路を同時に動かそうとしたら、別回路にするしかありませんね。



投稿者:mimiham : 2005年02月11日 09:17 : PIC

トラックバック

このエントリーのトラックバックURL:
http://mono-zukuri.net/cgi-bin/mt/mt-tb.cgi/95