7. パワーマネージメント

7. パワーマネージメント、スリープとリセット

7.1 外部電源入力

CH559チップの内部動作電圧は3.3Vで、I/O端子の入出力電圧は3.3Vです。P1.0~P1.7、XI、XO、RSTを除くI/O端子は5Vの電圧入力に耐えることができます。CH559チップには5Vから3.3Vの低ドロップアウト電圧レギュレータが搭載されており、外部からの3.3Vまたは5Vの電源電圧入力に対応しています。2つの電源電圧入力モードは下表を参照してください。

外部電源電圧VIN5ピン電圧: 外部電圧3.3V~5VVDD33ピン電圧:内部電圧3.3V
3.3V(3.6V以下)電圧レギュレータへの入力外部3.3V電圧は、0.1uF以上のデカップリングコンデンサを接続する必要があります内部動作電源として外部3.3Vを入力し、0.1u以上のデカップリングコンデンサを接続する必要があります
5V(3.6V超)入力外部5V電圧を電圧レギュレータに、0.1uF以上のデカップリングコンデンサを接続する必要があります内部電圧レギュレータ3.3V出力と3.3V内部動作電源入力は、3.3uF以上のデカップリングコンデンサを接続する必要があります

電源を入れるか、システムをリセットすると、CH559はデフォルトで動作しています。一部の機能モジュールが不要な場合は、これらのモジュールのクロックをオフにして、消費電力を削減することができます。CH559を動作させる必要がない場合は、PCONのPDをスリープ状態に設定することができます。スリープ状態では、USB、UART0、UART1、SPI0、一部のGPIOを介して外部ウェイクアップを選択することができます。

7.2 電源およびスリープ制御レジスタ

表7.2.1 電源およびスリープ制御レジスタ一覧

名前アドレス概要リセット値
WDOG_COUNTFFhウォッチドッグカウントレジスタ00h
RESET_KEEPFEhリセット保持レジスタ00h
WAKE_CTRLEBhスリープウェイク制御レジスタ00h
SLEEP_CTRLEAhスリープ制御レジスタ00h
PCON87h電源制御レジスタ10h

ウォッチドッグカウントレジスタ(WDOG_COUNT):

ビット名前アクセス概要リセット値
[7:0]WDOG_COUNTRWウォッチドッグの現在のカウントは 0FFh です。
00h になるとオーバーフローします。
オーバーフローすると自動的に割り込みフラグbWDOG_IF_TOを1に設定します。
00h

リセット保持レジスタ(RESET_KEEP):

ビット名前アクセス概要リセット値
[7:0]RESET_KEEPRW保持レジスタをリセットし、値を手動で変更することができます。
パワーオンリセットを除いて、他のどのリセットも値に影響を与えません。
00h

スリープウェイク制御レジスタ(WAKE_CTRL), セーフモードでのみ書き込み可能:

ビット名前アクセス概要リセット値
7bWAK_BY_USBRWUSBイベントウェイクアップ有効。
0: ウェイクアップは許可されていません。
0
6bWAK_RXD1_LORWUART1のLOW入力受信ウェイクアップ。
0: ウェイクアップが無効になります。
iRS485モードではXA/XB差動入力を選択し、非iRS485モードではbIER_PIN_MOD1=1/0によりRXD1またはRXD1_端子を選択します。
0
5bWAK_P1_5_LORWP1.5のLOWウェイクアップ有効。
0: ウェイクアップは許可されていません。
0
4bWAK_P1_4_LORWP1.4のLOWウェイクアップ有効。
0: ウェイクアップは許可されていません。
0
3bWAK_P0_3_LORWP0.3のLOWウェイクアップ有効。
0: ウェイクアップは許可されていません。
0
2bWAK_CAP3_LORWTimer3のLOWウェイクアップキャプチャ有効。
0: ウェイクアップは許可されていません。
bTMR3_PIN_X=0/1に従ってCAP3またはCAP3_端子を選択してください。
0
1bWAK_P3_2E_3LRWP3.2のエッジ変更とP3.3のLOWウェイクアップ有効。
0: ウェイクアップは許可されていません。
0
0bWAK_RXD0_LORWUART0のLOW入力受信ウェイクアップ。
0: ウェイクアップが無効になります。
bUART0_PIN_X=0/1でRXD0またはRXD0_端子を選択します。
0

スリープ制御レジスタ(WAKE_CTRL), セーフモードでのみ書き込み可能:

ビット名前アクセス概要リセット値
7bSLP_OFF_USBRWUSBクロックオフ制御。
1: クロックオフ
0
6bSLP_OFF_ADCRWADCクロックオフ制御。
1: クロックオフ
0
5bSLP_OFF_UART1RWUAR1クロックオフ制御。
1: クロックオフ
0
4bSLP_OFF_P1S1RWPWM1/SPI1クロックオフ制御。
1: クロックオフ
0
3bSLP_OFF_SPI0RWSPI0クロックオフ制御。
1: クロックオフ
0
2bSLP_OFF_TMR3RWTimer3クロックオフ制御。
1: クロックオフ
0
1bSLP_OFF_LEDRWLED-CTRLクロックオフ制御。
1: クロックオフ
0
0bSLP_OFF_XRAMRWxRAMクロックオフ制御。
1: クロックオフ
0

