PSoC 6 デバイスをフリーランニング WDT を使用してハイバネート モードからウェイクアップする - KBA228293 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by MoTa_728816 Version: **
Translation - English: Wake Up PSoC 6 MCU Device from Hibernate Mode Using Free Running WDT - KBA228293
質問:
フリーランニング WDT を使用して PSoC(R) 6 デバイスをハイバネート モードからウェイクアップさせるのにはどうしたら良いですか?
回答:
PSoC 6 は複数のウォッチドッグを持っています - 一つのフリーランニング ウォッチドッグ タイマ (WDT) と1つ以上の マルチカウンタ ウォッチドッグ タイマ (MCWDT) です。
デバイスをハイバネート モードからウェイクアップすることができるのはフリーランニン WDT だけです。
図 1 は PSoC Creator(tm) 4.2 プロジェクトの回路図です
図 1: Creator 4.2 プロジェクト回路図
WDT ISR を使用して PSoC 6 デバイスをハイバネートモードからウェイクアップするために下記の手順を行ってください:
1. PSoC 6 デバイスがハイバネートモードに入る前に、WDT 割込みの設定、初期化、WDT の有効化を行います。
/* WDT 割込みの設定 */
Cy_SysInt_Init(&WDTIsr_cfg, WDTIsr);
NVIC_EnableIRQ(srss_interrupt_IRQn);
/* WDT を初期化して有効にする */
/*WDT の割込み周期は WDT_IGNOREBITS の設定によって変化します */
Cy_WDT_SetIgnoreBits(WDT_IGNOREBITS);
Cy_WDT_UnmaskInterrupt();
Cy_WDT_Enable();
2. ハイバネートからのウェイクアップ信号を設定します。
Cy_SysPm_SetHibWakeupSource(MyLPComp_WakeUpSrc);
* \param MyLPComp_WakeUpSrc
* CY_SYSPM_LPCOMP0_LOW : LPComp CH0 出力ローによるウェイクアップソース
* CY_SYSPM_LPCOMP0_HIGH : LPComp CH0 出力ハイによるウェイクアップソース
* CY_SYSPM_LPCOMP1_LOW : LPComp CH1 出力ローによるウェイクアップソース
* CY_SYSPM_LPCOMP1_HIGH : LPComp CH1 出力ハイによるウェイクアップソース
* CY_SYSPM_HIBALARM : RTC アラームによるウェイクアップソース
* CY_SYSPM_HIBWDT : watchdog によるウェイクアップソース
* CY_SYSPM_HIBPIN0_LOW : Pin0 入力ローによるウェイクアップソース
* CY_SYSPM_HIBPIN0_HIGH : Pin0 入力ハイによるウェイクアップソース
* CY_SYSPM_HIBPIN1_LOW : Pin1 入力ローによるウェイクアップソース
* CY_SYSPM_HIBPIN1_HIGH : Pin1 入力ハイによるウェイクアップソース
3. ハイバネートモードへ飛び込むために Cy_SysPm_Hibernate() API を使用します。
4. CY8CKIT-062-BLE を使用して添付のプロジェクトをテストします。
添付のプロジェクトは緑LED(P1.1) を一秒間点灯後ハイバネートモードからウェイクアップする前に消灯します。WDT 割込みが発生すると、直ちにシステムをウェイクアップしてデバイスのリセットが発生します。
参考資料:
- PSoC 63 with BLE Architecture Technical Reference Manual
- PSoC 6 MCU Low-Power Modes and Power Reduction Techniques
- Blog: PSoC 6 Watchdog
==============================
20-May-2020
moto