Special
» 2014年04月23日 10時00分 UPDATE

魔法の部品“マイコン“を使いこなそう!(3):マイコンはどうやって動くのか? 〜LEDを光らせてみる〜

今回はCPUがどのように周辺機能を動かしているのかを説明します。さらに、Spansion(スパンション)製のARMマイコン「FMファミリ/MB9BF568R」を例に、LEDを光らせる方法を説明します。

[PR/EE Times]
PR

tt140416DP001.jpg

 前回はマイコンで何ができるかを知るために、その中身を少し詳しく見てみました。さらに、ARM(アーム)と呼ばれるマイコンの種類について説明しました。

 今回はCPUがどのように周辺機能を動かしているのかを説明します。後半では、Spansion(スパンション)製のARMマイコン「FMファミリ/MB9BF568R」を例に、LEDを光らせる方法を説明していきます。


マイコンへの命令書が「プログラム」

 マイコンが、CPUと周辺機能からなる電子部品であることは、前回説明しました。では、実際にCPUはどのように周辺機能を動かしているのでしょうか? いくら有能な計算機でも、何を計算させたいかを入力しなければ動きませんよね。

 この「マイコンに何をさせたいか」を表す命令が書かれているのが「プログラム」です。

 そして、マイコンの中でこのプログラムを格納する場所を「メモリ」といいます。メモリは、ある一定の大きさの箱の集まりからできていて、各箱にその位置を示す「アドレス」が割り振られています。

 一般的に、プログラムを格納するメモリには、電源を切ってもデータが消えない、不揮発性メモリが使われています(逆に、電源を供給しなければデータを保持できないメモリを揮発性メモリといいます)。

 Spansion製FMファミリでは、プログラムを格納するメモリとして「フラッシュメモリ」を搭載しています。フラッシュメモリは、電源を切ってもデータが消えず、データの書き換えが可能なため、万が一プログラムに間違いがあった場合でもプログラムを修正して再び書き込むことができます。

 さて、ここまでマイコンを動作させるために「プログラム」が必要であること、そのプログラムを格納する「メモリ」がマイコンに搭載されていることを説明してきました。ここからは、CPUがフラッシュメモリに保存されたプログラムを使って、どのように周辺機能を動かしたり、計算をしたりしているかを見ていきましょう。

1.フラッシュメモリにプログラムを書き込む

 まず、マイコンを動かす準備として、作成したプログラムをマイコンに搭載されているフラッシュメモリに書き込みます。書き込み方法は、実際にマイコンに積まれている周辺機能によって変わってきますが、USBを使用する方法や、マイコンの周辺機能のシリアル通信機能を使用する方法などがあります。いずれの方法でも、マイコンの端子を通して書き込みを行います。

2.CPUがフラッシュメモリからプログラムを読み込む(命令フェッチ)

 電源を入れると、CPUはフラッシュメモリのプログラムを取りに行きます。この動作を「命令フェッチ」といいます。CPUは、プログラムを正しい順番で取りに行くために、次のプログラムが置かれているフラッシュメモリのアドレスを自分の中に持っています。CPUは、このアドレスを見て、フラッシュメモリにプログラムを取りに行きます。取り出したプログラムはCPUに保存されます。

3.CPUがフラッシュメモリから取ってきたプログラムを解析する(命令デコード)

 次に、CPUは「2.」でフラッシュメモリから取ってきて保存したプログラムが、どのような命令なのかを解析します。この動作を「命令デコード」といいます。

4.CPUが解析した命令を実行する

 最後に、CPUは「3.」で解析した命令を「実行」します。周辺機能を動かすために命令を出したり、計算を行ったりします。周辺機能は、CPUからの命令に従って動作を開始します。

TT140423EI001.jpg 【図1】マイコン動作の流れ(左)とCPUの命令処理の流れ (クリックで拡大)

 ここまでの説明を簡単にまとめます。

・マイコンにはプログラムを格納するメモリが搭載されています。

・マイコンを動かすには、あらかじめメモリにプログラムを書き込む必要があります。

・CPUは「命令フェッチ」「命令デコード」「実行」の順番で命令を処理して周辺機能を動かします。

LEDを光らせよう

 現在、身の回りには、LED(発光ダイオード)を使用した製品が数多く存在します。イルミネーションの電飾、信号機やLED電球、電車の行先掲示板なんかにもLEDが使われています。このように、さまざまなところで使用され、今や私たちの生活になくてはならないLEDですが、実はマイコンを使用すれば、簡単に制御することができます。マイコン内部の周辺機能を使用することで、LEDをただ光らせるだけではなく、一定の間隔で点けたり消したり、明るさをゆっくり変えていったりといった、電池を付けるだけでは実現できない少し複雑な動作をさせることができます。この少し複雑な制御については、次回に説明することにします。

 ここからは、Spansion製FMファミリ「MB9BF568R」を例として、LEDを光らせる方法を説明します。

