メニュー English Ukrainian ロシア語 ホーム

愛好家や専門家向けの無料テクニカル ライブラリ 無料のテクニカルライブラリ


無線電子工学および電気工学の百科事典
無料のライブラリ / 無線電子および電気機器のスキーム

マイクロコントローラーPIC16C84。 簡単な説明。 無線エレクトロニクスと電気工学の百科事典

無料のテクニカルライブラリ

無線電子工学と電気工学の百科事典 / マイクロコントローラー

記事へのコメント 記事へのコメント

この説明は完全であるとは主張しておらず、多くの間違いやタイプミスが含まれています。 完全なドキュメントはマイクロチップの販売代理店から入手できます。販売代理店のアドレスはファイルの最後に記載されています。

導入

PIC16C84 は、CMOS マイクロコントローラーのファミリーに属します。 それは、プログラム用の内部 1K x 14 ビット EEPROM、8 ビット データ、およびデータ メモリの 64 バイト EEPROM を備えているという点で異なります。 同時に、低コストと高性能が特徴です。 PIC16C5X ファミリに精通しているユーザーは、新しいコントローラと以前に製造されたコントローラの相違点の詳細なリストを見ることができます。 すべての命令は 14 ワード (400 ビット幅) で、10 サイクル (800 ns) で実行されるジャンプ命令を除いて、16 サイクル (84 MHz で XNUMX ns) で実行されます。 PICXNUMXCXNUMX には、XNUMX つの割り込み要因と XNUMX つのレベルのハードウェア スタックがあります。

周辺機器には、8ビットのプログラム可能なプリスケーラ(実際には8ビットのタイマー)を備えた16ビットのタイマー/カウンターと13本の双方向I/Oラインが含まれています。 I / Oラインの高負荷容量(最大シンク25mA、最大シンク20mA)により、外部ドライバーが簡素化され、システム全体のコストが削減されます。 PIC16C84コントローラーに基づく開発は、アセンブラー、ソフトウェアシミュレーター、インサーキットエミュレーター(マイクロチップのみ)、およびプログラマーによってサポートされています。

PIC16C84 シリーズは、高速自動車および電気モーター制御回路から、費用対効果の高いリモート トランシーバー、指示計器、通信プロセッサまで、幅広いアプリケーションに適しています。 ROMの存在により、アプリケーションプログラムのパラメーターを調整できます(送信機コード、エンジン速度、受信機周波数など)。

このシリーズのマイクロコントローラは、従来型と表面実装の両方でパッケージ サイズが小さいため、ポータブル アプリケーションに適しています。 低価格、経済性、速度、使いやすさ、I/O の柔軟性により、PIC16C84 はマイクロコントローラがこれまで使用されていなかった分野でも魅力的です。 たとえば、タイマー、大規模システムのハード ロジックの置き換え、コプロセッサなどです。

PIC16C84 の内蔵 EEPROM プログラマにより、組み立てとテストが完了した後でも、特定の要件に合わせてプログラムとデータを簡単にカスタマイズできます。 この可能性は、複製と最終テスト後のキャリブレーション データの入力の両方に使用できます。

機能の概要

- 35個の簡単なコマンドのみ;

- すべてのコマンドは 400 サイクル (2ns) で実行されますが、遷移コマンドは XNUMX サイクルです。

- 動作周波数 0 Hz ... 10 MHz (最小 400 ns コマンドサイクル)

--14-ビットコマンド。

- 8 - ビットデータ;

-1024 x 14の電気的に再プログラム可能なプログラムメモリオンチップ(EEPROM)。

- 36 x 8 の汎用レジスタ。

- 15 個の特別なハードウェア レジスタ SFR。

- データ用の 64 x 8 電気的に再プログラム可能な EEPROM メモリ。

- XNUMX レベルのハードウェア スタック。

- データとコマンドの直接、間接、および相対アドレス指定。

- XNUMX つの割り込みソース:

。 外部入力INT

. RTCC タイマーのオーバーフロー

. ポート B のライン上の信号の変化による割り込み

. EEPROMメモリへのデータ書き込み完了時

周辺機器とI/O

- 個別設定の 13 の I/O ライン。

- LED を駆動するためのシンク/シンク電流

. 最大流入電流 - 25 mA

。 最大流動電流-20mA

- 8 ビットのプログラマブル プリスケーラを備えた 8 ビット RTCC タイマー/カウンター。

- 電源を入れると自動リセット。

- リセット時の組み込みタイマー。

- 発電機開始タイマー;

- 信頼性を向上させる独自の内蔵ジェネレーターを備えたウォッチドッグ WDT タイマー。

- コードを保護するための EEPROM セキュリティ ビット。

-経済的なスリープモード。

- 内蔵オシレータの駆動モードを設定するためのユーザー選択可能なビット:

- RCジェネレーター:RC

-従来の水晶振動子:XT

・高周波水晶振動子:HS

- 経済的な低周波水晶: LP

- プログラムおよびデータメモリ用の組み込み EEPROM プログラミングデバイス。 使用する脚は XNUMX 本のみです。

CMOS技術

- 経済的な高速 CMOS EPROM テクノロジー。

- 建築における静的原理;

- 広範囲の供給電圧と温度:

. 商用: 2.0 ... 6.0 V、0...+70C

. 工業用: 2.0 ... 6.0 V、-40...+70С

. 自動車: 2.0 ... 6.0 V、-40...+125C

- 低消費

. 3V、5MHzで標準4mA

. 50V、2kHzで標準32µA

. 26V での SLEEP モードの標準値は 2µA。

構造図 PIC16C84

マイクロコントローラーPIC16C84。 簡単な説明

アーキテクチャは、データとコマンドのバスとメモリ領域を分離するという概念に基づいています (ハーバード アーキテクチャ)。 データ バスとデータ メモリ (RAM) は 8 ビット幅で、プログラム バスとプログラム メモリ (ROM) は 14 ビット幅です。 この概念は、ビット、バイト、およびレジスタ操作が高速で動作し、命令フェッチと実行サイクル時間がオーバーラップするように設計された、シンプルでありながら強力な命令セットを提供します。 14 ビットのプログラム メモリ幅により、14 ビットの命令を 16 サイクルでフェッチできます。 84 段階のパイプラインにより、命令のフェッチと実行が同時に行われ、ジャンプ命令を除くすべての命令が 1 サイクルで実行されます。 PIC14CXNUMX には、オンチップに XNUMXK x XNUMX のプログラム メモリがあります。 実行プログラムは、内蔵 ROM にのみ常駐できます。

PIC16C84 と PIC16C5x の違い

1. コマンド長が 14 ビットに増加。 これにより、ページ サイズを増やして ROM と RAM を編成できます。それぞれ (2 バイトではなく 512K バイト)、(128 バイトではなく 32 バイト)。

2. プログラム カウンタ ハイ レジスタ (PCLATH) は、プログラム メモリのページ切り替えを制御します。 PIC2C1X クリスタルでこれに使用されていたページ選択ビット PA0、PA16、PA5 は、STATUS レジスタから削除されます。

3. メモリ ページングと STATUS レジスタが変更されました。

4. 16 つの新しいコマンドを追加: RETURN、RETFIE、ADDLW、SUBLW。 TRIS と OPTION の 5 つのコマンドは不要になりましたが、PICXNUMXCXNUMXX とのソフトウェア互換性のために残されています。

5. OPTION および TRIS レジスタは、番号によってアドレス可能になります。

6.割り込みを処理する機能が追加されました。 ベクトル=0004h。

7. スタック サイズが XNUMX レベルに増加しました。

8. パワーオン リセット アドレスが 0000h に変更されました。

9. XNUMX 種類のリセット (SLEEP モードからの復帰) が認識されます。 レジスタの初期化が変更されました。 これらは、リセットの種類に応じて異なる方法で設定されます。

10.割り込みによるスリープモードからの終了を追加しました。

11. 起動の信頼性を高めるために、次のハードウェア遅延が追加されました: 起動タイマー (OST) と電源投入タイマー (PWRT)。 これらのタイマーは、電源を入れるときと SLEEP モードを終了するときの両方で、不必要な遅延を避けるために選択的に使用できます。

