セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2025-08-08 現在

Onchip temp sensor (温度センサー)関連のAHI関数と解説

TWENETライブラリ、Onchip temp sensor (温度センサー)関連のAHI関数と解説

    Onchip temp sensor (温度センサー)

    TWELITE GOLDでは、内部チップ中に温度センサーが実装されています。このセンサー値は、無線MAC層の初期化のパラメータとして用いられます。

    MAC層の初期化時の温度センサーの取り扱い

    • 温度センサーの値が取得できない場合は20℃として初期化します。
    • スリープ復帰時にG_TWENET_CHIPSENSOR_ADC_INTERVAL_MS()ミリ秒以上経過している場合は、スリープ起床時(RAM保持)に再度温度計測を行い、センサー値をもとにMACの再初期化を行う。

    グローバル変数

    uint8 G_TWENET_CHIPSENSOR_AUTO_ON_BOOT()
      // 変数アクセス用のマクロ
    

    温度センサーの取得を自動で行うための設定用変数。cbAppColdStart(FALSE)中で設定する。

    設定値内容備考
    0温度センサーの取得を自動で行わない。MAC層の温度補正は固定値 (20℃で行う)
    1温度センサーの取得を自動で行う。
    uint8_t G_TWENET_CHIPSENSOR_ADC_TIMES_SCALER()
      // 変数アクセス用のマクロ
    

    温度センサーのADC回数に対応するスケーラー値を指定します。

    設定値ADC回数
    01
    12
    24
    38
    int32 G_TWENET_CHIPSENSOR_TEMP128TH()
      // 変数アクセス用のマクロ
    

    TWENETライブラリ内で計測されたチップセンサーの温度(℃ の128倍値)が格納される。

    int16 g_twenet_chipsensor_volt_on_boot;

    TWENETライブラリ内で計測された電圧値[mV]。温度センサー計測時に同時に計測された値が格納される。

    uint32 G_TWENET_CHIPSENSOR_ADC_INTERVAL_MS()
      = (10*60*1000ul)
      // 変数アクセス用のマクロ
    

    この変数で指定された期間内は温度センサーの取得を省略する。cbAppColdStart(FALSE)中で設定する。

    uint8 g_twemet_chipsensor_capture_this_time;

    ブート時に温度測定を行うか否かを判定した内部フラグ。

    bAHI_AdcTemp_Measure_MW()

    bool_t bAHI_AdcTemp_Measure_MW(
        int32 *i32temp_128th,
        int16 *i16volt_mv,
        uint8 adc_times_scaler,
        bool_t bTurnOnSensor)

    温度センサーの計測を行います。

    • i32temp_128thは温度計測結果を返すint32がたの変数へのポインタ。
    • i16volt_mvは同時に計測される電源電圧[mV]値。
    • adc_times_scalerは温度センサーのADC回数に対応するスケーラー値を指定します。設定値は G_TWENET_CHIPSENSOR_ADC_TIMES_SCALER()の解説を参照してください。
    • bTurnOnSensorTRUEを設定すると、関数呼び出し内で温度センサーの電源を投入し必要な待ち処理を行います。FALSEを指定した場合は、事前にvAHI_AdcTemp_TurnOn_MW()を行い必要な待ち時間を経過している必要があります。

    vAHI_AdcTemp_TurnOn_MW()

    void vAHI_AdcTemp_TurnOn_MW()

    温度センサーの電源を投入する。この呼び出し後 100μ秒 の待ち時間が必要です。

    uint32 u32AHI_AdcTemp_GetCaptTick_MW()

    uint32 u32AHI_AdcTemp_GetCaptTick_MW()

    最後に温度センサー値を取得した FRWT 時刻を32KHzカウント値で返す。

    uint32 u32AHI_AdcTemp_GetCaptTick_msec_MW()

    uint32 u32AHI_AdcTemp_GetCaptTick_msec_MW()

    最後に温度センサー値を取得した FRWT 時刻をミリ秒で返す。

    u32AHI_AdcTemp_ElapsedFromCapt_msec_MW(), u32AHI_AdcTemp_TickrefFromCapt_msec_MW()

    uint32 u32AHI_AdcTemp_ElapsedFromCapt_msec_MW()
    uint32 u32AHI_AdcTemp_TickrefFromCapt_msec_MW(uint32 tick_ref)

    最後に温度計測してからの経過時間をミリ秒で返す。