電源制御レジスタ(PCON):

ビット名前アクセス概要リセット値
7SMODRWTimer1を使用してUART0のボーレートを生成する場合は、UART0モード1、2、3の通信ボーレートを選択します。
0 :スローモード
1: 高速モード
0
6reservedRO予約0
5bRST_FLAG1R0チップラストリセットフラグ上位0
4bRST_FLAG0R0チップラストリセットフラグ下位1
3GF1RWユニバーサルフラグ
1: ユーザーは自身で定義することができます。ソフトウェアによって値の設定が可能です。
0
2GF0RWグローバルフラグ
1: ユーザーは自身で定義することができます。ソフトウェアによって値の設定が可能です。
0
1PDRWスリープモードを有効にします。
1: ウェイクアップハードウェアが自動的にクリアしたあとにスリーブします
0
0reservedR0予約0

表7.2.2 チップラストリセットフラグの説明

bRST_FLAG1bRST_FLAG0リセットフラグの概要
00ソフトウェアリセット。
bSW_RESET=1で(bBOOT_LOAD=0またはbWDOG_EN=1)
01パワーオンリセット。
VDD33端子電圧が検出レベル以下
10ウォッチドッグリセット。
bWDOG_EN=1でウォッチドッグタイムアウト
11外部端子により手動リセット。
En_P5.7_RESET=1でP5.7がHIGH

7.3 リセット制御

CH559のリセットソースは、パワーオンリセット、外部リセット、ソフトウェアリセット、ウォッチドッグリセットの4つで、後者の3つはホットリセットです。

7.3.1 パワーオンリセット

パワーオンリセットのPORは、内蔵の電圧検出回路により生成されます。この回路はVDD33端子の電源電圧を常時監視しています。検出レベル以下になるとVpotがパワーオンリセットを発生させ、ハードウェアが自動的にTporを遅延させてリセット状態を維持します。遅延時間が経過するとCH559が動作します。パワーオンリセットのみで、CH559は構成情報をリロードし、RESET_KEEPをクリアします。他のサーマルリセットは影響しません。

7.3.2 外部リセット

RST端子にハイレベルが印加されることで外部リセットが発生します。リセット処理は、コンフィギュレーション情報En_P5.7_RESETが1で、RSTピンのHIGHレベルがTrstより長く続くとトリガされます。外部ハイレベル信号がキャンセルされると、ハードウェアは自動的にTrdlを遅延させてリセット状態を維持します。遅延が切れた後、CH559は0アドレスからスタートします。

7.3.3 ソフトウェアリセット

CH559 は、外部からの介入なしに CPU の状態を積極的にリセットして再実行するための内部ソフトウェアリセットをサポートしています。グローバル・コンフィギュレーション・レジスタGLOBAL_CFGのbSW_RESETを1に設定すると、ソフトウェア・リセットを行い、自動的にTrdlを遅延させてリセット状態を維持します。遅延時間が経過すると、CH559は0アドレスからスタートし、ハードウェアによりbSW_RESETビットは自動的にクリアされます。

bSW_RESETが設定されている場合、bBOOT_LOAD=0またはbWDOG_EN=1の場合、bRST_FLAG1/0はリセット後のソフトウェアリセットを指示します。bSW_RESETが1に設定され、bBOOT_LOAD=1、bWDOG_EN=0の場合、bRST_FLAG1/0は新たなリセットフラグを生成せず、前回のリセットフラグを変更せずに保持します。

ISP ブートプログラムを搭載したチップの場合、パワーオンリセット後にブートプログラムを実行すると、ソフトウェアリセットに従ってチップがアプリケーション状態にリセットされます。このソフトウェアリセットは bBOOT_LOAD をクリアするだけで、bRST_FLAG1/0 の状態には影響しません。(リセット前はbBOOT_LOAD=1なので)アプリケーション状態に切り替わっても、bRST_FLAG1/0はパワーオンリセット状態を示します。

7.3.4 ウォッチドッグリセット

ウォッチドッグタイマーがタイムアウトすると、ウォッチドッグリセットが発生します。ウォッチドッグタイマーは、システムのメイン周波数であるFsys/262144のクロック周波数をカウントする8ビットカウンタです。0FFhが00hになるとオーバーフロー信号が発生します。

ウォッチドッグタイマオーバーフロー信号により割り込みフラグbWDOG_IF_TOが1になります。この値は、WDOG_COUNTがリロードされたとき、または対応する割り込みサービスルーチンが入力されたときに自動的にクリアされます。

異なるタイミング期間Twdcは、WDOG_COUNTに異なるカウント初期値を書き込むことで達成されます。12MHzでは、00hでのウォッチドッグタイミング期間Twdcは約5.9秒、80hでは約2.8秒です。

ウォッチドッグタイマがオーバーフローしたときにbWDOG_EN=1になると、ウォッチドッグリセットが発生し、リセット状態を維持するためにTrdlを自動的に遅延させる。遅延終了後、CH559は0アドレスからスタートします。

bWDOG_EN=1の時にウォッチドッグからリセットされないように、WDOG_COUNTはオーバーフローを避けるために時間内にリセットする必要があります。