12. ポート B にはアクティブな負荷があり、入力信号が変化すると割り込みが発生します。

13. RTCCレッグはポートレッグ(RA4)と位置合わせされます。

14. レジスタ アドレス 07h (ポート C) は存在せず、汎用レジスタではありません。

15. 間接アドレッシングのポインタを格納するレジスタ FSR (f4) が XNUMX ビット幅になりました。

16.組み込みのEEPROMプログラミングマシンを実装しました。 ユーザーは、Vdd、Vss、/MCLR/Vpp、RB16(クロック)、RB84(データ入力/出力) の 6 つのピンのみを使用して PIC7CXNUMX をプログラムできます。

PIC16C5x から PIC16C84 への移行

PIC16C5X 用に記述されたコードを PIC16C84 用のコードに変換するには、次の手順を実行する必要があります。

1. プログラム メモリのページを選択する操作 (ビット PA2、PA1、PA0) を CALL、GOTO コマンドに置き換えます。

2. 計算されたすべてのジャンプ操作 (PC への書き込みまたは PC への追加など) を確認し、新しいチップに対してもページ ビットが正しく設定されていることを確認します。

3.データメモリのページ切り替えを排除します。 変数を再定義し、それらのメモリを再割り当てします。

4. STATUS、OPTION、FSR レジスタのエントリをチェックします。 それらはわずかに変更されています。

5. パワーオン リセット ベクターを 0000h に変更します。

6. アドレス 07h は存在しないデータ メモリ アドレスであることに注意してください。

エンクロージャーのタイプとバージョン

PIC16C8x クリスタルのパッケージ表記。 パッケージタイプは、マイクロ回路を注文する際のマーキングに示されています。 ケースには 18 個のピンのみが付属しています。 PDIP - 無地のプラスチック製 XNUMX 列ケース。 水晶の OTP EPROM バージョンに使用されます。 SOIC - 小型 DIP 表面実装パッケージ

超小型回路の実行には、商用、産業用、自動車用電子機器の XNUMX つのタイプがあります。 主な違いは、温度範囲と動作電圧にあります。

商業執行

動作温度 0 ... +70 C

動作電圧 3.0 ... 5.5 V

産業用バージョン

作動温度-40....+85 C

動作電圧 3.0 ... 5.5 V

車両バージョン

動作温度 -40 ... +125 C

動作電圧 3.0 ... 5.5 V

ご注文時のマーキング

マイクロ回路の指定は、次のフィールドで構成されています。

<会社番号>-<発電機周波数><温度範囲>/<本体><注>

<会社番号の可能性があります>: PIC16C84 - Vdd 範囲 4...6 V

PIC16LC84 Vdd 範囲 2 ~ 6 V

<オリジネーター周波数>: 04 ---> 4 mHz

10 ---> 10mHz

温度範囲は次のとおりです。

- 0Сから+70Сまで

私は-40Сから+85Сまで

-40Сから+125СまでのE

ボディはマークされています:

P - 通常のプラスチック DIP

SO-300 ミル SOIC

例:

PIC16C84-04/Pxxx 4 mHz、PDIP パッケージの商用バージョン、Vdd 正常範囲、xxx プログラム付きマスク ROM

PIC16LC84-04I/SO 4 mHz、産業用バージョン、拡張電力範囲、ケース=SOIC

PIC16C84-10E/P カー バージョン、10 mHz、PDIP、typ. 食物

レッグレイアウト

ピンの機能については、「ピンの割り当て」またはブロック図を参照してください。 PDIP エンクロージャ タイプなどについては、エンクロージャを参照してください。

マイクロコントローラーPIC16C84。 簡単な説明

足の目的

脚の名称とその機能的目的。

マイクロコントローラーPIC16C84。 簡単な説明

電気パラメータの最大値

これらの制限外のパラメータは、チップを損傷する可能性があります。 クリスタルを限界値で長時間動作させると、信頼性に影響します。

マイクロコントローラーPIC16C84。 簡単な説明

備考:

1. 各筐体の総消費電力は 800mW を超えてはなりません。 消費電力は、次の式を使用して計算されます。

Pdis= Vdd(Idd - Sum(Ioh)) + Sum ((Vdd - Voh)Ioh) + Sum (Vol Iol)

2. /MCLR ピンの電圧を Vss (グランド) より下げると、80mA を超える大電流が発生し、このラインが損傷する可能性があります。 したがって、50 ~ 100 オームの終端抵抗を介して /MCLR ピンに信号を適用することをお勧めします。

レジスタと RAM の概要

RAM 領域は 128 x 8 として編成されます。RAM セルは、直接または FSR ポインタ レジスタ (04h) を介して間接的にアドレス指定できます。 これは定数データメモリの EEPROM にも当てはまります。

マイクロコントローラーPIC16C84。 簡単な説明

ステータス レジスタ (03h) には、このチップの将来のリビジョンの 16 ページにアクセスできるページ選択ビットが含まれています。 ただし、PIC84C02 の場合、データ メモリはアドレス 12Fh までしか存在しません。 最初の XNUMX 個のアドレスは、特殊目的レジスターを配置するために使用されます。

アドレス 0Ch ~ 2Fh のレジスタは、スタティック RAM である汎用レジスタとして使用できます。 一部の特殊目的レジスターは両方のページで重複しており、一部はページ 1 に別々に配置されています。 ページ 1 が設定されている場合、アドレス 8Ch ~ AFh にアクセスすると、実質的にページ 0 がアドレス指定されます。レジスタは、直接または間接的にアドレス指定できます。 どちらの場合も、最大 512 個のレジスタをアドレス指定できます。

直接アドレッシング

ダイレクト 9 ビット アドレッシングが実行されると、下位 7 ビットがオペコードからダイレクト アドレスとして取得され、ステータス レジスタ (1h) から 0 つのページ ポインター ビット (RP03、RPXNUMX) が取得されます。

マイクロコントローラーPIC16C84。 簡単な説明

間接アドレッシング

f4-間接アドレスポインタ

f0 (アドレス 00) をレジスタとして使用する命令は、実際には FSR (04h) に格納されているポインタにアクセスします。 f0 自体を間接的に読むと 00h になります。 レジスタ f0 への書き込みは暗黙的に Nop のように見えますが、ステータス ビットは変更できます。 必要な 9 ビット アドレスは、8 ビット FSR レジスタの内容とステータス レジスタの IRP ビットを組み合わせることによって形成されます。

マイクロコントローラーPIC16C84。 簡単な説明

一部の特殊機能レジスタは1ページにあることに注意してください。それらをアドレス指定するには、ステータスレジスタのRP0ビットをさらにXNUMXに設定する必要があります。

RTCC タイマー/カウンター

RTCC イネーブルのブロック図を以下に示します。 「MUX」という要素が含まれています - これは電子スイッチです。

マイクロコントローラーPIC16C84。 簡単な説明

タイマ モードは、OPTION レジスタの RTS ビットをゼロにリセットすることによって選択されます。 タイマー モードでは、RTCC は、コマンド サイクルごとに (プリスケーラなしで) 内部周波数ソースからインクリメントされます。

RTCC に情報を書き込んだ後、1 命令サイクル後にインクリメントを開始します。 これは、f1 に書き込みまたは読み取り-変更-書き込みを行うすべての命令 (MOVF f1、CLRF f1 など) で発生します。 RTCC に調整値を書き込むことで回避できます。 カウントを停止せずに RTCC のゼロをチェックする必要がある場合は、MOVF fXNUMX,W 命令を使用します。

OPTION レジスタの RTS ビットを 4 に設定すると、カウンタ モードが選択されます。 このモードでは、RTCC は、EXT イベントからの RA0/RTCC ピンの立ち上がりエッジまたは立ち下がりエッジによってインクリメントされます。 エッジの方向は、OPTION レジスタの RTE 制御ビットによって決まります。 RTE=0 の場合、立ち上がりエッジが選択されます。 リミッタは、RTCC またはウォッチドッグ タイマーのいずれかで使用できます。 分周器接続オプションは、OPTION レジスタの PSA ビットによって制御されます。 PSA=00 の場合、分周器は RTCC に接続されます。 ディバイダの内容は、プログラムでは利用できません。 分割係数 - プログラム可能。 FFH から 2h への遷移時に RTCC タイマー / カウンターがオーバーフローすると、RTCC 割り込みが生成されます。 その後、INTCON<5> レジスタの RTIF 要求ビットがセットされます。 この割り込みは、INTCON<XNUMX> レジスタの RTIE ビットでマスクできます。 割り込みを処理するときは、ソフトウェアで RTIF 要求ビットをクリアする必要があります。 このモードではタイマーが機能しないため、RTCC 割り込みはプロセッサを SLEEP から復帰させることはできません。

