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.

[参考译文] CC2745P10-Q1:在 I/O 上输出 32,768kHz RC 时钟信号

Guru**** 2466550 points
Other Parts Discussed in Thread: CC2745P10-Q1, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1550209/cc2745p10-q1-output-the-32-768khz-rc-clock-signal-on-an-i-o

器件型号:CC2745P10-Q1
主题: SysConfig 中讨论的其他器件

工具/软件:

TI 团队大家好、

我正在使用 CC2745P10-Q1、并尝试使用应用手册中的程序代码将低频 RC 振荡器时钟信号输出到 DIO27。

但是、当我设置 clockSrc 时、我不会工作。

Uint8_t clockSrc = 0xE//无信号
Uint8_t clockSrc = 0xF//无信号
Uint8_t clockSrc = 0x0// 信号
Uint8_t clockSrc = 0x1// 信号
Uint8_t clockSrc = 0x2// 信号

我需要将代码或配置更改为什么  激活 LF RC 振荡器  从而能够路由到 DTB0 (DIO27)?

非常感谢您的支持!

此致、
Lars Kuhn

程序代码:

/*包括
*/
#include
#include DeviceFamily_constructPath (inc/hw_types.h)
#include DeviceFamily_constructPath (inc/hw_memmap.h)
#include DeviceFamily_constructPath (inc/hw_ckmd.h)
#include DeviceFamily_constructPath (inc/hw_ico.h)
#include DeviceFamily_constructPath (inc/hw_pmctl.h)
//
int main()
//
/**在 Board_init () 之后添加以下内容;
*确保 PIN 或中的任何条目不使用下面使用的 IOID
*板级配置文件中的 GPIO 表。
*时钟源可以使用恒定 clockSrc 进行切换。
*/
Uint8_t clockSrc = 0xE//(对于 LF 晶体时钟)
//先将输出驱动为低电平
GPIO_setConfig (27、GPIO_CFG_OUTPUT | GPIO_CFG_OUT_LOW);
//配置 IOC.IOC19.PORTCFG MMR 以选择 DTB
HWREG (IOC_BASE + IOC_O_IOC27) 且=~IOC_IOC19_PORTCFG_M;
HWREG (IOC_BASE + IOC_O_IOC27)|= 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) 且=~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;
//启用 DTB 输出
HWREG (CKMD_BASE + CKMD_O_DTBCTL) 且=~CKMD_DTBCTL_EN_M;
HWREG (CKMD_BASE + CKMD_O_DTBCTL)|= CKMD_DTBCTL_EN;
//
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Lars:  

    CC27xx 技术参考手册(修订版 A)的以下数据表中、您可以通过修改来查看该信息 CLKSEL EN 字段中的值 E 1. ,它是可能得到的 LFOSC  时钟输出开启 DTB0

    为了回答您的问题、以下两行将 DIO27 设置为 LFOSC  输出引脚:  

    1. HWREG (IOC_BASE + IOC_O_IOC27) =  IOC_IOC27_PORTCFG_DTB;  
    2. HWREG ( CKMD_BASE + CKMD_O_DTBCTL)= CKMD_DTBCTL_CLKSEL_LFOSC | CKMD_DTBCTL_EN ;

    第一个将 DIO27 设置为 DTB0 输出。 第二个示例启用 DTB 输出、并将 DTB0 设置为 LFOSC 输出(对应于 LF RC 振荡器)。

    然后、确保 SysConfig 中的时钟源为 LF ROSC。

    此致、

    罗曼语