JAJZ041F April 2023 – September 2025 CC2340R5
PRODUCTION DATA
オープン ドレイン構成が短い High パルスを駆動する可能性があります。
各 DIO は、IOCx レジスタを使用してオープン ドレイン モードに設定できます。
ただし、内部デバイスのタイミングの問題により、GPIO が高インピーダンス状態への遷移中、または高インピーダンス状態からの遷移中におよそ 1ns~2ns の間、ロジック High を駆動することがあります。この望ましくない High レベルにより、他のドライバが同時に低レベルを駆動している場合、GPIO がライン上の別のオープンドレイン ドライバと競合する可能性があります。この競合は、両方のデバイスにストレスを加え、信号に短時間の中間電圧レベルが生じるため、望ましくありません。レシーバ ロジックにこの短いパルスをフィルタリングするのに十分なロジック フィルタリングがない場合、この中間電圧レベルは誤って高レベルと解釈される可能性があります。
競合が問題となる場合、GPIO のオープンドレイン機能を使用せず、ソフトウェアでオープン ドレイン モードをエミュレートします。オープン ドレイン エミュレーションは、GPIO データ (DOUT31_0.DIOx) を固定で 0 に設定し、GPIO 出力イネーブル (DOE31_0.DIOx) を制御することで、Low 駆動の有効/無効を切り替えて実現できます。実装例については、以下のコードを参照してください。
#include <ti/devices/cc23x0r5/driverlib/gpio.h>
/* Call driver init functions */
GPIO_init();
//Set GPIO data (DOUT31_0.DIOx) to static 0
GPIOClearDio(CONFIG_GPIO_LED_0);
while(1) //loop below toggles the LED on and off every 1 second
{
GPIOSetOutputEnableDio(CONFIG_GPIO_LED_0, 1);
sleep(1);
GPIOSetOutputEnableDio(CONFIG_GPIO_LED_0, 0);
sleep(1);
}