This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3703:GPIO 不会进入关闭状态

Guru**** 668880 points
Other Parts Discussed in Thread: AM3703, OMAP3503, SYSCONFIG, CCSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614794/am3703-gpio-not-going-to-off-state

器件型号:AM3703
Thread 中讨论的其他器件: OMAP3503SysConfigCCStudio

您好!

我们有一个 GPIO (GPIO96)、该 GPIO 配置为在关闭模式期间更改状态、以指示处理器完全关闭。 这完全适用于 OMAP3503。 但是、我们从 OMAP3503处理器迁移到 AM3703处理器、AM37处理器的运行方式与 OMAP35处理器不同。 基本上、GPIO 将在第一次暂停(关闭模式)期间驱动至正确的状态。 任何后续挂起都不会将引脚驱动至关闭状态。

我选中了所有 PM_PREPWSTST_x、每个寄存器都指示域已关闭。 此外、SYS_OFF_MODE 引脚的行为也是如此。  

您能不能建议可能的原因是什么?

以下是挂起前后的寄存器转储。

"预挂起 PRCM 寄存器快照"、、、、
"---------------------- "、、、、
"IVA2_CM:"、、、、
“CM_FCLKEN_IVA2 0x00000000”、、、、
"cm_CLKEN_PLL_IVA2 0x0000021f"、、、、
“CM_IDLEST_IVA2 0x00000001”、、、、
“CM_IDLEST_PLL_IVA2 0x00000000”、、、、
“CM_AUTOIDLE_PLL_IVA2 0x00000001”、、、、
"cm_CLKSEL1_PLL_IVA2 0x000d142f"、、、
“CM_CLKSEL2_PLL_IVA2 0x00000001”、、、、
"CM_CLKSTCTRL_IVA2 0x00000003"、、、
“CM_CLKSTST_IVA2 0x00000000”、、、、
"OCP_System_Reg_CM:"、、、、
“CM_REVISION 0x00000010”、、、、
“CM_SysConfig 0x00000001”、、、、
"MPU_CM:"、、、、
"CM_CLKEN_PLL_MPU 0x0000021f"、、、、
“CM_IDLEST_MPU 0x00000000”、、、、
“CM_IDLEST_PLL_MPU 0x00000001”、、、、
“CM_AUTOIDLE_PLL_MPU 0x00000001”、、、、
"CM_CLKSEL1_PLL_MPU 0x0012ee17"、、、、
“CM_CLKSEL2_PLL_MPU 0x00000001”、、、、
"CM_CLKSTCTRL_MPU 0x00000003"、、、、
“CM_CLKSTST_MPU 0x00000001”、、、、
"core_cm:"、、、、
“CM_FCLKEN1_CORE 0x00000000”、、、、
“CM_FCLKEN3_CORE 0x00000000”、、、
“CM_ICLKEN1_CORE 0x0000004a”、、、、
“CM_ICLKEN2_CORE 0x00000000”、、、、
“CM_ICLKEN3_CORE 0x00000000”、、、
“CM_IDLEST1_CORE 0xffffffbd”、、、、
“CM_IDLEST2_CORE 0x0000001f”、、、、
"cm_IDLEST3_CORE 0x0000000d"、、、、
"cm_AUTOIDLE1_CORE 0x433ffe50"、、、
“CM_AUTOIDLE2_CORE 0x00000000”、、、、
“CM_AUTOIDLE3_CORE 0x00000000”、、、、
"cm_CLKSEL_CORE 0x0000148a"、、、
“CM_CLKSTCTRL_CORE 0x0000003f”、、、、
"CM_CLKST_CORE 0x00000003"、、、
“SGX_CM:”、、、、
“CM_FCLKEN_SGX 0x00000000”、、、、
“CM_ICLKEN_SGX 0x00000000”、、、、
“CM_IDLEST_SGX 0x00000000”、、、、
“CM_CLKSEL_SGX 0x00000000”、、、、
"CM_SLEEPDEP_SGX 0x00000000"、、、
“CM_CLKSTCTRL_SGX 0x00000000”、、、、
“CM_CLKSTST_SGX 0x00000000”、、、、
“WKUP_CM:”、、、、
“CM_FCLKEN_WKUP 0x00000000”、、、、
“CM_ICLKEN_WKUP 0x00000000”、、、、
"CM_IDLEST_WKUP 0x000002ff"、、、、
"CM_AUTOIDLE_WKUP 0x0000023f"、、、、
“CM_CLKSEL_WKUP 0x00000014”、、、、
"Clock_Control_Reg_CM:"、、、、
"cm_CLKEN_PLL 0xc01f101f"、、、、
“CM_CLKEN2_PLL 0x0000001f”、、、、
“CM_IDLEST_CKGEN 0x00000001”、、、、
"CM_IDLEST2_CKGEN 0x00000000"、、、、
"CM_AUTOIDLE_PLL 0x00000009"、、、、
“CM_AUTOIDLE2_PLL 0x00000001”、、、、
“CM_CLKSEL1_PLL 0x09f41700”、、、、
"CM_CLKSEL2_PLL 0x04421c0b"、、、、
"CM_CLKSEL3_PLL 0x00000009"、、、
"CM_CLKSEL4_PLL 0x00003200"、、、
"CM_CLKSEL5_PLL 0x00000008"、、、
"CM_CLKOUT_CTRL 0x00000003"、、、、
"DSS_CM:"、、、、
“CM_FCLKEN_DSS 0x00000000”、、、、
“CM_ICLKEN_DSS 0x00000000”、、、、
“CM_IDLEST_DSS 0x00000003”、、、、
“CM_AUTOIDLE_DSS 0x00000001”、、、、
“CM_CLKSEL_DSS 0x00001005”、、、、
"CM_SLEEPDEP_DSS 0x00000000"、、、
"CM_CLKSTCTRL_DSS 0x00000003"、、、
“CM_CLKSTST_DSS 0x00000000”、、、、
“CAM_CM:”、、、、
“CM_FCLKEN_CAM 0x00000000”、、、、
“CM_ICLKEN_CAM 0x00000000”、、、、
“CM_IDLEST_CAM 0x00000001”、、、、
“CM_AUTOIDLE_CAM 0x00000000”、、、、
“CM_CLKSEL_CAM 0x00000004”、、、、
“CM_SLEEPDEP_CAM 0x00000000”、、、、
“CM_CLKSTCTRL_CAM 0x00000003”、、、、
“CM_CLKSTST_CAM 0x00000000”、、、、
"PER_CM:"、、、、
“CM_FCLKEN_PER 0x00000000”、、、、
“CM_ICLKEN_PER 0x00000000”、、、、
"cm_IDLEST_PER 0x0007FFF"、、、、
"cm_AUTOIDLE_PER 0x0003e869"、、、、
"cm_CLKSEL_PER 0x0000000c"、、、
"cm_SLEEPDEP_PER 0x00000002"、、、
“CM_CLKSTCTRL_PER 0x00000003”、、、、
“CM_CLKSTST_PER 0x00000001”、、、、
“EMU_CM:”、、、、
"cm_CLKSEL1_EMU 0x03020a50"、、、
"CM_CLKSTCTRL_EMU 0x00000003"、、、、
"cm_CLKSTST_EMU 0x00000000"、、、、
"CM_CLKSEL2_EMU 0x00000000"、、、、
"CM_CLKSEL3_EMU 0x00000000"、、、
"GLOBAL_Reg_CM:"、、、、
“CM_POLCTRL 0x00000000”、、、、
"NENEL_CM:"、、、、
"cm_IDLEST_NEON 0x0000"、、、、
"cm_CLKSTCTRL_NEON 0x00000003"、、、、
"USBHOST_CM:"、、、
“CM_FCLKEN_USBHOST 0x00000000”、、、、
“CM_ICLKEN_USBHOST 0x00000000”、、、、
"CM_IDLEST_USBHOST 0x00000003"、、、、
“CM_AUTOIDLE_USBHOST 0x00000001”、、、、
"CM_SLEEPDEP_USBHOST 0x00000000"、、、
"CM_CLKSTCTRL_USBHOST 0x00000003"、、、、
"CM_CLKSTST_USBHOST 0x0000"、、、
"iva2_prm:"、、、、
"rm_RSTCTRL_IVA2 0x00000007"、、、
"rm_RSTST_IVA2 0x00000000"、、、、
"PM_WKDEP_IVA2 0x0000"、、、、
"PM_PWSTCTRL_IVA2 0x00ff0f00"、、、、
"PM_PWST_IVA2 0x00000000"、、、
"PM_PREPWST_IVA2 0x00000000"、、、
"PRM_IRQSTATUS_IVA2 0x00000002"、、、
"PRM_IRQENABLE_IVA2 0x00000000"、、、
"OCP_System_Reg_PRM:"、、、
"PRM_REVISION 0x00000010"、、、、
"PRM_SysConfig 0x00000001"、、、、
"PRM_IRQSTATUS_MPU 0x08000010"、、、
"PRM_IRQENABLE_MPU 0x01c926a0"、、、、
"MPU_PRM:"、、、
"rm_RSTST_MPU 0x00000000"、、、、
"PM_WKDEP_MPU 0x00000000"、、、
"PM_EVGENCTRL_MPU 0x00000012"、、、、
"PM_EVGENONTIM_MPU 0x00000000"、、、
"PM_EVGENOFFTIM_MPU 0x00000000"、、、
"PM_PWSTCTRL_MPU 0x00030104"、、、
"PM_PWST_MPU 0x000000c7"、、、、
"PM_PREPWST_MPU 0x000000c7"、、、、
"core_prm:"、、、、
"rm_RSTST_CORE 0x0000"、、、、
"PM_WKEN1_CORE 0x0000"、、、、
"PM_MPUGRPSEL1_CORE 0xc33ffe18"、、、、
"PM_IVA2GRPSEL1_CORE 0xc33ffe18"、、、、
"PM_WKST1_CORE 0x0000"、、、、
"PM_WKST3_CORE 0x00000000"、、、
"PM_PWSTCTRL_CORE 0x000f0300"、、、、
"PM_PWST_CORE 0x000000f7"、、、、
"PM_PREPWST_CORE 0x000000f7"、、、、
"PM_WKEN3_CORE 0x00000000"、、、
"PM_IVA2GRPSEL3_CORE 0x00000004"、、、
"PM_MPUGRPSEL3_CORE 0x00000004"、、、
“SGX_PRM:”、、、、
"rm_RSTST_SGX 0x00000000"、、、、
"PM_WKDEP_SGX 0x0000"、、、
"PM_PWSTCTRL_SGX 0x00000000"、、、
"PM_PWST_SGX 0x00000000"、、、
"PM_PREPWSTST_SGX 0x00000000"、、、
"WKUP_PRM:"、、、
"PM_WKEN_WKUP 0x0000010A"、、、、
"PM_MPUGRPSEL_WKUP 0x0000010A"、、、
"PM_IVA2GRPSEL_WKUP 0x00000000"、、、
"PM_WKST_WKUP 0x0000"、、、
"Clock_Control_Reg_PRM:"、、、、
"PRM_CLKSEL 0x00000002"、、、
"PRM_CLKOUT_CTRL 0x0000"、、、、
"DSS_PRM:"、、、
"rm_RSTST_DSS 0x0000000c"、、、
"PM_WKEN_DSS 0x0000"、、、、
"PM_WKDEP_DSS 0x0000"、、、、
"PM_PWSTCTRL_DSS 0x00030104"、、、
"PM_PWSTST_DSS 0x00000000"、、、
"PM_PREPWSTST_DSS 0x00000000"、、、
“CAM_PRM:”、、、、
"rm_RSTST_CAM 0x00000000"、、、、
"PM_WKDEP_CAM 0x00000000"、、、
"PM_PWSTCTRL_CAM 0x00030104"、、、、
"PM_PWSTST_CAM 0x00000000"、、、
"PM_PREPWST_CAM 0x00000000"、、、
"per_prm:"、、、、
"rm_RSTST_PER 0x00000000"、、、、
"PM_WKEN_PER 0x0003e000"、、、
"PM_MPUGRPSEL_PER 0x0003efff"、、、
"PM_IVA2GRPSEL_PER 0x0007efff"、、、
"PM_WKST_PER 0x00000000"、、、
"PM_WKDEP_PER0x00000012"、、、、
"PM_PWSTCTRL_PER 0x00030104"、、、
"PM_PWSTST_PER 0x00000007"、、、、
"PM_PREPWSTST_PER 0x00000007"、、、
“EMU_PRM:”、、、、
"rm_RSTST_EMU 0x0000"、、、、
"PM_PWSTST_EMU 0x0000"、、、、
“GLOBAL_Reg_PRM:”、、、、
"PRM_VC_SMPS_SA 0x00120012"、、、
"PRM_VC_SMPS_VOL_RA 0x00010000"、、、
"PRM_VC_SMPS_CMD_RA 0x00000000"、、、
"PRM_VC_CMD_VAL_0 0x28282000"、、、
"PRM_VC_CMD_VAL_1 0x2c202000"、、、
"PRM_VC_CH_CONF 0x00170000"、、、
"PRM_VC_I2C_CFG 0x00000005"、、、
"PRM_VC_BYPASS_VAL 0x00000000"、、、
"PRM_RSTCTRL 0x00000000"、、、、
"PRM_RSTTIME 0x00001006"、、、
"PRM_RSTST 0x00000000"、、、
"PRM_VOLTCTRL 0x0000000c"、、、
"PRM_SRAM_PCHARGE 0x00000050"、、、
"PRM_CLKSRC_CTRL 0x00000050"、、、、
"PRM_OBS 0x00000000"、、、
"PRM_VOLTSETUP10x01120112"、、、
"PRM_VOLTOFFSET 0x00000000"、、、
"PRM_CLKSETUP 0x000000a0"、、、、
"PRM_POLCTRL 0x00000002"、、、
"PRM_VOLTSETUP2 0x00000000"、、、
“NEON_PRM:”、、、、
"rm_RSTST_NEON 0x00000000"、、、、
"PM_WKDEP_NEON 0x00000002"、、、
"PM_PWSTCTRL_NEON 0x00000004"、、、
"PM_PWSTST_NEON 0x00000003"、、、、
"PM_PREPWSTST_NEON 0x00000003"、、、、
"USBHOST_PRM:"、、、
"rm_RSTST_USBHOST0x0000"、、、、
"PM_WKEN_USBHOST 0x00000000"、、、
"PM_MPUGRPSEL_USBHOST 0x00000000"、、、
"PM_IVA2GRPSEL_USBHOST 0x00000001"、、、、
"PM_WKST_USBHOST 0x0000"、、、
"PM_WKDEP_USBHOST 0x00000017"、、、、
"PM_PWSTCTRL_USBHOST 0x00030104"、、、
"PM_PWST_USBHOST0x0000"、、、、
"PM_PREPWST_USBHOST0x0000"、、、、
"INTCPS_SysConfig 0x0000"、、、、
"INTCPS_IDLE 0x00000001"、、、、
"INTCPS_ITR0 0x00000002"、、、
"INTCPS_ITR1 0x00000000"、、、
"INTCPS_ITR2 0x01000800"、、、、
"intcps_mIR0 0xdfffffff"、、、、
"intcps_mIR1 0xffffff"、、、、
"intcps_mIR2 0xffffff"、、、、
"INTCPS_Pending_IRQ0 0x00000000"、、、、
"intcps_pending_irq1 0x0000"、、、、
"intcps_pending_IRQ2 0x00000000"、、、、
"intcps_pending_ficq0 0x0000"、、、、
"intcps_pending_ficq1 0x0000"、、、、
"intcps_pending _FIQ2 0x00000000"、、、、


