カテゴリー:PIC


ついに追い求めていたものが現れました。JDMライターというと、本家JDMさんのサイトを元に、ROCさんのサイトFENG3さんのサイトでいろいろな製作例がありますが、「電源不要」というのが、利点であり欠点でもありました。最近ではシリアルポートがついていないパソコンも多いため、USB-RS232C 変換を使ったシリアルポートでは、JDM PICライターが動作しないということが問題となっていました。

そして、このJDM互換で電源供給型の新しい PIC ライターを見つけました。

続きを読む "USB-シリアル変換機対応型 JDM PICライター"

たまには内容のあるものを・・・と思い、今回は簡単なPICアセンブラを。

とりあえずFOR ループ(のようなもの)です。EQU COUNT H'20' などとあらかじめ空いているレジスタを定義して使ってください。(命令郡)の部分を10回繰り返します。C言語で言えば DO-WHILE 文に近い感じですかね。

    MOVLW D'10'     ; WorkingRegisterに10を格納
    MOVWF COUNT     ; COUNTにWorkingRegisterの値(10)を格納
LOOP
    (命令郡)       ; 10回実行
    DECFSZ COUNT,F  ; COUNT=COUNT-1 結果0なら次命令スキップ
    GOTO LOOP       ; 9回ジャンプ
COUNTが10,9,8,7,6,5,4,3,2,1と合計10回カウントしながらループします。0回目が含まれないので注意してください。こういうプログラムは0回目を含むのかどうか、よく考えて使用する必要があります。

他にもいろいろなループの方法がありますが、この方法が一番簡単なループかと思います。

投稿者 mimiham : 02:24 | トラックバック

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 : 09:17 | トラックバック

Calendar


Search



TOPページへ

全エントリーの一覧へ

Syndicate this site (XML)

Powered by
Movable Type 3.2-ja-2

template by tokyobuddha