TT140423EI002.jpg 【図2】MB9BF568R(LQFP120)

 MB9BF568Rは、ARM社のCPUを搭載しているARMマイコンです。マイコンに電源を供給するためのピンも含めて120本の端子を持っています。ここでは全てを書きませんが、周辺機能としては、USBと接続するためのUSBインタフェース、アナログ信号をデジタル信号に変換するA/Dコンバータ、逆にデジタル信号をアナログ信号に変換するD/Aコンバータ、時間を計ったり信号の幅を測定したりするのに使用するさまざまなタイマーなどを搭載しています。

 今回は、MB9BF568Rの14ピン(14番目の端子)「P30」にLEDを接続します。また、マイコンに供給する電源の電圧は3.3Vとします。

 「P30」は「汎用I/Oポート」という機能により、端子を入力方向に設定したり、出力方向に設定にしたりすることができます。入力方向にすると、外部からの信号をマイコンに取り込むことができます。出力方向にすると、マイコンから電源電圧と同じくらいの電圧の信号(Hレベル信号)を出したり、出力を0V(Lレベル)に落としたりすることができます。

 プログラムを作成する前に、何をやりたいのかを整理しておきましょう。

 今回やりたいこと(マイコンにさせたいこと)は、P30に接続したLEDを光らせることです。では、どうすればLEDは光るのでしょうか?答えは簡単で、豆電球と同じように電源を使ってLEDに電圧をかけて電流を流せばいいのです(電流の流れすぎで電源やLEDを壊さないように、必ず抵抗を入れましょう)。今回はLEDに電圧をかける役割をMB9BF568Rに担ってもらいます。

 やりたいことが明確になったら、いよいよプログラムを作成します。今回は、P30に接続しているLEDに電圧をかけたいので、まずは、P30を出力方向として使用するようにプログラムします。次に、P30からHレベルを出力させるようにプログラムします。これでプログラムは完成です。作成したプログラムをマイコン内部のフラッシュメモリに書き込みましょう。

 ここまで来たらあとは、簡単です。マイコンに電源を入れるだけで、CPUが、フラッシュメモリからプログラムを読み出し、命令を解析して、汎用I/Oポートに「P30を出力設定して、Hレベルを出力しろ」という命令を出してくれます。汎用I/Oポートは、CPUからの命令通りにP30からHレベル(今回の場合は3.3Vくらい)を出力します。

 これで、LEDに電圧がかかり、LEDを光らせることができます。

TT140423EI003.jpg 【図3】LEDを光らせよう (クリックで拡大)

 今回は、マイコンのCPUがどのように周辺機能を動かしているのかを見ていきました。また、FMファミリMB9BF568Rを使ってLEDを光らせる方法を説明しました。次回は、MB9BF568Rの周辺機能を利用して、もう少し複雑にLEDを光らせる方法を考えてみましょう。また、マイコンがどのようなものに使用されているのか、FMファミリを例に具体的見ていき、私たちの生活にマイコンがどのように関わっているのかを見ていきましょう。


※この記事は電波新聞社発行の電子工作マガジンの2013冬号に掲載されたものです。許可を得て転載しています。



Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:Spansion Inc.(スパンション)
アイティメディア営業企画/制作:EE Times Japan 編集部/掲載内容有効期限:2014年5月22日

ニュースリリース/トピックス/イベント

サイプレスの6チャネル車載PMICとFL-S NORフラッシュメモリソリューションがデンソー社のステレオ画像センサに採用!小型フットプリントと世界クラスの性能を備えており、センサ全体の電力調整と、高速なプログラム実行を実現

3Dグラフィックスと最大6個の従来型メーターのハイブリッド インスツルメント クラスターおよびヘッドアップ ディスプレイ向けに、より大容量のメモリを搭載。アプリケーションの実現に向けて、高い拡張性とコスト効率を両立します。

業界で最も低消費電力で柔軟性の高いMCUであるPSoC 6 BLEに、Bluetooth Low Energyコネクティビティ機能とセキュリティ機能を搭載したPSoC 6 BLE Pioneer Kitを一般リリース開始しました!統合開発環境であるPSoC Creator 4.2も入手可能になりました。

新しいCYW43012 Wi-Fi/Bluetooth無線接続コンボソリューションは、消費電力を現行品と比べて受信モードで最大70%、スリープモードで最大80%削減し、バッテリー寿命を延長。高品質の接続性能と通信距離拡大により、電波環境の改善に貢献します。

Cypress EZ-PD CCG3PAソリューションがUSB Power Delivery (PD) 3.0をサポートするQualcomm® Quick Charge™ 4の認証を取得。最適な電圧および電流レベルをインテリジェントに選択して、高速で効率的な充電を実現。Quick Charge 4は安全性も強化。

無償サンプル/ツール

弊社の販売代理店よりサンプル品をオーダーすることが可能です。上記サイトより、ご希望の代理店を選択してください。

PSoCやCapSence、USBコントローラーなど、Cypress製品を使ったデザイン設計が可能なソフトウェアおよびドライバーを無償でダウンロードいただけます。

Cypress製品のあらゆるドキュメントをダウンロード可能なサイプレス ドキュメント マネージャー (CDM) を提供しています。CDMソフトウェアは上記よりダウンロードが可能です。

販売代理店(順不同)

RSSフィード

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.