cc2652 を使用する際の注意事項

これらの落とし穴があるのは cc2652 だけではなく、cc26xx シリーズにも存在すると推定されています。

CCS プリコンパイル済みマクロ構成の場所

スクリーンショット 2023-07-25 100344.pngスクリーンショット 2023-07-25 100344.png

 クロック取得

クロック get__STATIC_INLINE uint32_t SysCtrlClockGet(void) は sys_ctrl.h にあり、sys_ctrl.h はプロジェクト パスの下になく、SDK にあります。

ティック時間は ICall_getTicks() によって取得されます。単位は 10us で 1 ずつ増加します。ICall_getTickPeriod() の単位は 10us です。

コールバック関数の設定

コールバック関数を設定するには 2 つの方法があります。1 つは .syscfg のコールバック関数で設定するか、NULL に設定してプログラム内で GPIO_setCallback を使用してコールバック バインディングを行います。

上記のどの方法を使用する場合でも、GPIO_enableInt(CONFIG_GPIO_IRQ_3993) の前に GPIO_init() を追加する必要があります。そうしないと、割り込みに入ることができません。

IRQ は ENEXTIRQ でレベルを取得する必要があります

公式参考ドキュメント: /ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_g_p_i_o_8h.html

ナノ秒遅延

CC2652 の最大 48M 水晶発振器によって制限されるため、ns レベルの遅延を達成することは不可能であり、最速のものでも次のように 62ns の遅延しか達成できません。

/* ループあたり 3 サイクル: 1 ループ @ 48 Mhz ~= 62 ns ; 8 ループ @ 48 Mhz ~= 0.5 us */
    CPUlay(1);

SPIと低消費電力

CC2652 の SPI ノーマル モード リファレンス ファイル: ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_s_p_i_8h.html

CC2652 SPI DMA モードのリファレンス ファイル: ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_s_p_i_c_c26_x2_d_m_a_8h.html

SPI 通信では高周波の水晶発振子を使用しているため、SPI 通信中にデバイスはスタンバイ状態に移行できませんが、SPI_transferCancel()を呼び出した後にスタンバイ状態に移行することができます。

SPI_open(CONFIG_SPI_3993, &SPIparams) の CONFIG_SPI_3993 は .syscfg で構成されます

メインおよびコプロセッサの多重化 SPI の問題

テスト後、メイン コプロセッサは GPIO (SPI を含む) を再利用できません

メイン プロセッサが SPI ピンを設定した後、コプロセッサの初期化が呼び出されると、ピンはコプロセッサによってプリエンプトされます。メイン プロセッサのピンは Board_initGeneral(); で設定されますが、Board_initGeneral(); が呼び出された場合は、 2 回目; プリエンプションによりクラッシュが発生します。

現在のテスト結果では、コプロセッサがオフになると制御が自動的にメイン プロセッサに移されるはずですが、これについてはさらなる検証が必要です。

DAC搭載

負荷容量はuAレベルと比較的弱く、電圧型MOS管を駆動するには少し手間がかかります。

 ピン配置

ピン設定には GPIO_write メソッドまたは PIN_setOutputEnable メソッドを使用できます。

DIO31 が出力として設定されている場合、プログラムは Board_initGeneral() でクラッシュします (これは非常に奇妙であり、予期すべきではありません)。現在、ピンを DIO26 として設定すると、

おすすめ

転載: blog.csdn.net/Fei_Yang_YF/article/details/132066485