<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=MSP430F149_-_%E9%9B%BB%E5%8A%9B%E3%83%A2%E3%83%BC%E3%83%89</id>
	<title>MSP430F149 - 電力モード - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=MSP430F149_-_%E9%9B%BB%E5%8A%9B%E3%83%A2%E3%83%BC%E3%83%89"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430F149_-_%E9%9B%BB%E5%8A%9B%E3%83%A2%E3%83%BC%E3%83%89&amp;action=history"/>
	<updated>2026-08-20T10:05:15Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430F149_-_%E9%9B%BB%E5%8A%9B%E3%83%A2%E3%83%BC%E3%83%89&amp;diff=13745&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == 電力モードは、マイコンの消費電力を管理するための仕組みである。&lt;br&gt; アプリケーションの要件に応じて、適切な電力モードを選択することにより、バッテリー駆動のデバイスにおける動作時間を延ばすことができる。&lt;br&gt; &lt;br&gt; * アクティブモード *: マイコンがフル機能で動作しているモードである。 *: 全てのクロックが動作し、CPUと周辺…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430F149_-_%E9%9B%BB%E5%8A%9B%E3%83%A2%E3%83%BC%E3%83%89&amp;diff=13745&amp;oldid=prev"/>
		<updated>2025-12-15T13:08:12Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == 電力モードは、マイコンの消費電力を管理するための仕組みである。&amp;lt;br&amp;gt; アプリケーションの要件に応じて、適切な電力モードを選択することにより、バッテリー駆動のデバイスにおける動作時間を延ばすことができる。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; * アクティブモード *: マイコンがフル機能で動作しているモードである。 *: 全てのクロックが動作し、CPUと周辺…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