タイマーの問題

外部信号をカウントするときに問題が発生する可能性があります。 これらの信号は、内部クロック信号によってゲートされます。SYNC ダイアグラムを参照してください。 入力信号の立ち上がりエッジと RTCC インクリメント時間の間には、いくらかの遅延があります。 ゲーティングはリミッターの後に行われます。 リミッタ出力は、入力信号の立ち上がりエッジと立ち下がりエッジを決定するために、各コマンド サイクル中に XNUMX 回ポーリングされます。 したがって、Psout 信号は、少なくとも XNUMX クロック周期の間ハイとローでなければなりません。

リミッターを使用しない場合、Psoutは入力信号を繰り返すため、リミッターの要件は次のとおりです。

Trth= RTCC ハイ時間 >= 2tosc+20ns

Trtl= RTCC ロー時間 >= 2tosc+20ns。

リミッターを使用する場合、RTCC入力は分周器カウンターで設定された数で除算されます。 リミッター後の信号は常に対称です。

Psout ハイ時間 = Psout ロー時間 = NTrt/2、

ここで、Trt は RTCC 入力期間、

N は分周カウンタの値 (2,4...256) です。

この場合、入力信号の要件は次のように表すことができます。

NTrt/2 >= 2tosc +20ns または

Trt >= (4tosc + 40ns)/N。

リミッタを使用する場合、その入力の低信号レベルと高信号レベルは少なくとも 10 ns である必要があります。 したがって、分周器が接続されている場合の外部信号の一般的な要件は次のとおりです。

Trt= RTCC 周期 >= (4tosc + 40ns)/N

Trth = RTCC ハイ時間 >= 10ns

Trtl = RTCC ロー時間 >= 10ns。

リミッタ出力は内部クロックによってクロックされるため、外部クロックの立ち上がりエッジと実際の RTCC インクリメント時間の間にわずかな遅延があります。 この遅延は 3tosc から 7tosc の間です。 したがって、イベント間の間隔の測定は、4tosc (400 MHz クォーツで ±10ns) の精度で実行されます。

ステータスレジスタ

レジスタ (f3) には、ALU の演算フラグ、コントローラのリセット状態、およびデータ メモリのページ選択ビットが含まれています。 (f3) は、他のレジスタと同様に、どのコマンドでも使用できます。 ただし、TO ビットと PD ビットはハードウェアで設定されるため、ソフトウェアでステータスを書き込むことはできません。 これは、ステータス レジスタを使用してコマンドを実行する場合に留意する必要があります。 たとえば、CLRF f3 命令は、TO ビットと PD ビットを除くすべてのビットを 1 に設定してから、Z=3 ビットを設定します。 このコマンドを実行した後、ステータス レジスタの値がゼロにならない場合があります (TO ビットと PD ビットが原因で) f000=100??XNUMX。 したがって、BCF、BSF、MOVWF ビット設定コマンドのみを使用してステータス レジスタを変更し、残りのステータス ビットを変更しないことをお勧めします。 ステータス ビットに対するすべてのコマンドの効果は、「コマンドの説明」で確認できます。

ソフトウェア ステータス フラグ

ステータス レジスタ内のフラグの位置は次のとおりです。

マイクロコントローラーPIC16C84。 簡単な説明

ADDWF および SUBWF コマンド用。 このビットは、最上位ビット操作の結果キャリーが発生した場合にセットされます。 減算は、第 XNUMX オペランドの付加コードを加算することで実行されます。 シフト命令を実行するとき、このビットは常にシフトされるソースの LSB または MSB からロードされます。

マイクロコントローラーPIC16C84。 簡単な説明

ADDWF および SUBWF コマンド用。 このビットは、XNUMX 番目のビット操作がキャリーになる場合にセットされます。 XNUMX 番目のビットからの桁上げが監視されることを除いて、XNUMX 進数の桁上げビット「DC」を設定するメカニズムは同じです。

Z - ゼロ結果フラグ:

算術演算または論理演算の結果がゼロの場合に設定されます。

PD-パワーダウン(データストレージモード):

電源投入時または CLRWDT コマンドで "1" にセットされます。 SLEEP コマンドで "0" にリセットします。

TO - タイムアウト。 ウォッチドッグタイマー起動フラグ:

電源投入時および CLRWDT、SLEEP コマンドで「1」に設定されます。 WDT タイマーが満了すると "0" にリセットされます。

RP1、RP0 - 直接アドレッシング用のデータ メモリ ページ選択ビット:

RP1、RP0:

00= ページ 0 (00h-7Fh)

01= ページ 1 (80h-FFh)

10= ページ 2 (100h-17Fh)

11= ページ 3 (180h-1FFh)

各ページには 128 バイトが含まれます。 PIC16C84 チップは RP0 のみを使用します。 このチップでは、RP1 は単に汎用の読み取り/書き込みビットとして使用できます。 ただし、その後の開発で使用されることを覚えておく必要があります。

IRP - 間接アドレッシング用のデータ メモリ ページ選択ビット:

IRP0:

0= ページ 0,1 (00h-FFh)

1= ページ 2,3 (100h-1FFh)

PIC16C84 クリスタルのこのビットは使用しても意味がありません。 したがって、汎用の読み書きビットとして使用できます。 ただし、その後の開発で使用されることを覚えておく必要があります。

ハードウェア ステータス フラグ

ハードウェアステータスビットTO(タイムアウト)およびPD(パワーダウン)。 ステータスレジスタビット「TO」および「PD」の状態により、「リセット」の原因を特定できます。

-電源を入れるだけで、

- ウォッチドッグタイマーの起動、

- ウォッチドッグ タイマーのトリガーによるスリープ モードの終了、

- 外部信号 /MCLR による。

これらのビットの状態に影響を与えることができるのは、次のイベントのみです。

マイクロコントローラーPIC16C84。 簡単な説明

注: TO ビットと PD ビットは、表にリストされているイベントのいずれかが発生するまで最新のままです。 "0" - /MCLR クリスタルの入力における低レベル パルスは、TO および PD ビットの状態を変更しません。

内蔵ROMの構成

PIC16C84のプログラムカウンタは13ビット幅で、8Kx14ビットのプログラムメモリをアドレス指定できます。 ただし、物理的にはチップ上に1Kx14のメモリしかありません(アドレス0000h-03FFh)。 3FFhを超えるアドレスのアドレス指定は、実際には同じ最初のキロバイトのアドレス指定です。 リセットベクタはアドレス0000hにあり、割り込みベクタはアドレス0004hにあります。

PIC16C84 の EEPROM は、限られた数の消去/書き込みサイクル用に設計されています。 プログラム メモリに書き込むには、水晶振動子を特別なモードにして、プログラミング電圧 Vprg を /MCLR ピンに印加し、電源 Vdd を 4.5V ~ 5.5V の範囲にする必要があります。 PIC16C84 は、プログラムが頻繁に変更されるアプリケーションには適していません。 プログラム メモリへの書き込みは、XNUMX 本のピンのみを使用して、ビットごとに順次行われます。

PC と ROM のアドレッシング

(f2)。 プログラムカウンター

プログラムカウンタの幅は 13 ビットです。 プログラム カウンター下位バイト (PCL) は読み取り/書き込み可能で、レジスタ 02h にあります。 プログラム カウンタ上位バイト (PCH) は直接読み書きできません。 プログラム カウンタの上位バイトは、アドレスが 0Ah である PCLATH レジスタを介して書き込むことができます。 CALL、GOTO 命令、またはプログラム カウンター (PCL) の下位バイトが書き込まれているときに、新しい値がプログラム カウンターにロードされるかどうかに応じて、プログラム カウンターの上位ビットは、さまざまな方法で PCLATH からロードされます。図に示します。

