1980年、インテルはハーバードアーキテクチャ8051を搭載した最初のマイクロコントローラー(8051)を開発し、それ以来、マイクロコントローラーはエレクトロニクスおよび組み込み業界に革命をもたらしました。そして、時間の経過に伴う技術の進歩により、AVR、PIC、ARMなどのより効率的で低電力のマイクロコントローラーが数多く登場しました。これらのマイクロコントローラーは、USB、I2C、SPI、CANなどの最新の通信プロトコルを備えており、より高性能で使いやすいです。ArduinoやRaspberry Piでさえ、マイクロコントローラーに対する見方を完全に変えました。RaspberryPiは単なるマイクロコントローラーではなく、全体を備えています。内部のコンピューター。
これは、これから行われる一連のチュートリアルの最初の部分であり、PICマイクロコントローラーの学習に役立ちます。エレクトロニクスのバックグラウンドを持っていて、常にいくつかのマイクロコントローラーの学習から始めて、コーディングと構築の世界に身を置きたい場合は、この一連のチュートリアルが最初のステップになります。
PICマイクロコントローラーは、優れたサポートフォーラムがあり、まだ学習していないすべての高度なマイクロコントローラーを構築するための強力な基盤として機能するため、マイクロコントローラープロジェクトを開始するのに非常に便利な選択肢です。
これらのチュートリアルは、絶対学習者または中級学習者向けに作成されています。最も基本的なプロジェクトから高度なプロジェクトまでを開始する予定です。私たちはあらゆるレベルからあなたを助けるためにここにいるので、学習者からの前提条件はないと期待しています。すべてのチュートリアルには、理論的な説明とシミュレーションがあり、その後に実践的なチュートリアルが続きます。これらのチュートリアルには開発ボードは含まれていません。パフォーマンスボードを使用して独自の回路を作成します。ですから、準備を整えて、マイクロコントローラーであなたを強化するために毎週時間を作ってください。
それでは、PICマイクロコントローラーの簡単な紹介といくつかのソフトウェアセットアップから始めて、次のチュートリアルを実行してみましょう。MPLABX、XC8、Proteusのインストールとセットアップ、およびPICkit 3プログラマーの簡単な開封については、最後のビデオを確認してください。
PICマイクロコントローラーのアーキテクチャとアプリケーション:
PICマイクロコントローラーは1993年にMicrochipTechnologiesによって導入されました。元々これらのPICはPDP (Programmed Data Processor)コンピューターの一部として開発され、コンピューターの各周辺機器はこのPICマイクロコントローラーを使用してインターフェースされました。したがって、PICはPeripheral InterfaceControllerと同じ名前になります。その後、マイクロチップ社は、照明アプリケーションから高度なアプリケーションまで、あらゆる小さなアプリケーションに使用できる多くのPICシリーズICを開発しました。
すべてのマイクロコントローラーは、いくつかのアーキテクチャーを中心に構築されます。最も有名なタイプのアーキテクチャーはハーバードアーキテクチャーです。PICは、クラシックな8051ファミリーに属しているため、このアーキテクチャーに基づいています。PICのハーバードアーキテクチャについて簡単に紹介します。
PIC16F877Aマイクロコントローラは、初心者で開始することができるICに強力なマイクロコントローラを収集する内蔵のCPU、I / Oポート、メモリ構成、A / D変換器、タイマ/カウンタ割り込み、シリアル通信、発振器とCCPモジュールから成ります。PICアーキテクチャの一般的なブロック図を以下に示します。
CPU(中央処理装置):
マイクロコントローラには、算術演算、論理演算、およびメモリ関連の演算を実行するためのCPUが搭載されています。CPUは、RAMとマイクロコントローラーの他の周辺機器の間で調整する必要があります。
これは、ALU(Arithmetic Logic Unit)で構成されており、これを使用して算術演算と論理決定を実行します。A MU(メモリーユニット)も、それらが実行されます後に命令を格納するために存在しています。このMUは、MCのプログラムサイズを決定します。また、CPUとマイクロコントローラの他の周辺機器との間の通信バスとして機能するCU(コントロールユニット)で構成されています。これは、指定されたレジスタで処理された後のデータのフェッチに役立ちます。
ランダムアクセスメモリ(RAM):
ランダムアクセスメモリは、マイクロコントローラの速度を決定するメモリです。RAMは、その中のレジスタバンクで構成され、各レジスタバンクには特定のタスクが割り当てられています。全体として、それらは2つのタイプに分類できます。
- 汎用レジスタ(GPR)
- 特殊機能レジスタ(SFR)
名前が示すように、GPRは加算、減算などの一般的なレジスタ機能に使用されます。これらの演算は8ビットに制限されています。GPRの下のすべてのレジスタは、ユーザーが書き込みおよび読み取り可能です。ソフトウェアで指定されていない限り、それら自体には機能がありません。
一方SFRが複雑特殊な機能を実行するために使用される(R)も、いくつかの16ビットの取り扱いを必要とする、彼らのレジスタは読み出しのみ可能と我々は彼らに何も(W)を書き込むことはできません。したがって、これらのレジスタには実行する定義済みの機能があり、製造時に設定され、結果を表示するだけで、関連する操作を実行できます。
読み取り専用メモリ(ROM):
読み取り専用メモリは、プログラムが保存される場所です。これにより、プログラムの最大サイズが決まります。したがって、プログラムメモリとも呼ばれます。MCUが動作しているとき、ROMに格納されているプログラムは各命令サイクルに従って実行されます。このメモリユニットは、PICのプログラミング中にのみ使用でき、実行中は読み取り専用メモリになります。
電気的に消去可能でプログラム可能な読み取り専用メモリ(EEPROM):
EEPROMは別のタイプのメモリユニットです。このメモリユニットには、プログラムの実行中に値を格納できます。ここに保存されている値は電気的に消去可能であるため、ICがオフになってもこれらの値はPICに保持されます。これらは、実行された値を格納するための小さなメモリスペースとして使用できます。ただし、メモリスペースはKB単位で非常に少なくなります。
フラッシュメモリ :
フラッシュメモリは、プログラムの読み取り、書き込み、および消去を何千回も実行できるプログラム可能な読み取り専用メモリ(PROM)でもあります。通常、PICマイクロコントローラはこのタイプのROMを使用します。
I / Oポート
- PIC16F877Aは、ポートA、ポートB、ポートC、ポートD、ポートEの5つのポートで構成されています。
- 5つのポートすべてのうち、ポートAのみが16ビットで、ポートEは3ビットです。残りのポートは8ビットです。
- これらのポートのピンは、TRISレジスタの構成に基づいて、入力または出力として使用できます。
- I / O操作の実行とは別に、ピンはSPI、割り込み、PWMなどの特殊機能にも使用できます。
バス:
バスという用語は、入力デバイスまたは出力デバイスをCPUおよびRAMに接続する一連のワイヤです。
データバスは、データを転送または受信するために使用されます。
アドレスバスは、メモリアドレスを周辺機器からCPUに送信するために使用されます。I / Oピンは、外部周辺機器とのインターフェースに使用されます。UARTとUSARTはどちらもシリアル通信プロトコルで、GSM、GPS、Bluetooth、IRなどのシリアルデバイスとのインターフェースに使用されます。
チュートリアル用のPICマイクロコントローラーの選択:
Microchip CompanyのPICマイクロコントローラーは、4つの大きなファミリーに分かれています。各ファミリには、組み込みの特別な機能を提供するさまざまなコンポーネントがあります。
- 最初のファミリであるPIC10(10FXXX)はローエンドと呼ばれます。
- 2番目のファミリであるPIC12(PIC12FXXX)–はミッドレンジと呼ばれます。
- 3番目のファミリはPIC16(16FXXX)です。
- 4番目のファミリーはPIC17 / 18(18FXXX)です
PICについて学び始めたので、普遍的に使用され、利用可能なICを選択しましょう。このICは16Fファミリーに属しており、ICの部品番号はPIC16F877Aです。最初のチュートリアルから最後まで、このICがSPI、I2C、UARTなどのすべての高度な機能を備えているのと同じICを使用します。しかし、これらのいずれも得られない場合は、完全に問題ありません。すべてのチュートリアルを進め、最終的に上記のすべての機能を使用します。
ICを選択したら、ICのデータシートを読むことが非常に重要です。これは、これから試みるコンセプトの最初のステップになるはずです。このPIC16F877Aを選択したので、データシートでこのICの仕様を読み通してみましょう。
周辺機能に は、3つのタイマーがあり、そのうち2つは8ビットで、1つは16ビットのプリスケーラーであると記載されています。これらのタイマーは、プログラムでタイミング関数を作成するために使用されます。カウンターとしても使用できます。また、CCP(キャプチャ比較およびPWM)オプションがあることも示しています。これは、PWM信号を生成し、入力周波数信号を読み取るのに役立ちます。外部デバイスとの通信には、SPI、I2C、PSP、USARTがあります。安全上の理由から 、whileプログラムのリセットに役立つブラウンアウトリセット(BOR)が装備されています。
アナログ機能は 、ICに10ビットの8チャネルADCがあることを示します。つまり、私たちのICは、アナログ値を10ビットの分解能でデジタルに変換でき、それらを読み取るための8つのアナログピンを備えています。また、ソフトウェアで実際に読み取ることなく、入力電圧を直接比較するために使用できる2つの内部コンパレータもあります。
特別なマイクロコントローラは、機能 、それが持っていることを意味し、10万消去/書き込みサイクルを使用すると、10万回程度のためにそれをプログラムすることができることを意味し。インサーキットシリアルプログラミング™(ICSP™)は、PICKIT3を使用してICを直接プログラムするのに役立ちます。デバッグは、In-Circuit Debug(ICD)を介して行うことができます。もう1つの安全機能は、ウォッチドッグタイマー(WDT)です。これは、必要に応じてプログラム全体をリセットする自己信頼型タイマーです。
以下の画像は、PIC16F877AICのピン配列を表しています。この画像は、各ピンの名前とその他の機能を表しています。これはデータシートにも記載されています。この画像を手元に置いておくと、ハードウェアの作業中に役立ちます。
チュートリアル用のソフトウェアの選択:
PICマイクロコントローラは、市場で入手可能なさまざまなソフトウェアでプログラムできます。PICMCUをプログラムするためにまだアセンブリ言語を使用している人々がいます。チュートリアルでは、Microchip自体が開発した最先端のソフトウェアとコンパイラを選択しました。
PICマイクロコントローラーをプログラミングするには、プログラミングが行われるIDE(統合開発環境)が必要です。コンパイラ、私たちのプログラムはHEXファイルと呼ばれるMCU読める形式に変換されます。アンIPE(統合プログラミング環境)私たちのPICマイコンに私達のHEXファイルをダンプするために使用されています、。
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
コンパイラ: XC8
Microchipは、これら3つのソフトウェアすべてを無料で提供しています。公式ページから直接ダウンロードできます。私はあなたの便宜のためにリンクも提供しました。ダウンロードしたら、コンピュータにインストールします。問題が発生した場合は、最後にあるビデオをご覧ください。
シミュレーションの目的のために我々はと呼ばれるソフトウェアを使用しているPROTEUS 8をLabcenterが提供します、。このソフトウェアは、MPLABXを使用して生成されたコードをシミュレートするために使用できます。リンクを介して公式ページからダウンロードできる無料のデモンストレーションソフトウェアがあります。
ハードウェアの準備:
すべてのチュートリアルはハードウェアで終わります。シミュレーションの信頼性が非常に低いため、PICを可能な限り最良の方法で学習するには、ハードウェアを介してコードと回路をテストすることを常にお勧めします。シミュレーションソフトウェアで動作するコードは、ハードウェアで期待どおりに動作しない場合があります。したがって、コードをダンプするために、Perfボード上に独自の回路を構築します。
PICに私たちのコードをダンプまたはアップロードするには、我々が必要となりますのPICkit 3.ザ・ てPICkit 3 プログラマ/デバッガをMPLAB IDE(v8.20以降)を実行しているPCで制御され、シンプルで低コストのインサーキットデバッガでのソフトウェアWindowsプラットフォーム。 PICkit 3 プログラマ/デバッガは、開発エンジニアのツールスイートの不可欠な部分です。これに加えて、Perfボード、はんだ付けステーション、PIC IC、水晶発振器、コンデンサなどの他のハードウェアも必要になります。ただし、チュートリアルを進めながら、それらをリストに追加します。
アマゾンからPICkit3を持ってきました。同じものの開封動画は、以下の動画にあります。PICKIT3のリンクも提供されています。価格は少し高いかもしれませんが、投資する価値があると私を信じてください。