JAJA866 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 RF シールド
    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 DC/DC レギュレータ
    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 DC/DC コンバータ モード
    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 Bluetooth Low Energy:デバイスはアドバタイズを実行するが接続できない
      5. 10.4.5 感度が不十分:バックグラウンド ノイズ
      6. 10.4.6 スリープ時消費電力が高い
  14. 11まとめ
  15. 12参考資料

LF 水晶発振器のチューニング

32kHz の水晶発振器の周波数は、水晶振動子の必要な負荷容量 CL に対して、負荷コンデンサを適切な大きさにすることで設定できます。水晶振動子から、2 つのコンデンサを直列に配置します。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 が等しいことが必要です。

発振器の周波数精度を測定する最善の方法は、32kHz のクロック信号を I/O ピンに出力することです。周波数は発振器に影響を与えずに、周波数カウンタを使用して測定できます。次のコード スニペットは、選択した 32kHz のクロック ソースを DIO19 に出力します。CC23xx と CC27xx の 32kHz クロックを出力するために使用できる特定の I/O は 1 つだけです (表 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