GOTO、CALL コマンドの場合

マイクロコントローラーPIC16C84。 簡単な説明

サブルーチンからのスタックとリターン

PIC16C84 水晶振動子には、13 レベルの 0 ビット幅のハードウェア スタックがあります。 スタック領域はプログラム領域にもデータ領域にも属さず、ユーザーはスタックポインタにアクセスできません。 プログラム カウンタの現在の値は、CALL 命令の実行時または割り込み処理時にスタックにプッシュされます。 RETLW 、 RETFIE 、または RETURN 命令がサブルーチンから実行されると、スタックの内容がプログラム カウンターにポップされます。 PCLATH レジスタ (XNUMXAh) は、スタック操作によって変更されません。

EEPROMのデータ

不揮発性 EEPROM データ メモリ。

EEPROM データ メモリを使用すると、16 バイトの情報を読み書きできます。 バイトが書き込まれると、以前の値は自動的に消去され、新しいデータが書き込まれます (消去前書き込み)。 これらのすべての操作は、内蔵の EEPROM ライタによって実行されます。 このメモリの内容は、電源を切っても保持されます。 PIC84C64 水晶振動子には 8x08 ビットの EEPROM データ メモリがあり、通常動作中 (供給電圧範囲全体) で書き込みと読み取りが可能です。 このメモリは RAM レジスタ領域には属しません。 これは、読み書き用の 09 ビット データを含む EEDATA <1h> と、アクセスするセルのアドレスを含む EEADR <88h> の 2 つのレジスタを介してアクセスされます。 さらに、EECON89 <XNUMXh> と EECONXNUMX <XNUMXh> の XNUMX つの制御レジスタがあります。

EEPROM メモリからデータを読み出す場合、目的のアドレスを EEADR レジスタに書き込み、RD EECON1<0> ビットを XNUMX に設定します。 データは次のコマンド サイクルで EEDATA レジスタに表示され、読み取ることができます。 EEDATA レジスタのデータがラッチされます。

EEPROMメモリに書き込むときは、最初に必要なアドレスをEEADRレジスタに書き込み、データをEEDATAレジスタに書き込む必要があります。 次に、直接記録を生成するコマンドの特別なシーケンスを実行します。

movlv 55h

movwf EECON2

movlv AH

movwf EECON2

bsf EECON1,WR ;WR ビットをセットし、記録を開始する

プログラムのこのセクションの実行中は、タイミング図を正確に実行するために、すべての割り込みを無効にする必要があります。 収録時間 -

約10ms。 実際の書き込み時間は、電圧、温度、個々の水晶の特性によって異なります。 書き込みが終了すると、WR ビットは自動的に XNUMX にセットされ、割り込み要求でもある EEIF 書き込み完了フラグがセットされます。

データ メモリへの偶発的な書き込みを防ぐために、EECON1 レジスタに特別な WREN ビットが用意されています。 データ メモリをリフレッシュする必要がある場合を除き、WREN ビットをオフにしておくことをお勧めします。 さらに、WREN ビットを設定するコード セグメントと書き込みを実行するコード セグメントは、プログラムがクラッシュしたときに誤って両方を実行しないように、異なるアドレスに格納する必要があります。

EEPROM制御

EEPROM の制御レジスタ

マイクロコントローラーPIC16C84。 簡単な説明

EECON1 および EECON2 レジスタ

EECON1レジスタ(アドレス88h)は、0ビット幅の制御レジスタです。 下位XNUMXビットは物理的に存在しますが、上位XNUMXビットは常に「XNUMX」として読み取られます。

レジスタ EECON1 アドレス 88h

電源投入時のリセット - 0000X000

マイクロコントローラーPIC16C84。 簡単な説明

RDおよびWR制御ビットは、それぞれ読み取りと書き込みをトリガーします。 プログラムでのみ設定できます。 読み取り/書き込み操作が完了すると、ハードウェアによってクリアされます。 WRビットのソフトウェアリセットを無効にすると、書き込みが途中で終了するのを防ぎます。

RD - 読み取りビット。

RD =1 : EEPROM データメモリの読み込みを開始します。 読み取りには XNUMX サイクルかかります。 ソフトウェアによってインストールされます。 ハードウェアによるリセット。

WR - 書き込みビット。

WR =1 : EEPROM データメモリへの書き込みを開始します。

ソフトウェアによってインストールされます。 ハードウェアによるリセット。

WREN - EEPROM 書き込みイネーブル ビット。

WREN = 1: 書き込み可能。

WREN = 0:書き込みが無効です。

電源投入後、WREN はゼロにリセットされます。

WRERR エラー フラグは、/MCLR リセット信号または WDT タイマーからのリセット信号によって書き込み処理が中断されたときにセットされます。 この WRERR フラグを確認し、必要に応じて、データとアドレスが EEDATA および EEADR レジスタに格納されているデータを上書きすることをお勧めします。

WRERR - 書き込みエラー フラグ。

WRERR = 1: /MCLR リセット信号 (通常モードまたは SLEEP モード時) または通常モード時の WDT リセット信号によって書き込み動作が中止された場合にセットされます。

組み込みオートマトンがデータ メモリへの書き込みを完了すると、EEIF フラグが設定されます。 ソフトウェアでリセットする必要があります。

EEIF-完了フラグを書き込みます。

EEIF = 1: 書き込みが完了するとフラグがセットされます。 対応する割り込みイネーブル ビットは、INTCON レジスタの EEIE です。

割り込みの構成

PIC16C84の割り込みは、次のXNUMXつの原因で発生する可能性があります。

- ピン RB0/INT からの外部割り込み、

- RTCC カウンター/タイマー オーバーフロー割り込み、

-EEPROMへのデータ書き込み終了時の割り込み

-ポートRB<7:4>のピンの信号の変更を中断します。

すべての割り込みは同じベクトル/アドレス-0004hを持っています。 ただし、割り込み制御レジスタINTCONには、次のように書き込まれます。-どのソースから割り込み要求を受信したか。 対応するビットフラグによって書かれています。 このような割り込みは、個別に、または共通ビットでマスクできます。 唯一の例外は、EEPROM書き込み終了割り込みです。 このフラグは別のEECON1レジスタにあります。

GIE 汎用割り込みイネーブル / ディスエーブル ビット (INTCON <7>) は、個別にマスクされていないすべての割り込みを有効 (=1) または無効 (=0) にします。 各割り込みは、INTCON レジスタの対応するビットをセット/クリアすることで、さらに有効/無効にすることができます。 GIE ビットは、リセット時にゼロに設定されます。 割り込みが処理されると、GIE ビットがゼロに設定されて以降の割り込みが無効になり、戻りアドレスがスタックにプッシュされ、アドレス 0004h がプログラム カウンターにロードされます。 INT ピンまたはポート B からの割り込みなどの外部イベントの割り込み応答時間は、約 XNUMX サイクルです。 これは、RTCC タイマーからのオーバーフロー割り込みなどの内部イベントよりも XNUMX サイクル少なくなります。 反応時間は常に同じです。 割り込みハンドラでは、割り込みのソースは、フラグ レジスタの対応するビットによって決定できます。 このフラグ ビットは、サブルーチン内でソフトウェアによってリセットする必要があります。 割り込み要求フラグは、対応するマスク ビットおよび GIE 汎用マスク ビットとは無関係です。

割り込みリターン命令RETFIEは、割り込みルーチンを終了し、GIEビットを設定して割り込みを再度有効にします。

クエリとマスクの登録

割り込み制御レジスタとそのビット

マイクロコントローラーPIC16C84。 簡単な説明

アドレス: 0bh

リセット時の値=0000 000?

RBIF - RB ​​ポートの割り込みフラグを変更します。

このフラグは、RB<7:4> 入力の信号が変化するとセットされます。

フラグはプログラムでリセットされます。

INTF - 割り込みフラグ INT。

このフラグは、INT ピンが外部割り込みソースから信号を受け取るとセットされます。 ソフトウェアによるリセット。

RTIF - RTCC オーバーフロー割り込みフラグ。

