主题中讨论的其他器件:TPS63000、 LAUNCHCC3235MOD
您好!
我们在 LPDS 期间遇到问题、我想知道原因是什么。
在我们的定制电路板上、引脚53 (GPIO30)直接连接到 TPS63000降压/升压转换器的 EN 引脚。 当我将该引脚配置为(GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW)时、它会在 MCU 运行时按预期工作。 如果 GPIO30设置为高电平、则 VOUT 为3.3V、设置为低电平时为0。 但是、当器件进入 LPDS 时、GPIO30进入悬空状态、TPS63000的 VOUT 也下降。 在查看 CC3235MODSF 数据表4.3之后、预计会出现这种情况、因为 GPIO30和 GPIO28没有 LPDS 保持。 从"PowerCC32XX.c"中的 SDK 中还可以看到、在 LPDS 停止状态下、这些引脚无法驱动为高电平或低电平:
/*如果不驱动引脚,请将其置于指定状态... // if (((parkInfo.parkState!= PowerCC32XX_DRIVE_LOW)&& (parkInfo.parkState!= PowerCC32XX_DRIVE_HIGH)){ PowerCC32XX_parkPin ( (PowerCC32XX_Pin) parkInfo.pin、 (PowerCC32XX_ParkState) parkInfo.parkState、 PowerCC32XX_MODULE.pinType[i]、 &PowerCC32XX_MODULE.pinDir[i]); } // *否则,现在请检查引脚是否可以被驱动(引脚45、53和55 *不能被驱动) */ 否则,如果((parkInfo.pin!= PowerCC32XX_PIN45)&& (parkInfo.pin!= PowerCC32XX_PIN53)&& (parkInfo.pin!= PowerCC32XX_PIN55)){ /* *必须确保引脚模式为零;首先是获取/刷新电流模式、 *然后将模式设置为零 * PowerCC32XX_MODULE.pinMode[i]= (uint8_t) map_PinModeGet (parkInfo.pin); MAP_PinModeSet (parkInfo.pin、0); /*如果引脚被驱动为低电平、则将锁定电平设置为0 */ if (parkInfo.parkState = PowerCC32XX_DRIVE_LOW){ MAP_PinLockLevelSet (((PowerCC32XX_Pin) parkInfo.Pin、0); PowerCC32XX_MODULE.pinLockMask |= 1 << PinToPadGet (parkInfo.pin); } /*否则、引脚驱动为高电平、将锁定电平设置为1 */ 否则{ MAP_PinLockLevelSet (((PowerCC32XX_Pin) parkInfo.pin、1); PowerCC32XX_MODULE.pinLockMask |= 1 << PinToPadGet (parkInfo.pin); } }
我知道这可以通过更改硬件设计来解决、但我想首先尝试通过更改固件来解决、因为更改硬件设计需要太多时间。
接下来、我决定尝试在该引脚上使用内部上拉电阻器、以查看使用上拉电阻器泊车是否有帮助。 但是、如果我将 GPIO30配置为(GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_LOW)并在 MCU 运行时将其设置为高电平、则它不会设置为高电平、因此我无法在 TPS63000的 VOUT 上看到3.3V 电压。
以确保此想法有效。 我在 LAUNCHCC3235MOD 上对其进行了测试。 我可以在 MCU 运行期间和 LPDS 期间以及使用 GPIO 配置(GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_LOW)看到引脚53 (GPIO30)为高电平。 因此、看起来可以使用此配置在 LPDS 期间保持 GPIO30为高电平、但在某种程度上、当该引脚连接到 TPS63000的 EN 引脚时、这是不可能的。
这个问题也可能与 TPS63000的其他专家有关、但我不确定我是否将其发布在这里。
简而言之、我想在 LPDS 期间保持 GPIO30为高电平、以使 TPS63000保持启用状态。 请告诉我是否有办法处理这种情况。
最棒的
欧格尔肯