“挂起后 PRCM 寄存器快照”、、、、
"---------------- "、、、、
"IVA2_CM:"、、、、
“CM_FCLKEN_IVA2 0x00000000”、、、、
"cm_CLKEN_PLL_IVA2 0x0000021f"、、、、
“CM_IDLEST_IVA2 0x00000001”、、、、
“CM_IDLEST_PLL_IVA2 0x00000000”、、、、
“CM_AUTOIDLE_PLL_IVA2 0x00000001”、、、、
"cm_CLKSEL1_PLL_IVA2 0x000d142f"、、、
“CM_CLKSEL2_PLL_IVA2 0x00000001”、、、、
"CM_CLKSTCTRL_IVA2 0x00000003"、、、
“CM_CLKSTST_IVA2 0x00000000”、、、、
"OCP_System_Reg_CM:"、、、、
“CM_REVISION 0x00000010”、、、、
“CM_SysConfig 0x00000001”、、、、
"MPU_CM:"、、、、
"CM_CLKEN_PLL_MPU 0x0000021f"、、、、
“CM_IDLEST_MPU 0x00000000”、、、、
“CM_IDLEST_PLL_MPU 0x00000001”、、、、
“CM_AUTOIDLE_PLL_MPU 0x00000001”、、、、
"CM_CLKSEL1_PLL_MPU 0x0012ee17"、、、、
“CM_CLKSEL2_PLL_MPU 0x00000001”、、、、
"CM_CLKSTCTRL_MPU 0x00000003"、、、、
“CM_CLKSTST_MPU 0x00000001”、、、、
"core_cm:"、、、、
“CM_FCLKEN1_CORE 0x00000000”、、、、
“CM_FCLKEN3_CORE 0x00000000”、、、
“CM_ICLKEN1_CORE 0x0000004a”、、、、
“CM_ICLKEN2_CORE 0x00000000”、、、、
“CM_ICLKEN3_CORE 0x00000000”、、、
“CM_IDLEST1_CORE 0xffffffbd”、、、、
“CM_IDLEST2_CORE 0x0000001f”、、、、
"cm_IDLEST3_CORE 0x0000000d"、、、、
"cm_AUTOIDLE1_CORE 0x433ffe50"、、、
“CM_AUTOIDLE2_CORE 0x00000000”、、、、
“CM_AUTOIDLE3_CORE 0x00000000”、、、、
"cm_CLKSEL_CORE 0x0000148a"、、、
“CM_CLKSTCTRL_CORE 0x0000003f”、、、、
"CM_CLKST_CORE 0x00000003"、、、
“SGX_CM:”、、、、
“CM_FCLKEN_SGX 0x00000000”、、、、
“CM_ICLKEN_SGX 0x00000000”、、、、
“CM_IDLEST_SGX 0x00000000”、、、、
“CM_CLKSEL_SGX 0x00000000”、、、、
"CM_SLEEPDEP_SGX 0x00000000"、、、
“CM_CLKSTCTRL_SGX 0x00000000”、、、、
“CM_CLKSTST_SGX 0x00000000”、、、、
“WKUP_CM:”、、、、
“CM_FCLKEN_WKUP 0x00000001”、、、、
"CM_ICLKEN_WKUP 0x0000000d"、、、、
"CM_IDLEST_WKUP 0x000002f2"、、、
"CM_AUTOIDLE_WKUP 0x0000023f"、、、、
“CM_CLKSEL_WKUP 0x00000014”、、、、
"Clock_Control_Reg_CM:"、、、、
"cm_CLKEN_PLL 0xc01f101f"、、、、
“CM_CLKEN2_PLL 0x0000001f”、、、、
“CM_IDLEST_CKGEN 0x00000001”、、、、
"CM_IDLEST2_CKGEN 0x00000000"、、、、
"CM_AUTOIDLE_PLL 0x00000009"、、、、
“CM_AUTOIDLE2_PLL 0x00000001”、、、、
“CM_CLKSEL1_PLL 0x09f41700”、、、、
"CM_CLKSEL2_PLL 0x04421c0b"、、、、
"CM_CLKSEL3_PLL 0x00000009"、、、
"CM_CLKSEL4_PLL 0x00003200"、、、
"CM_CLKSEL5_PLL 0x00000008"、、、
"CM_CLKOUT_CTRL 0x00000003"、、、、
"DSS_CM:"、、、、
“CM_FCLKEN_DSS 0x00000000”、、、、
“CM_ICLKEN_DSS 0x00000000”、、、、
“CM_IDLEST_DSS 0x00000003”、、、、
“CM_AUTOIDLE_DSS 0x00000000”、、、、
"CM_CLKSEL_DSS 0x00000405"、、、
"CM_SLEEPDEP_DSS 0x00000000"、、、
"CM_CLKSTCTRL_DSS 0x00000003"、、、
“CM_CLKSTST_DSS 0x00000000”、、、、
“CAM_CM:”、、、、
“CM_FCLKEN_CAM 0x00000000”、、、、
“CM_ICLKEN_CAM 0x00000000”、、、、
“CM_IDLEST_CAM 0x00000001”、、、、
“CM_AUTOIDLE_CAM 0x00000000”、、、、
“CM_CLKSEL_CAM 0x00000004”、、、、
“CM_SLEEPDEP_CAM 0x00000000”、、、、
“CM_CLKSTCTRL_CAM 0x00000003”、、、、
“CM_CLKSTST_CAM 0x00000000”、、、、
"PER_CM:"、、、、
“CM_FCLKEN_PER 0x00000008”、、、、
"cm_ICLKEN_PER 0x0003e008"、、、、
"cm_IDLEST_PER 0x00041ff7"、、、、
"cm_AUTOIDLE_PER 0x0003e008"、、、、
“CM_CLKSEL_PER 0x00000000”、、、、
"cm_SLEEPDEP_PER 0x00000002"、、、
“CM_CLKSTCTRL_PER 0x00000003”、、、、
“CM_CLKSTST_PER 0x00000001”、、、、
“EMU_CM:”、、、、
"cm_CLKSEL1_EMU 0x03020a50"、、、
"CM_CLKSTCTRL_EMU 0x00000003"、、、、
"cm_CLKSTST_EMU 0x00000000"、、、、
"CM_CLKSEL2_EMU 0x00000000"、、、、
"CM_CLKSEL3_EMU 0x00000000"、、、
"GLOBAL_Reg_CM:"、、、、
“CM_POLCTRL 0x00000000”、、、、
"NENEL_CM:"、、、、
"cm_IDLEST_NEON 0x0000"、、、、
"cm_CLKSTCTRL_NEON 0x00000003"、、、、
"USBHOST_CM:"、、、
“CM_FCLKEN_USBHOST 0x00000000”、、、、
“CM_ICLKEN_USBHOST 0x00000000”、、、、
"CM_IDLEST_USBHOST 0x00000003"、、、、
“CM_AUTOIDLE_USBHOST 0x00000000”、、、、
"CM_SLEEPDEP_USBHOST 0x00000000"、、、
"CM_CLKSTCTRL_USBHOST 0x00000003"、、、、
"CM_CLKSTST_USBHOST 0x0000"、、、
"iva2_prm:"、、、、
"rm_RSTCTRL_IVA2 0x00000007"、、、
"rm_RSTST_IVA2 0x00000000"、、、、
"PM_WKDEP_IVA2 0x0000"、、、、
"PM_PWSTCTRL_IVA2 0x00ff0f00"、、、、
"PM_PWST_IVA2 0x00000000"、、、
"PM_PREPWST_IVA2 0x00000000"、、、
"PRM_IRQSTATUS_IVA2 0x00000002"、、、
"PRM_IRQENABLE_IVA2 0x00000000"、、、
"OCP_System_Reg_PRM:"、、、
"PRM_REVISION 0x00000010"、、、、
"PRM_SysConfig 0x00000001"、、、、
"PRM_IRQSTATUS_MPU 0x08000211"、、、
"PRM_IRQENABLE_MPU 0x01c926a0"、、、、
"MPU_PRM:"、、、
"rm_RSTST_MPU 0x00000000"、、、、
"PM_WKDEP_MPU 0x00000000"、、、
"PM_EVGENCTRL_MPU 0x00000012"、、、、
"PM_EVGENONTIM_MPU 0x00000000"、、、
"PM_EVGENOFFTIM_MPU 0x00000000"、、、
"PM_PWSTCTRL_MPU 0x00030105"、、、
"PM_PWST_MPU 0x000000c7"、、、、
"PM_PREPWST_MPU 0x00000000"、、、
"core_prm:"、、、、
"rm_RSTST_CORE 0x0000"、、、、
"PM_WKEN1_CORE 0x0000"、、、、
"PM_MPUGRPSEL1_CORE 0xc33ffe18"、、、、
"PM_IVA2GRPSEL1_CORE 0xc33ffe18"、、、、
"PM_WKST1_CORE 0x0000"、、、、
"PM_WKST3_CORE 0x00000000"、、、
"PM_PWSTCTRL_CORE 0x000f0301"、、、
"PM_PWST_CORE 0x000000f7"、、、、
"PM_PREPWST_CORE 0x00000000"、、、
"PM_WKEN3_CORE 0x00000000"、、、
"PM_IVA2GRPSEL3_CORE 0x00000004"、、、
"PM_MPUGRPSEL3_CORE 0x00000004"、、、
“SGX_PRM:”、、、、
"rm_RSTST_SGX 0x00000000"、、、、
"PM_WKDEP_SGX 0x0000"、、、
"PM_PWSTCTRL_SGX 0x00000000"、、、
"PM_PWST_SGX 0x00000000"、、、
"PM_PREPWSTST_SGX 0x00000000"、、、
"WKUP_PRM:"、、、
"PM_WKEN_WKUP 0x0000000b"、、、
"PM_MPUGRPSEL_WKUP 0x0000010A"、、、
"PM_IVA2GRPSEL_WKUP 0x00000000"、、、
"PM_WKST_WKUP 0x00000108"、、、
"Clock_Control_Reg_PRM:"、、、、
"PRM_CLKSEL 0x00000002"、、、
"PRM_CLKOUT_CTRL 0x0000"、、、、
"DSS_PRM:"、、、
"rm_RSTST_DSS 0x00000000"、、、、
"PM_WKEN_DSS 0x0000"、、、、
"PM_WKDEP_DSS 0x0000"、、、、
"PM_PWSTCTRL_DSS 0x00030104"、、、
"PM_PWSTST_DSS 0x00000000"、、、
"PM_PREPWSTST_DSS 0x00000000"、、、
“CAM_PRM:”、、、、
"rm_RSTST_CAM 0x00000000"、、、、
"PM_WKDEP_CAM 0x00000000"、、、
"PM_PWSTCTRL_CAM 0x00030104"、、、、
"PM_PWSTST_CAM 0x00000000"、、、
"PM_PREPWST_CAM 0x00000000"、、、
"per_prm:"、、、、
"rm_RSTST_PER 0x00000000"、、、、
"PM_WKEN_PER 0x0003e008"、、、
"PM_MPUGRPSEL_PER 0x0003efff"、、、
"PM_IVA2GRPSEL_PER 0x0007efff"、、、
"PM_WKST_PER 0x00000000"、、、
"PM_WKDEP_PER 0x00000002"、、、
"PM_PWSTCTRL_PER 0x00030105"、、、
"PM_PWSTST_PER 0x00000007"、、、、
"PM_PREPWSTST_PER 0x00000000"、、、
“EMU_PRM:”、、、、
"rm_RSTST_EMU 0x0000"、、、、
"PM_PWSTST_EMU 0x0000"、、、、
“GLOBAL_Reg_PRM:”、、、、
"PRM_VC_SMPS_SA 0x00120012"、、、
"PRM_VC_SMPS_VOL_RA 0x00010000"、、、
"PRM_VC_SMPS_CMD_RA 0x00000000"、、、
"PRM_VC_CMD_VAL_0 0x28282000"、、、
"PRM_VC_CMD_VAL_1 0x2c202000"、、、
"PRM_VC_CH_CONF 0x00170000"、、、
"PRM_VC_I2C_CFG 0x00000005"、、、
"PRM_VC_BYPASS_VAL 0x00000000"、、、
"PRM_RSTCTRL 0x00000000"、、、、
"PRM_RSTTIME 0x00001006"、、、
"PRM_RSTST 0x00000000"、、、
"PRM_VOLTCTRL 0x0000000c"、、、
"PRM_SRAM_PCHARGE 0x00000050"、、、
"PRM_CLKSRC_CTRL 0x00000050"、、、、
"PRM_OBS 0x00000000"、、、
"PRM_VOLTSETUP10x01120112"、、、
"PRM_VOLTOFFSET 0x00000000"、、、
"PRM_CLKSETUP 0x000000a0"、、、、
"PRM_POLCTRL 0x00000002"、、、
"PRM_VOLTSETUP2 0x00000000"、、、
“NEON_PRM:”、、、、
"rm_RSTST_NEON 0x00000000"、、、、
"PM_WKDEP_NEON 0x00000002"、、、
"PM_PWSTCTRL_NEON 0x00000005"、、、、
"PM_PWSTST_NEON 0x00000003"、、、、
"PM_PREPWSTST_NEON 0x0000"、、、、
"USBHOST_PRM:"、、、
"rm_RSTST_USBHOST0x0000"、、、、
"PM_WKEN_USBHOST 0x00000000"、、、
"PM_MPUGRPSEL_USBHOST 0x00000000"、、、
"PM_IVA2GRPSEL_USBHOST 0x00000001"、、、、
"PM_WKST_USBHOST 0x0000"、、、
"PM_WKDEP_USBHOST 0x00000017"、、、、
"PM_PWSTCTRL_USBHOST 0x00030104"、、、
"PM_PWST_USBHOST 0x00000003"、、、
"PM_PREPWST_USBHOST0x0000"、、、、
"INTCPS_SysConfig 0x0000"、、、、
"INTCPS_IDLE 0x00000010"、、、、
"INTCPS_ITR0 0x20000802"、、、
"INTCPS_ITR1 0x00000020"、、、
"INTCPS_ITR2 0x01000800"、、、、
"intcps_mIR0 0x5dffe7ff"、、、、
"intcps_mIR1 0xfffdd8"、、、
"intcps_mIR2 bfb7dff5"、、、、
"intcps_pending_IRQ0 0x20000800"、、、、
"INTCPS_Pending_IRQ1 0x00000020"、、、、
"intcps_pending_IRQ2 0x00000000"、、、、
"intcps_pending_ficq0 0x0000"、、、、
"intcps_pending_ficq1 0x0000"、、、、
"intcps_pending _FIQ2 0x00000000"、、、、