RTCC がオーバーフローするとフラグがセットされます。

フラグはプログラムでリセットされます。

RBIE - RBIF 割り込みイネーブル/ディスエーブル ビット。

RBIE = 0 : RBIE 割り込みを無効にする

RBIE = 1 : RBIE 割り込みを有効にする

INTE - INT 割り込みを有効/無効にするビット。

INTE = 0 : INT 割り込みを無効にする

INTE = 1:INT割り込みを有効にする

RTIE RTIF 割り込み許可/禁止ビット。

RTIE = 0 : RTIE 割り込みを無効にする

RTIE = 1 : RTIE 割り込みを有効にする

EEIE - EEPROM 書き込み割り込みイネーブル/ディスエーブル ビット。

EEIE = 0 : EEIF 割り込みを無効にする

EEIE = 1 : EEIF 割り込みを有効にする

GIE 全割り込みイネーブル/ディスエーブル ビット。

GIE =​​ 0 : 割り込みを無効にする

GIE =​​ 1 : 割り込みを有効にする

次の状況では、自動的にリセットされます。

- 電源オン。

-通常動作中の外部信号/MCLRによる。

- SLEEP モードでの外部信号 /MCLR による。

-通常の操作中のWDTタイマー遅延の終了時。

- SLEEP モードでの WDT タイマー遅延の終了時。

外部割り込み

RB0/INT ピンの外部割り込みは、立ち上がりエッジ (OPTION レジスタの bit6 INTEDG=1 の場合) または立ち下がりエッジ (INTEDG=0 の場合) でトリガーされます。 INT ピンで立ち上がりエッジが検出されると、INTF 要求ビットがセットされます (INTCON<1>)。 この割り込みは、INTE 制御ビット (INTCON <4>) を XNUMX に設定することでマスクできます。 割り込みを再度有効にする前に、INTF 要求ビットを割り込みプログラムでクリアする必要があります。 このモードに入る前に INTE ビットが XNUMX に設定されていた場合、INT 割り込みは SLEEP モードからプロセッサを復帰させることができます。

GIE ビットの状態は、プロセッサが SLEEP モードから復帰した後に割り込みルーチンにジャンプするかどうかも決定します。

RTCC 割り込み

RTCC カウンタ オーバーフロー (FFh->00h) は、RTIF 要求ビット (INTCON<2>) をセットします。 この割り込みは、RTIE マスク ビット (INTCON<5>) をセット / クリアすることで有効 / 無効にできます。 RTIF 要求のリセットは、処理プログラム次第です。

RB ポート割り込み

RB<7:4> ポートの 0 つの入力信号が変化すると、RBIF ビット (INTCON<3>) がセットされます。 この割り込みは、RBIE マスク ビット (INTCON<XNUMX>) をセット / クリアすることで有効 / 無効にできます。 RBIF 要求のリセットは、処理プログラム次第です。

EEPROM 割り込み

EEPROM への自動データ書き込みが完了すると、EEPROM 書き込み終了割り込み要求フラグ EEIF (EECON1<4>) がセットされます。 この割り込みは、EEIE ビット (INTCON<6>) をリセットすることでマスクできます。 EEIF リクエストのリセットは、ハンドラー次第です。

レジスタ/ポートの概要

クリスタルには 5 つのポートがあります。8 ビットの RA ポートと XNUMX ビットの RB ポートで、入力または出力をビットごとに個別に設定できます。

ポートAの線図

ポート A は 5 ビット幅のポートで、RA<4:0> チップのピンに対応します。 RA<3:0> ラインは双方向で、RA4 ラインはオープンドレイン出力です。 ポート A のレジスタアドレスは 05h です。 ポート A の TRISA 制御レジスタは、レジスタの最初のページのアドレス 85h にあります。 TRISA<4:0> は 5 ビット幅のレジスタです。 TRISA 制御レジスタのビットが 0 に設定されている場合、対応するラインが入力に設定されます。 ゼロは出力するラインを切り替え、同時に対応するラッチレジスタの内容をそれに出力します。 以下は、ポート RA3..RAXNUMX の図です。

マイクロコントローラーPIC16C84。 簡単な説明
マイクロコントローラーPIC16C84。 簡単な説明

マイクロコントローラーPIC16C84。 簡単な説明

ポートBの線図

ポート B は、06 ビット幅の双方向ポートです (レジスタ アドレス 86h)。 ポート B に関連して、TRISB 制御レジスタはレジスタの最初のページのアドレス 100h にあります。 レジスタの制御 TRISB ビットが 7 に設定されている場合、対応するラインが入力に設定されます。 ゼロは出力するラインを切り替え、同時に対応するラッチレジスタの内容をそれに出力します。 ポート B の各ピンには、電源ライン上に小さな抵抗負荷 (約 1µA) があります。 このピンを出力としてプログラムすると、自動的に無効になります。 さらに、RBPU OPTION<XNUMX> 制御ビットは、すべての負荷をオフ (RBPU=XNUMX) にすることができます。 パワーオン リセットもすべての負荷をオフにします。

ポート B の 7 つのライン (RB<4:1>) には、いずれかの信号値が変化したときに割り込みを発生させる機能があります。 これらのラインが入力用に設定されている場合、それらはポーリングされ、Q4 読み取りループにラッチされます。 入力信号の新しい値は、各命令サイクルで古い値と比較されます。 レッグとラッチの信号の値が一致しない場合、ハイ レベルが生成されます。 「ミスマッチ」検出器 RB5、RB6、RB7、RB0 の出力は OR 演算され、RBIF 割り込みを生成します (INTCON<XNUMX> に格納)。 出力として設定された行は、この比較には参加しません。 割り込みにより、水晶振動子を SLEEP モードから復帰させることができます。 割り込みハンドラで、次のいずれかの方法で割り込み要求をリセットします。

1) RBIE ビット INTCON<3> をクリアして割り込みを無効にします。

2)ポートBを読み取ります。これにより、比較状態が終了します。

3) RBIF INTCON<0> ビットをクリアする。

これらの 0 つのラインのミスマッチ割り込みとソフトウェア設定可能な内部アクティブ ロードは、SLEEP モードからのキーストローク ウェイクアップを備えた、キーボードなどの単純なインターフェイスを提供できます。 レグ RBXNUMX は、外部割り込み入力 INT と組み合わされます。

名前

マイクロコントローラーPIC16C84。 簡単な説明

ポートの問題

双方向ポートを編成する際の問題

- 一部のコマンドは内部で read+write として実行されます。 たとえば、BCF および BSF 命令は、ポート全体を読み取り、5 ビットを変更して、結果を出力します。 ここは注意が必要です。 たとえば、レジ​​スタ f6 (ポート B) のビット 5 に対する BSF 命令は、最初に 6 ビットすべてを読み取ります。 次に、ビット 0 が操作され、バイトの新しい値全体が出力ラッチに書き込まれます。 レジスタ fXNUMX の別のビットが i を双方向 I/O (たとえばビット XNUMX) として使用し、現在入力として定義されている場合、そのピンの入力が読み取られ、そのピンの出力ラッチに書き戻され、以前の状態が上書きされます。

このピンが入力モードのままである限り、問題は発生しません。 ただし、ライン 0 が後で出力モードに切り替わると、その状態は未定義になります。

外部電流源(「取り付けAND」、「取り付けOR」)は、出力モードで動作している脚に「傾いて」はなりません。 結果として生じる大電流は、水晶を損傷する可能性があります。

I/O ポートへのシリアル アクセス

出力ポートへの書き込みは、コマンド サイクルの最後に発生します。 ただし、読み取り時には、命令サイクルの開始時にデータが安定している必要があります。 同じポートへの書き込み直後の読み取りには注意してください。 ここでは、端子で電圧を確立する慣性を考慮する必要があります。 次の読み取りコマンドが実行される前に、ピンの電圧 (負荷によって異なります) を安定させるために、ソフトウェア遅延が必要になる場合があります。

コマンドとシンボルの概要

各PIC16C84コマンドは14ビットワードであり、意味によって次の部分に分割されます。-1.オペコード-2。 この命令に参加する場合と参加しない場合がある16つ以上のオペランドのフィールド。 PIC84CXNUMX命令セットには、バイト指向の命令、ビット指向の命令、定数演算、および制御転送命令が含まれています。

