ZHCAFA6 May   2025 CC2340R5 , CC2340R5-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
  5. 参考设计
    1. 2.1 LP-EM-CC2340R53
    2. 2.2 LP-EM-CC2340R5
    3. 2.3 LP-EM-CC2340R5-Q1
    4. 2.4 LP-EM-CC2340R5-RGE-4x4-IS24
    5. 2.5 LP-EM-CC2745R10-Q1
  6. 原理图
    1. 3.1 原理图概览
      1. 3.1.1 48MHz 晶振
      2. 3.1.2 32.768kHz 晶振
      3. 3.1.3 滤波器
      4. 3.1.4 去耦电容器
      5. 3.1.5 天线元件
      6. 3.1.6 射频屏蔽层
    2. 3.2 I/O 引脚驱动强度
    3. 3.3 引导加载程序引脚
    4. 3.4 串行线调试 (SWD) 引脚
  7. PCB 布局
    1. 4.1 电路板堆叠
    2. 4.2 LC 滤波器
    3. 4.3 去耦电容器
    4. 4.4 晶体负载电容器的放置
    5. 4.5 电流返回路径
    6. 4.6 直流/直流稳压器
    7. 4.7 天线匹配元件
    8. 4.8 传输线路
    9. 4.9 电磁仿真
  8. 天线
  9. 晶体调谐
    1. 6.1 CC23xx 和 CC27xx 晶体振荡器
    2. 6.2 晶体选型
    3. 6.3 对 LF 晶体振荡器进行调谐
    4. 6.4 对 HF 晶体振荡器进行调谐
  10. 最佳负载阻抗
  11. PA 表
  12. 电源配置
    1. 9.1 电源简介
    2. 9.2 直流/直流转换器模式
    3. 9.3 全局 LDO 模式
  13. 10电路板启动
    1. 10.1 上电
    2. 10.2 RF 测试:SmartRF Studio
    3. 10.3 RF 测试:传导测量
      1. 10.3.1 灵敏度
      2. 10.3.2 输出功率
    4. 10.4 硬件故障排除
      1. 10.4.1 无链路:RF 设置
      2. 10.4.2 无链路:频率偏移
      3. 10.4.3 链路不良:天线
      4. 10.4.4 低功耗蓝牙:器件可以广播但无法连接
      5. 10.4.5 灵敏度差:背景噪声
      6. 10.4.6 睡眠状态功耗高
  14. 11总结
  15. 12参考资料

对 LF 晶体振荡器进行调谐

可以通过相对于晶体的所需负载电容 CL 正确确定负载电容器的尺寸来设置 32kHz 晶体振荡器的频率。从晶体的角度而言,两个电容器串联放置。PCB 迹线和焊盘会增加一些寄生电容。可以通过方程式 1 来计算总有效电容值。

方程式 1. C L   =   C 1 x C 2 C 1 + C 2 + C p a r a s i t i c l o a d   c a p a c i t o r   v a l u e 2 + C p a r a s i t i c

最后的简化要求 C1 和 C2 相等。

测量振荡器频率精度的最佳方法是在 I/O 引脚上输出 32kHz 时钟信号。可以使用频率计数器来测量频率,而不会影响振荡器。以下代码片段将选定的 32kHz 时钟源输出到 DIO19。只能使用一个特定 I/O 为 CC23xx 和 CC27xx 输出 32kHz 时钟(请参阅表 6-1)。

/* INCLUDES
*/
#include <ti/drivers/GPIO.h>
#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_ioc.h)
#include DeviceFamily_constructPath(inc/hw_pmctl.h)
// ...
int main()
{
// ...

/** Add the following after Board_init();
* Be sure IOID used below is not used by any entries in PIN or
* GPIO tables from the board files.
* The clock source can be switched with constant clockSrc.
*/

uint8_t clockSrc = 0xF; // for LF crystal clock

// drive output low first
GPIO_setConfig(19, GPIO_CFG_OUTPUT | GPIO_CFG_OUT_LOW);

// Configure the IOC.IOC19.PORTCFG MMR to select DTB
HWREG(IOC_BASE + IOC_O_IOC19) &= ~IOC_IOC19_PORTCFG_M;
HWREG(IOC_BASE + IOC_O_IOC19) |= IOC_IOC19_PORTCFG_DTB;

// Make sure the DTB mux selects in IOC (and if required in
// source clock IP) are reset that zero is driven on DTB0.
// ULLSEL mux select (select CKMD)
HWREG(IOC_BASE + IOC_O_DTBCFG) &= ~IOC_DTBCFG_ULLSEL_M;
HWREG(IOC_BASE + IOC_O_DTBCFG) |= 0x1 << IOC_DTBCFG_ULLSEL_S; // 0x1 to route CKMD to DTB0

// Enable IOC.DTBOE.EN0
HWREG(IOC_BASE + IOC_O_DTBOE) &= ~IOC_DTBOE_EN0_M;
HWREG(IOC_BASE + IOC_O_DTBOE) |= IOC_DTBOE_EN0_EN;

// select which clock (CKMD) to output on DTB0 (DTB[0])
HWREG(CKMD_BASE + CKMD_O_DTBCTL) &= ~CKMD_DTBCTL_CLKSEL_M;
HWREG(CKMD_BASE + CKMD_O_DTBCTL) |= (clockSrc) << CKMD_DTBCTL_CLKSEL_S;

// enable DTB output
HWREG(CKMD_BASE + CKMD_O_DTBCTL) &= ~CKMD_DTBCTL_EN_M;
HWREG(CKMD_BASE + CKMD_O_DTBCTL) |= CKMD_DTBCTL_EN;

// ...
}
表 6-1 用于输出 32kHz 时钟的 I/O
CC23xx CC27xx

DIO19

DIO27