電力モードは、マイコンの消費電力を管理するための仕組みである。&amp;lt;br&amp;gt;&lt;br /&gt;
アプリケーションの要件に応じて、適切な電力モードを選択することにより、バッテリー駆動のデバイスにおける動作時間を延ばすことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* アクティブモード&lt;br /&gt;
*: マイコンがフル機能で動作しているモードである。&lt;br /&gt;
*: 全てのクロックが動作し、CPUと周辺モジュールは通常の速度で動作する。&lt;br /&gt;
*: 消費電力が最も高くなる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 低電力モード&lt;br /&gt;
*: マイコンの一部の機能を停止または低速化することで、消費電力を抑えるモードである。&lt;br /&gt;
*: 低電力モードにはいくつかのレベルがあり、停止する機能によって分類される。&lt;br /&gt;
*: 一般的に、低電力モードのレベルが上がるほど、消費電力は低くなるが、復帰に時間がかかる場合がある。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* スリープモード&lt;br /&gt;
*: CPUを停止して、いくつかの周辺モジュールも停止するモードである。&lt;br /&gt;
*: 割り込みやリセットにより、スリープモードから復帰する。&lt;br /&gt;
*: 低電力モードの一種と考えることができる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ディープスリープモード&lt;br /&gt;
*: ほとんどの機能を停止して、最小限の消費電力で動作するモードである。&lt;br /&gt;
*: 外部割り込みやリセットにより、ディープスリープモードから復帰する。&lt;br /&gt;
*: 復帰時に、メモリの内容が失われる場合がある。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 遷移と復帰&lt;br /&gt;
*: 電力モード間の遷移は、レジスタの設定や特定の命令で行う。&lt;br /&gt;
*: 割り込みやリセットにより、低電力モードからアクティブモードに復帰する。&lt;br /&gt;
*: 復帰時に、停止していた機能を再初期化する必要がある場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
電力モードを効果的に使用するには、アプリケーションの要件を分析、および、必要な機能と応答時間を考慮して、適切なモードを選択する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
また、割り込みや周辺モジュールの設定を適切に行い、復帰時の処理を正しく実装することが重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSP430F149の電力モード ==&lt;br /&gt;
* アクティブモード (AM)&lt;br /&gt;
*: CPUと全てのクロックが動作しているモードである。&lt;br /&gt;
*: MCLK、SMCLK、ACLKが動作し、全ての周辺モジュールが使用可能である。&lt;br /&gt;
*: 消費電力が最も高くなる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 低電力モード0 (LPM0)&lt;br /&gt;
*: CPUとMCLKが停止する。&lt;br /&gt;
*: SMCLK、ACLK、DCOは動作し続ける。&lt;br /&gt;
*: 周辺モジュールがSMCLKまたはACLKを使用する場合に適している。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 低電力モード1 (LPM1)&lt;br /&gt;
*: CPU、MCLKが停止する。&lt;br /&gt;
*: DCOのループ制御も無効化される。&lt;br /&gt;
*: SMCLK、ACLKは動作し続ける。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 低電力モード2 (LPM2)&lt;br /&gt;
*: CPU、MCLK、SMCLKが停止する。&lt;br /&gt;
*: DCOも停止するが、DCジェネレータは動作し続ける。&lt;br /&gt;
*: ACLKは動作し続ける。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 低電力モード3 (LPM3)&lt;br /&gt;
*: CPU、MCLK、SMCLK、DCO、DCジェネレータが停止する。&lt;br /&gt;
*: ACLKのみ動作し続ける。&lt;br /&gt;
*: リアルタイムクロックやタイマーをACLKでクロッキングする場合に最適。&lt;br /&gt;
*: 消費電力は約0.8µA程度となる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 低電力モード4 (LPM4)&lt;br /&gt;
*: CPUと全てのクロックが停止する。&lt;br /&gt;
*: 全てのオシレータ（LFXT1、XT2、DCO）が停止する。&lt;br /&gt;
*: 消費電力が最も低くなり、約0.1µA程度となる。&lt;br /&gt;
*: 外部割り込みやリセットでのみ復帰可能。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSP430F149のクロックシステム ==&lt;br /&gt;
MSP430F149は、Basic Clock Module (BCS)を搭載しており、3種類のクロック信号と3種類のオシレータを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クロック信号 ====&lt;br /&gt;
* MCLK (Master Clock)&lt;br /&gt;
*: CPUとシステムで使用される主クロック。&lt;br /&gt;
*: LFXT1CLK、XT2CLK、DCOCLKから選択可能。&lt;br /&gt;
*: 1、2、4、8の分周が可能。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* SMCLK (Sub-Main Clock)&lt;br /&gt;
*: 周辺モジュールで使用されるサブシステムクロック。&lt;br /&gt;
*: DCOCLK、XT2CLKから選択可能。&lt;br /&gt;
*: 1、2、4、8の分周が可能。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* ACLK (Auxiliary Clock)&lt;br /&gt;
*: 補助クロック。主に低消費電力動作用。&lt;br /&gt;
*: LFXT1CLKから供給される。(通常は、32768[Hz])&lt;br /&gt;
*: 1、2、4、8の分周が可能。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== オシレータ ====&lt;br /&gt;
* LFXT1 (Low Frequency / High Frequency Crystal Oscillator 1)&lt;br /&gt;
*: 低周波モード：32768[Hz]のウォッチクリスタルを接続。&lt;br /&gt;
*: 高周波モード：450[kHz]〜8[MHz]のクリスタルを接続可能。&lt;br /&gt;
*: ACLKのソースとして使用される。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* XT2 (High Frequency Crystal Oscillator 2)&lt;br /&gt;
*: 450kHz〜8MHzのクリスタルまたはレゾネータを接続。&lt;br /&gt;
*: MCLK、SMCLKのソースとして選択可能。&lt;br /&gt;
*: 高速動作が必要な場合に使用。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* DCO (Digitally Controlled Oscillator)&lt;br /&gt;
*: 内蔵デジタル制御発振器。&lt;br /&gt;
*: 外部部品不要で動作。&lt;br /&gt;
*: 起動時間が約6µs以下と非常に高速。&lt;br /&gt;
*: 消費電力と起動時間のバランスが良い。&lt;br /&gt;
*: キャリブレーションデータによりソフトウェアで周波数調整が可能。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 電力モードの設定 ==&lt;br /&gt;
==== 状態レジスタ (SR) を使用する場合 ====&lt;br /&gt;
状態レジスタ (Status Register, SR) は、マイコンの現在の状態を示すレジスタである。&amp;lt;br&amp;gt;&lt;br /&gt;
MSP430マイコン全般では、SRは16ビットのレジスタであり、各ビットが特定の状態を表している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
電力モードに必要な各ビットについて、以下に示す。&amp;lt;br&amp;gt;&lt;br /&gt;
* CPUの停止 (4ビット目)&lt;br /&gt;
*: SRのCPUOFFビットを&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;にする。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* オシレータの停止 (5ビット目)&lt;br /&gt;
*: SRのOSCOFFビットを&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;にする。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* システムクロックジェネレータ (DCOのDCジェネレータ) の停止 (6ビット目)&lt;br /&gt;
*: SRのSCG0ビットを&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;にする。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* システムクロックジェネレータ (DCO、SMCLK) の停止 (7ビット目)&lt;br /&gt;
*: SRのSCG1ビットを&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;にする。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== __bis_SR_register()関数を使用する場合 ====&lt;br /&gt;
&amp;lt;code&amp;gt;__bis_SR_register&amp;lt;/code&amp;gt;関数を使用して、状態レジスタ (SR) の該当ビットを&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;にする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、割り込みが発生すると、省電力モードから復帰する。&amp;lt;br&amp;gt;&lt;br /&gt;
省電力モードを使用する場合は、必要なクロックと周辺モジュールを適切に設定して、不要なものは停止させることが重要である。&amp;lt;br&amp;gt;&lt;br /&gt;
また、割り込みを適切に設定して、省電力モードから復帰できるようにする必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 // LPM3に移行&lt;br /&gt;
 __bis_SR_register(LPM3_bits + GIE);  // 割り込み有効化とともにLPM3へ&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 各電力モードの設定例 ====&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 // LPM0への移行&lt;br /&gt;
 __bis_SR_register(LPM0_bits + GIE);&lt;br /&gt;
 &lt;br /&gt;
 // LPM1への移行&lt;br /&gt;
 __bis_SR_register(LPM1_bits + GIE);&lt;br /&gt;
 &lt;br /&gt;
 // LPM2への移行&lt;br /&gt;
 __bis_SR_register(LPM2_bits + GIE);&lt;br /&gt;
 &lt;br /&gt;
 // LPM3への移行（リアルタイムクロック動作時に最適）&lt;br /&gt;
 __bis_SR_register(LPM3_bits + GIE);&lt;br /&gt;
 &lt;br /&gt;
 // LPM4への移行（最小消費電力）&lt;br /&gt;
 __bis_SR_register(LPM4_bits + GIE);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 電力モードからの復帰 ==&lt;br /&gt;
低電力モードからアクティブモードへの復帰は、以下に示す方法で行われる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 割り込みによる復帰&lt;br /&gt;
*: 有効な割り込みが発生すると、自動的にアクティブモードに復帰する。&lt;br /&gt;
*: 割り込みサービスルーチン (ISR) を実行後、元のコードに戻る。&lt;br /&gt;
*: ISR内でSRのビットをクリアすることで、復帰後もアクティブモードを維持できる。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* リセットによる復帰&lt;br /&gt;
*: リセット信号により、マイコンは初期状態に戻る。&lt;br /&gt;
*: &amp;lt;br&amp;gt;&lt;br /&gt;
* 復帰時間&lt;br /&gt;
*: DCOを使用する場合、LPM3またはLPM4からの復帰時間は約6µs以下と非常に高速。&lt;br /&gt;
*: 外部クリスタル（XT2）を使用する場合は、発振安定化のため復帰に時間がかかる場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:MSP430]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>