バイト指向のコマンドの場合、「f」は操作対象のレジスタを示します。 "d" - ビットは、結果をどこに置くかを決定します。 "d"=0 の場合、結果は W レジスタに配置され、"d"=1 の場合、結果はコマンドで指定された "f" に配置されます。 ビット指向の命令の場合、「b」は命令に含まれるビットの番号を示し、「f」はこのビットが配置されているレジスタです。

転送コマンドと定数操作の場合、「k」は XNUMX ビットまたは XNUMX ビットの定数を表します。

すべてのコマンドは、1つのコマンドサイクル内で実行されます。 2つのケースでは、命令の実行にはXNUMXつの命令サイクルが必要です。-XNUMX。 状態チェックとジャンプ、-XNUMX。結果としてプログラムカウンターを変更します

コマンド実行。 4 つのコマンド サイクルは、ジェネレータの 1 つの周期で構成されます。 したがって、XNUMX MHz 発振器の場合、コマンド サイクルの実行時間は XNUMX µs になります。

バイト指向のコマンド

マイクロコントローラーPIC16C84。 簡単な説明

ビット指向コマンド

マイクロコントローラーPIC16C84。 簡単な説明

トランジション

マイクロコントローラーPIC16C84。 簡単な説明

注意事項と説明

注 1: TRIS および OPTION コマンドは、PIC16C5X ファミリとの互換性のためにコマンド リストに追加されました。 それらの使用は推奨されません。 PIC16C84 では、TRIS および OPTION レジスタは通常の番号のレジスタとして読み書き可能です。 これらのコマンドは、将来の PIC16CXX の開発ではサポートされない可能性があることに注意してください。 注 2: MOVF 6,1 などの I/O レジスタが変更されると、変更に使用される値がチップ ピンから直接読み取られます。 出力するようにプログラムされたピンの出力ラッチ値が「1」であるが、そのピンの外部信号が外部の「ふくらみ」のために「0」である場合、「0」が読み取られます。 Note 3: この命令のオペランドがレジスタ f1 (および許可されている場合は d=1) である場合、RTCC に接続されている除数はゼロに設定されます。

リセット条件

PIC16C84では、リセットオプション間に違いがあります。

1) パワーオンリセット。

2) 通常動作時の外部リセット /MCLR。

3) SLEEP モードでの外部リセット /MCLR。

4) 通常動作中の WDT タイマー遅延の終了時にリセット。

5) SLEEP モードでの WDT タイマー遅延の終了時にリセット。

一部の特殊レジスタは、リセット時に初期化されません。 電源投入時にランダムな状態になり、他のタイプのリセットでは変化しません。 特殊レジスタの他の部分は、SLEEP モードでの WDT タイマー遅延の終了時のリセットを除き、すべてのタイプのリセットで「リセット状態」に初期化されます。 このリセットは、通常の操作における一時的な遅延と見なされるだけです。 さらにいくつかの例外があります。 プログラム カウンタは常にゼロ (0000h) にリセットされます。 TO および PD ステータス ビットは、リセット オプションに応じてセットまたはクリアされます。 これらのビットは、リセットの性質を決定するためにソフトウェアによって使用されます。 リセット後の値を表に示します。 リセット後のレジスタの状態を表に示します。 そこでは表記法が受け入れられます: i-変更なし、x - 不明、- 実行されず、`0` として読み取られます。 ? - EEPROM への書き込みの最後に設定されます

マイクロコントローラーPIC16C84。 簡単な説明

パワーオン リセット アルゴリズム

PIC16C84 水晶振動子には、パワーオン検出器が内蔵されています。 開始タイマーは、供給電圧が約 1,2 ~ 1,8 ボルトのレベルを超えた後、遅延時間のカウントを開始します。 約 72 ms の遅延の後、電圧が公称値に達したと見なされ、水晶発振器を安定させるために別の半分の遅延が開始されます。 プログラマブル コンフィギュレーション ビットにより、組み込みの開始タイマーからの遅延を有効または無効にすることができます。 起動時間は、クリスタル インスタンス、電力、および温度によって異なります。 DC 仕様を参照してください。

発電機安定化タイマーは、発電機が動き始めてから1024パルスをカウントします。 この間に水晶振動子がモードに入ったと考えられます。 RC 発電機を使用する場合、安定化への露出は実行されません。

その後、外部リセット待ちタイマ /MCLR が有効になります。 これは、すべてに共通の /MCLR 信号を介して複数の PIC コントローラーを同期的に起動する必要がある場合に必要です。 そのような信号が受信されない場合、時間 Tost の後に内部リセット信号が生成され、コントローラはプログラムの実行を開始します。 Tost 時間は、EEPROM の構成ビットによってプログラムされます。 ここで、Vdd の立ち上がりが遅すぎてすべての遅延が起動時に発生し、電源がまだ最小 Vdd(min) ヘルス値に達していないという問題があります。 このような場合、外部 RC チェーンを使用して /MCLR にリセットすることをお勧めします。 下はチェーン

マイクロコントローラーPIC16C84。 簡単な説明

ここでは、ダイオードを使用して、電源がオフになったときにコンデンサをすばやく放電できます。 抵抗 R < 40 kΩ を推奨します。0,2V を超えないようにしてください。 100オームの抵抗

ウォッチドッグタイマー

ウォッチドッグ タイマーは、外部回路を一切必要としない完全に独立した内蔵 RC ジェネレータです。 SLEEP コマンドの場合のように、メイン オシレータが停止していても実行されます。 タイマーはリセット信号を生成します。 このようなリセットの生成は、特別な WDTE 構成ビットにゼロを書き込むことによって無効にすることができます。 この操作は、マイクロ回路を焼く段階で実行されます。

遅延 WDT

公称 WDT 遅延は 18 ms (分周器を使用しない場合) です。 それは、温度、供給電圧、マイクロ回路タイプの機能に依存します。 大きな遅延が必要な場合は、最大 1:128 の分周比を持つ内蔵分周器を WDT に接続できます。 これは、OPTION レジスタに書き込むことによってプログラムされます。 ここでは最大 2.5 秒の露出を実現できます。

「CLRWDT」および「SLEEP」コマンドは、WDT に接続されている場合、WDT と分周器をリセットします。 これにより、遅延が最初から開始され、リセット信号がしばらく生成されなくなります。 WDT からのリセット信号が発生すると、同時にステータスレジスタ (f3) の "TO" ビットがリセットされます。 ノイズの多いアプリケーションでは、OPTION レジスタの内容が失敗する傾向があります。 したがって、OPTION レジスタは定期的に更新する必要があります。

最悪の組み合わせは、Vdd=min、温度=max、および最大分割係数であることに注意してください。これにより、最長の時間遅延が発生し、最大で数秒になる可能性があります。

発電機の種類

PIC16C84 水晶振動子は、1 種類の内蔵発振器で動作します。 ユーザーは 0 つの構成ビット (FOSCXNUMX と FOSCXNUMX) をプログラムして、RC、LP、XT、HS の XNUMX つのモードから XNUMX つを選択できます。

PIC16... 水晶振動子は、外部ソースからクロックすることもできます。 水晶振動子またはセラミック振動子で構築された発振器は、電源投入後に安定化期間が必要です。 これを行うために、内蔵オシレータ スタート タイマーは、/MCLR チップ ピンの信号が論理 18 に達した後、デバイスを約 XNUMX ミリ秒リセット状態に保ちます。 したがって、多くの場合、/MCLR に関連付けられた外部 RC チェーンは必要ありません。

内蔵発電機は、供給電圧の特定の定格で動作可能です。

マイクロコントローラーPIC16C84。 簡単な説明

注意! 500 kHz 未満の周波数では、ポート A のビット 0 がトグルされると、内部オシレータが誤った高調波パルスを生成する場合があります. これは、外部オシレータまたは内蔵 RC オシレータを使用する場合には発生しません.

クォーツジェネレーター

PIC16C84-XT、-HS、または -LP では、OSC1 および OSC2 ピンに水晶振動子またはセラミック振動子を接続する必要があります。

