主题中讨论的其他器件:CC2340R5
工具/软件:
尊敬的专家:
我建议客户按照以下说明操作: software-dl.ti.com/.../debugging-index-cc23xx.html。 但他们无法通过 GPIO 输出 32k 波形。
以下是代码:
静态空洞 LF_DEBUG (void)
{
Uint8_t clockSrc = 0xE;//C;//(对于 HF 晶体时钟除以 8)
// uint8_t clockSrc = 0xF;//对于 LF 晶体时钟
//先将输出驱动为低电平
GPIO_setConfig (19、GPIO_CFG_OUTPUT | GPIO_CFG_OUT_LOW);
//配置 IOC.IOC19.PORTCFG MMR 以选择 DTB
HWREG (IOC_BASE + IOC_O_IOC19) 且=~IOC_IOC19_PORTCFG_M;
HWREG (IOC_BASE + IOC_O_IOC19)|= IOC_IOC19_PORTCFG_DTB;
//确保在 IOC 中选择 DTB 多路复用器(如果在中需要)
//源时钟 ip) 重置为零、即 DTB0 上驱动为零。
// ULLSEL 多路复用器选择(选择 CKMD)
HWREG (IOC_BASE + IOC_O_DTBCFG) 且=~IOC_DTBCFG_ULLSEL_M;
HWREG (IOC_BASE + IOC_O_DTBCFG)|= 0x1 << IOC_DTBCFG_ULLSEL_S;// 0x1 用于将 CKMD 路由到 DTB0
//启用 IOC.DTBOE.EN0
HWREG (IOC_BASE + IOC_O_DTBOE)&= 0x10;//~IOC_DTBOE_EN0_M;
HWREG (IOC_BASE + IOC_O_DTBOE)|= 0x10;//IOC_DTBOE_EN0_EN;
//选择在 DTB0 (DTB[0]) 上输出哪个时钟 (CKMD)
HWREG (CKMD_BASE + CKMD_O_DTBCTL)&=~CKMD_DTBCTL_CLKSEL_M;
HWREG (CKMD_BASE + CKMD_O_DTBCTL)|=(clockSrc)<< CKMD_DTBCTL_CLKSEL_S;
//启用 DTB 输出
HWREG (CKMD_BASE + CKMD_O_DTBCTL) 且=~CKMD_DTBCTL_EN_M;
HWREG (CKMD_BASE + CKMD_O_DTBCTL)|= CKMD_DTBCTL_EN;
}
根据以下代码、当高速晶体振荡器频率降低 8 倍 时、它可以在 DIO27 引脚上输出 6M、但切换到内部时钟时、无法输出 6M。 如何 匹配?
静态空洞 LF_DEBUG (void)
{
Uint8_t clockSrc = 0xC;//(对于 HF 晶体时钟除以 8)
//先将输出驱动为低电平
GPIO_setConfig (27、GPIO_CFG_OUTPUT | GPIO_CFG_OUT_LOW);
//配置 IOC.IOC19.PORTCFG MMR 以选择 DTB
HWREG (IOC_BASE + IOC_O_IOC27) 且=~IOC_IOC27_PORTCFG_M;
HWREG (IOC_BASE + IOC_O_IOC27)|= IOC_IOC27_PORTCFG_DTB;
//确保在 IOC 中选择 DTB 多路复用器(如果在中需要)
//源时钟 ip) 重置为零、即 DTB0 上驱动为零。
// ULLSEL 多路复用器选择(选择 CKMD)
HWREG (IOC_BASE + IOC_O_DTBCFG) 且=~IOC_DTBCFG_ULLSEL_M;
HWREG (IOC_BASE + IOC_O_DTBCFG)|= 0x1 << IOC_DTBCFG_ULLSEL_S;// 0x1 用于将 CKMD 路由到 DTB0
//启用 IOC.DTBOE.EN0
HWREG (IOC_BASE + IOC_O_DTBOE) 且=~IOC_DTBOE_EN0_M;
HWREG (IOC_BASE + IOC_O_DTBOE)|= IOC_DTBOE_EN0_EN;
//选择在 DTB0 (DTB[0]) 上输出哪个时钟 (CKMD)
HWREG (CKMD_BASE + CKMD_O_DTBCTL)&=~CKMD_DTBCTL_CLKSEL_M;
HWREG (CKMD_BASE + CKMD_O_DTBCTL)|=(clockSrc)<< CKMD_DTBCTL_CLKSEL_S;
//HWREG (CKMD_BASE + CKMD_O_DTBCTL) 且=~DTBCTL_DSEL0_M;
//HWREG (CKMD_BASE + CKMD_O_DTBCTL)|= 0x4 << IOC_DTBCFG_ULLSEL_S;
//启用 DTB 输出
HWREG (CKMD_BASE + CKMD_O_DTBCTL) 且=~CKMD_DTBCTL_EN_M;
HWREG (CKMD_BASE + CKMD_O_DTBCTL)|= CKMD_DTBCTL_EN;
}