谢谢

奥古斯丁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已通知 PM 专家。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Augustine、

    您是否使用 AM37x TI EVM 或定制板? 您是否使用 LINUXEZSDK-AM37x v06.00?

    有一些与 AM37x GPIO 和关闭模式相关的器件勘误手册、请确保您与权变措施一致:

    www.ti.com/.../sprz318f.pdf

    使用说明2.9当器件从关闭模式返回时、GPIO 驱动随机值
    咨询意见1.45 在唤醒进入或退出系统关闭模式期间、GPIO 管脚寄生转换(毛刺脉冲/尖峰脉冲)
    咨询1.9 非活动状态管理:无法转换到关闭或保留状态
    Advisory 1.107某些电源域在热复位后无法进入关闭模式

    另请参阅以下列出了 OMAP35x 和 AM37x 之间差异的文档:

    processors.wiki.ti.com/.../OMAP35x_To_AM37x_Hardware_Migration_Guide

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    感谢您的回答。 我们使用的是定制板、它运行的是 WinCE。

    如果我错了、请纠正我的问题、但我看一下勘误表、我认为它们不会导致我遇到的问题。  

    使用说明2.9当器件从关闭模式返回时、GPIO 驱动随机值  

    回答:此勘误表针对的是器件何时从关闭模式返回、但我的问题是器件何时进入关闭模式、而该模式的状态未正确驱动。


    在唤醒进入或退出系统关闭模式期间提供1.45 GPIO 端口杂散转换(毛刺脉冲/尖峰脉冲)  

    回答:此勘误表显示、当器件进入关断状态时、我们可能会遇到纳秒的毛刺脉冲、但我的问题是 GPIO 永远不会进入关断状态。 此外、该引脚实际上设置为在导通状态下驱动高电平、在关断状态下驱动低电平。 根据变通办法、我不应该观察到这个问题。


    咨询1.9非活动状态管理:无法过渡到关闭或保留状态

    答案:根据我的寄存器转储、我没有看到任何模块进入非活动状态、因此我认为这不会导致问题。


    Advisory 1.107某些电源域在热复位后无法进入关闭模式

    回答:这似乎是一个非常具体的情况、在这种情况下、我需要在器件转换到不同状态时执行热复位。 当我观察到问题时、不会触发热复位。

    根据 PREPWSTST 寄存器、所有模块都处于关闭状态。 我是否可以使用其他寄存器来确定潜在问题所在的位置?

    谢谢

    奥古斯丁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    奥古斯丁

    我不熟悉 WinCE、因此我只能从设备端提出建议。

    在关闭模式下、除唤醒域 VDD3外、所有电源域均关闭。 GPIO96属于 GPIO4模块、它是每个电源域的一部分。

    根据我的理解、下面是您的用例(请确认):

    AM37x 处于活动状态、PM_PWSTST_PER[1:0] POWERSTATEST = 0x7 (开启状态)、GPIO_96引脚输出值符合预期(为1)

    AM37x 从激活模式转换为关闭模式、PM_PWST_PER[1:0] POWERSTATEST = 0x0 (关闭状态)、PM_PREPWST_PER[1:0] LASTPOWERSTATETERED = 0x3 (域已打开)、GPIO_96引脚输出值符合预期(为0)

    AM37x 从关闭模式转换为活动模式、PM_PWSTST_PER[1:0] POWERSTATEST = 0x7 (开启状态)、PM_PREPWST_PER[1:0] LASTPOWERSTATETERED = 0x0 (域关闭)、GPIO_96引脚输出值符合预期(等于1)

    4. AM37x 从工作模式切换到关闭模式-->根据我了解的情况,您在这一步骤中观察到了问题,这是正确的吗? 问题是您无法进入关闭模式? 或者、您可以进入关闭模式、但 GPIO_96引脚输出值不是预期值(仍然是1、而不是0)?

    另请参阅以下 wiki 页面是否将处于"帮助"中:

    processors.wiki.ti.com/.../DM37x_OFF_mode_PAD_configuration
    processors.wiki.ti.com/.../DM37x_Schematic_Checklist
    processors.wiki.ti.com/.../OMAP35x-AM37x-DM37x_with_TPS65073:_Design_In_Guide

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    感谢您的回应、我知道您对 CE 不熟悉。  但是、我希望从器件角度获得您的帮助。

    是的、您的描述是正确的。 我的问题是在步骤4中、在关闭模式下 GPIO_96仍然为1。 根据寄存器 PM_PREPWSTST_PER[1:0] LASTPOWERSTATEENTERED、在我看来每个域都是关闭的、当 GPIO_96关闭时、它应该将其驱动为0。 但是、我观察到 GPIO_96仍然为1 (此外、请注意、SYS_OFF_MODE 引脚的行为方式相同、只是在 ON 期间应为0、在 OFF 期间应为1)。

    根据我提供的信息。 您是否认为每个域实际上处于关闭状态、问题主要由勘误表引起? 或者、如果 GPIO_96指示某些域没有完全关闭、我是否可以检查任何寄存器来缩小问题的范围?  

    谢谢

    奥古斯丁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Augustine Miu"]是的、您的描述是正确的。 我的问题是在步骤4中、在关闭模式下 GPIO_96仍然为1。 根据寄存器 PM_PREPWSTST_PER[1:0] LASTPOWERSTATEENTERED、在我看来每个域都是关闭的、当 GPIO_96关闭时、它应该将其驱动为0。 但是、我观察到 GPIO_96仍然为1 (此外、请注意 SYS_OFF_MODE 引脚的行为方式相同、只是在 ON 期间应为0、在 OFF 期间应为1)。[/引述]

    首先、让我们在步骤4中检查您的器件是否真正进入关闭模式。

    SYS_OFF_MODE -输出引脚、请求外部电源 IC 根据器件电源状态切换器件电压电平。 根据我的理解、您在该引脚上具有预期值、这是正确的吗?

    您还可以监控 sys_clkout1引脚。 SYS_clkout1可以输出振荡器时钟(12、13、16.8、19.2、26、 或38.4MHz)。 它可由软件控制、也可从外部使用 sys_clkreq 控制。 当器件处于关闭状态时、可将 SYS_clkreq 置为有效、以启用振荡器并激活 SYS_clkout1、而不唤醒器件。 sys_clkout1的关闭状态极性是可编程的。 请参阅 TRM 第3.5.3.5.3节外部输出时钟1 (SYS_clkout1)控制

    当您进入关闭模式(第4步)时、您可以连接 JTAG 调试器并检查 PM_PREPWSTST_PER 和 PM_PWSTST_PER 寄存器的值是否符合预期。

    另请参阅 TRM 部分:

    3.5.7 PRCM 关闭模式管理
    13.4.4.4系统关闭模式


    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    谢谢你。 在为 OMAP35x 处理器进行开发时、我们以前在一开始就设置了 JTAG、但我们现在不再设置 JTAG 了。 此外、我们使用 sys_clkout1作为输出(GPIO10)、因此执行您建议的步骤不太容易。  

    SYS_OFF_MODE 的运行方式与其他 GPIO 相同、因此它第一次正确地驱动至 OFF 状态、而不是第二次。 您是否同意处理器未完全暂停?

    感谢您指出用于关闭模式管理的 TRM 部分。 我有一个问题要问您。 在第3.5.7.4.1.1节中、它列出了步骤5、是切换到关闭模式配置的方法。 我认为我们的器件在第1步和第5步之间"卡住"了。 是否有任何寄存器可以检查器件卡在哪个步骤?

    谢谢

    奥古斯丁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、

    还有一个问题要问。 我尝试比较 OMAP35x 和 AM37x 之间的寄存器转储。 我注意到的一点是、从关闭状态唤醒后、OMAP35x 的 RM_RSTST_USBHOST[2]。DMAINWKUP_RST 位始终设置为1。 但是、对于 AM37x、从关闭状态唤醒后、RM_RSTST_USBHOST[2]。DOMAINWKUP_RST 位始终设置为0。 域唤醒复位是否可配置?

    谢谢
    奥古斯丁
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Augustine Miu"]sys_off_mode 的行为与其他 GPIO 相同、因此它第一次正确地驱动至关闭状态、而不是第二次。 您是否同意处理器未完全暂停?

    是的、我同意。 您的 AM37x 板似乎无法第二次进入关闭状态。 这可能是硬件问题、您能否检查是否可以在 AM37x TI EVM 上重现此问题?

    另一种调试策略是充分阐明 OMAP35x 和 AM37x 在关断模式管理方面的差异。 例如:

    或者、除了使用 SYS_OFF_MODE 引脚、OMAP35x 还支持关闭模式转换期间 VDD_MPU_iva 和 VDD_CORE 定序的 I2C 命令。

    有关更多调试提示、请参阅以下 Wiki:

    [引用 user="Augustine Miu">感谢您指出 TRM 部分的关断模式管理。 我有一个问题要问您。 在第3.5.7.4.1.1节中、它列出了步骤5、是切换到关闭模式配置的方法。 我认为我们的器件在第1步和第5步之间"卡住"了。 是否有任何寄存器可以检查器件卡在哪个步骤?

    当器件卡住时、您打算在没有 CCStudio 和 JTAG 的情况下检查任何寄存器的确切程度如何?

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Augustine Miu">您还有一个问题。 我尝试比较 OMAP35x 和 AM37x 之间的寄存器转储。 我注意到的一点是、从关闭状态唤醒后、OMAP35x 的 RM_RSTST_USBHOST[2]。DMAINWKUP_RST 位始终设置为1。 但是、对于 AM37x、从关闭状态唤醒后、RM_RSTST_USBHOST[2]。DOMAINWKUP_RST 位始终设置为0。 域唤醒复位是否可配置?[/引用]

    根据我在 AM37x TRM 中找到的内容、域唤醒复位不可配置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    遗憾的是、我们没有 AM37x EVM 套件、因为我们的初始开发是使用 OMAP35x 处理器进行的。 感谢您提供链接、我将查看并告知您是否有任何问题。

    返回 到 RM_RSTST_USBHOST[2]。DMAINWKUP_RST。 对于 OAMP35x 处理器、我看到该位变为1、这意味着"USB 主机电源域唤醒后已复位。" 对于 AM37x、该位在从关闭模式退出后始终为0。 我检查了其他 RM_RSTSTx 寄存器(RM_RSTST_MPU、 RM_RSTST_DSS、 RM_RSTST_CAM、 RM_RSTSTST_PER、 RM_RSTSTSTST_EMU、  RM_RSTST_NEON)、它们都具有相同的差异。 您认为这意味着什么重要吗?   

    谢谢

    奥古斯丁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Augustine Miu"]返回 RM_RSTST_USBHOST[2]。DOMAINWKUP_RST。 对于 OAMP35x 处理器、我看到该位变为1、这意味着"USB 主机电源域唤醒后已复位。" 对于 AM37x、该位在从关闭模式退出后始终为0。 我检查了其他 RM_RSTSTx 寄存器(RM_RSTST_MPU、 RM_RSTST_DSS、 RM_RSTST_CAM、 RM_RSTSTST_PER、 RM_RSTSTSTST_EMU、  RM_RSTST_NEON)、它们都具有相同的差异。 您认为这意味着什么重要吗?   [/报价]

    RM_RSTST_POWER_domain 寄存器用于记录复位源。

    全局冷复位的置位可防止在释放域复位之前记录任何其他复位源。

    由于某种原因、复位状态寄存器无法记录由电源域转换(关闭至活动)引起的复位。 这可能是由 SW (在该 DOMAINWKUP_RST 位中写入1、从而将其清零)和/或不发生转换(关闭到活动)的原因导致的。 复位信号的生成和/或释放也可能存在硬件问题。 在相应复位信号的有效释放时、该 DMAINWKUP_RST 位被置位。




    如需更多信息、请参阅 AM37x TRM 的章节:

    3.5.1.6.1 PRCM 复位记录机制

    3.6.3.1.3 RM_RSTST_ DOMAIN_NAME (复位状态寄存器)

    3.6.6.2复位管理


    另请参见以下 e2e 线程:

    e2e.ti.com/.../1200261



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pavel、

    我认为 SDOCM00067652仅适用于 Linux、对吗?  

    此外、该表还显示 了 AM37x 处理器和 OMAP35处理器上 PRM_IRQSTATUS_MPU 在处理器进入关闭模式之前和之后的值。 该值是否符合您的预期?

    AM37 OMAP35
    关闭模式之前 0x08000010 0x00124810
    从关闭模式唤醒 0x08000211 0x00124a11

    谢谢

    奥古斯丁

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Augustine Miu">我认为 SDOCM00067652仅适用于 Linux、对吗?  [/报价]

    是的、仅适用于 Linux PSP。