マイクロコントローラーPIC16C84。 簡単な説明

マーキングは次のとおりです。XT - 標準水晶発振器、HS - 高周波水晶発振器、LP - 経済的なアプリケーション向けの低周波発振器。 「HS」発振器には、特に 20 MHz 未満で高調波を減衰させるために Rs 抵抗が必要になる場合があります。 AT ストリップカット共振器を使用する XT モードでも必要になる場合があります。 セラミック共振器のコンデンサの選択。

マイクロコントローラーPIC16C84。 簡単な説明

静電容量が大きくなると、発電機の安定性が向上しますが、起動時間も長くなります。 値はガイダンスとしてのみ提供されています。 HSおよびXTモードでは、高調波を回避するために直列抵抗Rsが必要になる場合があります。

rcジェネレーター。

速度とタイミングの精度が必要ない場合、PIC16C84-RCなどのOTP水晶はコストを節約し、単純なRC発振器を実装します。

マイクロコントローラーPIC16C84。 簡単な説明

周波数は、電源電圧、抵抗 Rext、コンデンサ Cext、および温度の関数です。 また、発振器の周波数はバッチごとにわずかに異なります。 生成周波数は水晶ケースの固有容量の影響を受け、その影響は Cext の値が小さい場合に顕著です。 R 素子と C 素子のドリフトも考慮する必要があります。 Rext 値が 2.2 kΩ 未満の場合、発電機が不安定になるか、始動しない可能性があります。 Rext の値が非常に高い場合 (例: 1 MΩ)、発電機は干渉、湿度、設置電流の漏れに敏感になります。

推奨される Rext 値は 5 kΩ から 100 kΩ の間です。 発振器は外付けコンデンサなし (Cext = 0) で動作しますが、安定性を高めるために 20 pF 以上のコンデンサを使用することをお勧めします。 Cext がほとんどまたはまったくない場合、発振器の周波数は実装容量に大きく依存します。 R の値が大きいほど (また、C の値が小さいほど) 広がりが大きくなります (この場合、容量の取り付けの影響がより顕著になるため)。

オシレータ周波数を 4 で割った信号が OSC2/CLKOUT ピンに出力され、他の回路のテストやタイミングの目的で使用できます。

外部励起

マイクロコントローラーPIC16C84。 簡単な説明

オプションレジスタ

OPTION レジスタ (アドレス 81h) は読み取りと書き込みに使用でき、RTCC または WDT、外部割り込み INT のエッジ サイン、および RTCC の外部信号に接続されているリミッタの構成を決定するさまざまな制御ビットが含まれています。 、RB ポートのアクティブな負荷接続。

レジスタ OPTION アドレス 81h

パワーオン値 = FFH

マイクロコントローラーPIC16C84。 簡単な説明

PSA - 分周器を接続するビット: 0 - RTCC

1-WDT

RTE - 外部 RTCC 信号のエッジ:

0-RTCCピンの立ち上がりエッジの増分

1 - RTCC ピンのネガティブ エッジ インクリメント

RTS - RTCC の信号源

0 - 内部ジェネレーターからの信号

1-RTCCレッグの外部信号

INTEDG-シグナルエッジINT:

0 - INT ピンのネガティブ エッジで割り込み

1 - INT ピンのポジティブ エッジ割り込み

/RBPU - ポート B への反転アクティブ ロード接続ビット。

/RBPU = 0: アクティブな負荷は、RB ポート アルゴリズムに従って接続されます。

/RBPU = 1: ポート B のアクティブ ロードは常に無効です。

分周器の接続

RTCC の前またはウォッチドッグ タイマーの後に、同じ 0 ビット カウンターを有効にすることができます。 分周器は、これらのデバイスのいずれかでのみ機能することに注意してください。 繰り返しますが、分周器が RTCC で動作する場合、現時点ではウォッチドッグ タイマーで動作しないことを意味し、その逆も同様です。 カウンタ有効化方式 (セクション RTCC:RTCC を参照)。OPTION レジスタの PSA および PS2-PS16 ビットは、分周器が動作するデバイスと分周係数の設定を決定します。分周器が RTCC に接続されている場合、RTCC に書き込むすべてのコマンド (たとえば、CLRF 1 MOVWF 1、BSF XNUMX、x... など) は、分周器をリセットします. ウォッチドッグ タイマーに接続すると、ウォッチドッグ タイマーと共にリミッターが CLRWDT コマンドをリセットします. RTCC から WDT に切り替えるプログラムの一部

1. MOVLW B`xx0x0xxx` ;内部クロックと除数の新しい値を選択します。 ;除数の新しい値が

2. OPTION ;`000` または `001` の場合、別の除数値を一時的に選択する必要があります。

3. CLRF 1 ; RTCC と分周器をリセットします。

4. MOVLW B`xxxx1xxx` ;除数の値を変更せずに WDT を選択します。

5.オプション

6.CLRWDT;WDTと分周器をリセットします。

7. MOVLW B`xxxx1xxx` ;除数の新しい値を選択します。

8.オプション

項目 1 と 2 は、外部パルス ソースが RTCC に接続されている場合にのみ必要です。 係数が

分割は `000` または `001` に設定する必要があります。

スプリッターを WDT から RTCC に切り替える

1.CLRWDT;WDTと分周器をリセットします。

2. MOVLW B`xxxx0xxx` ;除数の新しい値である RTCC を選択;信号源。

3. オプション これらのプログラムは、WDT が無効の場合でも使用する必要があります。

構成語

PIC16C84 水晶振動子には 0 つの構成ビットがあり、これらは EEPROM に保存され、チップのプログラミング段階で設定されます。 これらのビットは、適切なデバイス構成オプションを選択するために、プログラムする (「1」として読み取る) またはプログラムしないままにする (「2007」として読み取る) ことができます。 これらのビットは、アドレス XNUMXh の EEPROM メモリにあります。 ユーザーは、このアドレスがコード領域の下にあり、プログラムで使用できないことを覚えておく必要があります。 構成 EEPROM セル。

マイクロコントローラーPIC16C84。 簡単な説明

CP - コード保護ビット。

CP=1:暗証番号無効

CP = 0: セキュリティ コードが有効

ワードの残りのビットは使用されず、XNUMX として読み取られます。

個別ラベル

PIC16C84クリスタルには、(2000h-2003h)にある0つのワードがあります。これらは、ユーザー識別コード(ID)、チェックサム、またはその他の情報を格納するために使用されます。 構成ワードと同様に、プログラマーのみが読み取りまたは書き込みを行うことができます。 それらへのプログラムアクセスはありません。 水晶が保護されている場合は、識別に各ワードIDの下位XNUMXビットのみを使用し、上位ビットに「XNUMX」を書き込むことをお勧めします。 そうすれば、保護されたバージョンでも単語IDを読み取ることができます。

プログラムの読み取りからの保護

チップに書き込まれるプログラム コードは、コンフィギュレーション ワードの保護ビット (CP) を XNUMX に設定することで読み取り保護できます。 プログラムの内容は、それを操作できるような方法で読み取ることはできません。 また、プロテクトビットがセットされると、プログラムの変更ができなくなります。 同じことが EEPROM データ メモリの内容にも当てはまります。

保護が設定されている場合、CP ビットは水晶振動子の内容と共にのみ消去できます。 EEPROM プログラム メモリとデータ メモリが最初に消去され、最後に CP コード保護ビットが消去されます。

プロテクションが取り付けられたクリスタルのチェック。 保護されたチップを読み取る場合、任意のメモリ アドレスを読み取ると、0000000XXXXXXX (バイナリ) のような結果が得られます。ここで、X は 0 または 1 です。保護されたチップのメモリの整合性をチェックするには、次の規則に従います。

1)動作中の水晶をプログラムし、動作を確認します。

2) プログラム コードの保護を設定し、プログラム メモリの内容を参照ファイルに読み込みます。

3) プログラムメモリをこのベンチマークの内容と比較して、保護されたチップを検証します。

セキュリティ ビットが設定された後は、EEPROM データ メモリをチェックすることはできません。

低電力モード

SLEEPモードは、SLEEPコマンドによって開始されます。 このコマンドでは、WDTが有効になっている場合、WDTがリセットされて計時が開始され、ステータスレジスタ(f3)の「PD」ビットがリセットされ、「TO」ビットがセットされ、内部発振器がオフになります。 I / Oポートは、スリープモードに入る前の状態を保持します。 このモードでの消費電流を減らすには、水晶と外部回路の間に電流が流れないようにピンを設定する必要があります。 高抵抗入力のフローティングによって引き起こされるスイッチング電流を回避するために、入力ピンは外部の高抵抗または低抵抗に接続する必要があります。 同じことがRTCCにも当てはまります。 脚/MCLRはVihmcによって通電される必要があります。

SLEEP モードからの終了は、次のイベントの結果として実行されます。

1.外部リセット-ピン/MCLRの低レベルパルス。

2. WDT がトリガーされたときにリセットする (有効な場合)

3.割り込み。 (INT ピンでの割り込み、ポート B の変化での割り込み、EEPROM データの書き込み完了での割り込み)。

最初のイベントはデバイス全体をリセットします。 他の 3 つのイベントは、プログラムが引き続き実行されていることを示しています。 ステータス レジスタ (fXNUMX) の「PD」ビットは、電源投入時に設定されますが、「SLEEP」コマンドによってリセットされます。このビットを使用して、「ウェイク アップ」前のプロセッサの状態を判断できます。 "SLEEP" (ウォーム スタート)、または電源オフ (コールド スタート) でした。 「TO」ビットを使用すると、SLEEP モードからの復帰の原因を特定できます。/MCLR ピンの外部信号か、WDT の動作のいずれかです。

デバイスが割り込みによって SLEEP モードからウェイクアップするには、INTCON レジスタに適切なマスクを設定して割り込みを有効にする必要があります。 SLEEP モードを終了するとき、汎用マスクがすべての割り込みを無効にすると (GIE=0)、バックグラウンド プログラムが実行されます。 GIE=1 の場合、割り込みルーチンが実行されます。

電気パラメータの最大値

これらの制限外のパラメータは、チップを損傷する可能性があります。 クリスタルを限界値で長時間動作させると、信頼性に影響します。

マイクロコントローラーPIC16C84。 簡単な説明

備考:

1. 各筐体の総消費電力は 800mW を超えてはなりません。 消費電力は、次の式を使用して計算されます。

Pdis= Vdd(Idd - Sum(Ioh)) + Sum ((Vdd - Voh)Ioh) + Sum (Vol Iol)

2. /MCLR ピンの電圧を Vss (グランド) より下げると、80mA を超える大電流が発生し、このラインが損傷する可能性があります。 したがって、50 ~ 100 オームの終端抵抗を介して /MCLR ピンに信号を適用することをお勧めします。

DC パラメータ

DC仕様:PIC16C84-04、PIC16C84-10。

(商用、産業、自動車のパフォーマンス用)。

メメックバルティック株式会社Memec International Components Group および Raab Karcher Electronics Group のメンバーです。 この電子部品販売業者グループは、最新の電子技術と半導体部品の販売におけるリーダーです。

メメックバルティック株式会社は MEMEC グループの代表であり、ロシア、ウクライナ、ベラルーシ、バルト諸国における Microchip と Raychem の公式販売代理店です。

メメックバルティック株式会社

出版物:N。ボルシャコフ、rf.atnn.ru

他の記事も見る セクション マイクロコントローラー.

読み書き 有用な この記事へのコメント.

<<戻る

科学技術の最新ニュース、新しい電子機器:

庭の花の間引き機 02.05.2024

現代の農業では、植物の世話プロセスの効率を高めることを目的とした技術進歩が進んでいます。収穫段階を最適化するように設計された革新的な Florix 摘花機がイタリアで発表されました。このツールには可動アームが装備されているため、庭のニーズに簡単に適応できます。オペレーターは、ジョイスティックを使用してトラクターの運転台から細いワイヤーを制御することで、細いワイヤーの速度を調整できます。このアプローチにより、花の間引きプロセスの効率が大幅に向上し、庭の特定の条件や、そこで栽培される果物の種類や種類に合わせて個別に調整できる可能性が得られます。 2 年間にわたりさまざまな種類の果物で Florix マシンをテストした結果、非常に有望な結果が得られました。フロリックス機械を数年間使用しているフィリベルト・モンタナリ氏のような農家は、花を摘むのに必要な時間と労力が大幅に削減されたと報告しています。 ... >>

最先端の赤外線顕微鏡 02.05.2024

顕微鏡は科学研究において重要な役割を果たしており、科学者は目に見えない構造やプロセスを詳しく調べることができます。ただし、さまざまな顕微鏡法には限界があり、その中には赤外領域を使用する場合の解像度の限界がありました。しかし、東京大学の日本人研究者らの最新の成果は、ミクロ世界の研究に新たな展望をもたらした。東京大学の科学者らは、赤外顕微鏡の機能に革命をもたらす新しい顕微鏡を発表した。この高度な機器を使用すると、生きた細菌の内部構造をナノメートルスケールで驚くほど鮮明に見ることができます。通常、中赤外顕微鏡は解像度が低いという制限がありますが、日本の研究者による最新の開発はこれらの制限を克服します。科学者によると、開発された顕微鏡では、従来の顕微鏡の解像度の 120 倍である最大 30 ナノメートルの解像度の画像を作成できます。 ... >>

昆虫用エアトラップ 01.05.2024

農業は経済の重要な分野の 1 つであり、害虫駆除はこのプロセスに不可欠な部分です。インド農業研究評議会 - 中央ジャガイモ研究所 (ICAR-CPRI) シムラーの科学者チームは、この問題に対する革新的な解決策、つまり風力発電の昆虫エアトラップを考案しました。このデバイスは、リアルタイムの昆虫個体数データを提供することで、従来の害虫駆除方法の欠点に対処します。このトラップは風力エネルギーのみで駆動されるため、電力を必要としない環境に優しいソリューションです。そのユニークな設計により、有害な昆虫と有益な昆虫の両方を監視することができ、あらゆる農業地域の個体群の完全な概要を提供します。 「対象となる害虫を適切なタイミングで評価することで、害虫と病気の両方を制御するために必要な措置を講じることができます」とカピル氏は言います。 ... >>

アーカイブからのランダムなニュース

チーズの有用な特性 13.05.2020

アメリカの科学者による新しい研究は、チーズが多くの有用な特性を持っていることを証明しています.

最近では、チーズは体と「老化」に害を及ぼすと考えられていました。 しかし、アメリカの科学者による最近の研究では、チーズには多くの有用な特性があることが示されています.

たとえば、多くのチーズには、心臓病のリスクを軽減する乳酸が含まれています。 さらに、この製品には、体細胞の再生に関与する多くのタンパク質と脂肪、および新しい細胞が形成されるビタミンDとまれなB12が含まれています-赤血球。

チーズには有益なバクテリアが含まれており、その発酵により、この製品の使用は腸内微生物叢に有益な効果をもたらし、代謝プロセスを改善します。

その他の興味深いニュース:

▪ コーヒーかすのディーゼル

▪ 動脈圧連続測定リング

▪ バクテリアのコロニーに基づく光電子メモリ

▪ 線量計としての CD

▪ SteelSeries Siberia Elite ゲーミング ヘッドセット

科学技術、新しいエレクトロニクスのニュースフィード

 

無料の技術ライブラリの興味深い資料:

▪ サイトの「児童科学実験室」セクション。 記事の選択

▪ 記事 技術的手段と技術的プロセスの安全性の確保。 安全な生活の基本

▪ 記事 ノーベル賞とは何ですか? 詳細な回答

▪ 記事 機械および装置の洗浄およびクリーニング。 労働保護に関する標準的な指示

▪ 記事 144 MHz カーアンテナ。 無線エレクトロニクスと電気工学の百科事典

▪ 記事 トロイダル電源トランスの巻き方。 無線エレクトロニクスと電気工学の百科事典

この記事にコメントを残してください:

Имя:


Eメール(オプション):


コメント:





このページのすべての言語

ホームページ | 図書館 | 物品 | サイトマップ | サイトレビュー

www.diagram.com.ua

www.diagram.com.ua
2000-2024