MWSDK(TWELITE SDK)
MONO WIRELESS INC.
MWSDK
MWSDK
  • TWELITE SDK (MWSDK) マニュアル
  • はじめに
    • TWELITE SDK 利用規定
    • サポート、対応
    • モノワイヤレスソフトウェア使用許諾書
    • TWELITE SDKの構成
  • 最新版の取得
    • TWELITE SDK 改版履歴
  • TWELITE SDKの使用法
    • TWELITE SDKのインストール
    • VSCode での利用
    • フォルダ構成
    • コマンドラインでのビルド方法
    • ビルド定義について
      • Makefile について
      • Version.mk について
      • binファイル命名則
    • ファームウェア書換
      • ファームウェア書換用配線
      • tweterm.py
  • TWELIET NET API 解説
    • 用語
    • TWELITE NET ライブラリ構造
    • TWENET 動作フロー
      • 始動フロー
      • メインループフロー
      • 無線関連フロー
      • ハードウェアフロー
      • ユーザ定義イベント処理関数フロー
    • ソースコードの構造
    • モジュール
    • 無線パケット
      • パケットの最大長
      • アドレスの指定
      • アプリケーションID
    • ネットワークについて
      • 単純ネット
        • 送信
        • 受信
      • 中継ネット
        • 親機の実装
        • 中継器の実装
        • 子機の実装 (MININODES)
        • NBビーコン方式の接続
        • 中継ネットのアドレス
        • 上位アドレスを固定した静的中継
  • TWELITE NET API リファレンス
    • コールバック関数
      • cbAppColdStart()
      • cbAppWarmStart()
      • cbToCoNet_vMain()
      • cbToCoNet_vRxEvent()
      • cbToCoNet_vTxEvent()
      • cbToCoNet_vNwkEvent()
      • cbToCoNet_vHwEvent()
      • cbToCoNet_u8HwInt()
    • TWELITE NET関数
      • ToCoNet_vMacStart()
      • ToCoNet_bMacTxReq()
      • ToCoNet_u32GetSerial()
      • ToCoNet_u32GetRand()
      • ToCoNet_vSleep()
      • ToCoNet_vDebugInit()
      • ToCoNet_vDebugLevel()
      • ToCoNet_u32GetVersion()
      • ToCoNet_bRegisterAesKey()
      • ToCoNet_vRfConfig()
      • ToCoNet_vChConfig()
      • ToCoNet_Tx_vProcessEventQueue()
      • ToCoNet_u16RcCalib()
    • 中継ネット API
      • functions
        • ToCoNet_Nwk_bInit()
        • ToCoNet_Nwk_bStart()
        • ToCoNet_Nwk_bPause()
        • ToCoNet_Nwk_bResume()
        • ToCoNet_Nwk_bTx()
      • Structure
        • tsTxDataApp (中継ネット)
        • tsRxDataApp (中継ネット)
        • tsToCoNet_Nwk_Context
      • LayerTree ネット
        • ToCoNet_NwkLyTr_psConfig()
        • ToCoNet_NwkLyTr_psConfig_MiniNodes()
        • tsToCoNet_NwkLyTr_Context
    • 型 typedef, よく使うマクロ
    • 構造体
      • sToCoNet_AppContext
      • tsRxDataApp
      • tsTxDataApp
    • TWELITE NET マクロ
      • ToCoNet_REG_MOD_ALL()
      • utils.h
    • ユーザ定義イベント処理関数
      • ステート(状態)
      • イベント
      • ToCoNet_Event API
        • ToCoNet_Event_Register_State_Machine()
        • ToCoNet_Event_Process()
        • ToCoNet_Event_SetState()
        • ToCoNet_Event_vKeepStateOnRamHoldSleep()
        • ToCoNet_Event_u32TickFrNewState()
    • モジュール ライブラリ
      • ENERGY SCAN
      • NB SCAN
    • PRSEV ライブラリ
    • グローバル変数
      • uint32 u32TickCount_ms
      • sToCoNet_AppContext (静的変数)
    • PANIC
  • HW API リファレンス
    • ペリフェラル
      • ADC
        • adc.c
      • DIO
      • TickTimer
      • UART
        • SERIAL ライブラリ
          • SERIAL_vInit()
          • SERIAL_vInitEx()
          • SERIAL_bRxQueueEmpty()
          • SERIAL_i16RxChar()
          • SERIAL_vFlush()
          • tsSerialPortSetup
          • tsUartOpt
        • fprintf ライブラリ
          • vfPrintf()
          • vPutChar()
          • tsFILE
      • Timer
        • Timerライブラリ
          • vTimerConfig()
          • vTimerStart()
          • vTimerStop()
          • vTimerDisable()
          • tsTimerContext
      • WakeTimer
      • I2C
      • SPI
    • Flash, EEPROM
      • EEPROM
      • Flash
  • Utils リファレンス、他
    • ByteQueue
    • u8CCITT8()
    • SPRINTFライブラリ
    • BTMライブラリ(連照式 DIO 入力 )
GitBook提供
このページ内
  • ADCの概要
  • TWENET でのソースコード
  1. HW API リファレンス
  2. ペリフェラル

ADC

TWELITE の ADC について、解説します。

ADCの概要

TWELITEには10bit, 4ch のADCが搭載されています。( ADC2 は VREF 入力と共用です。ADC3,4 は DIO と共用になっています)

  • ADCの基準電圧である Vref は約 1.235V で、外部への出力はありません。また温度特性等の情報は公開されておりません。

  • ADCのレンジは、0-Vrefまたは0-2Vrefとなります。(0-Vccの相対スケールではありません)

  • ADC計測ではVrefまたはレンジによってデータシートの性能を得るために必要とする電源電圧が決まっています。(0-Vrefで2.2V以上、0-2Vrefで2.6V以上)

  • ADCは複数ポート計測できますが、マルチプレクサによる切り替えであるため同時に複数の計測は行えません。複数ポートの計測をするには順次ポートを切り替えて計測します。

  • 精度を要求される場合は外部のADCの利用を推奨します。

  • ADC は、2Mhz, 1Mhz, 500khz, 250khz (500khz 推奨)でサンプリング回路のサンプリングクロックを設定可能です。実際にこのクロックでサンプリングできるわけではなく、内部回路の周波数です。一定周期でサンプルしたい場合は、周期タイマー(TickTimer や TIMER0/1/2) 割り込みを起点にサンプル値の取得をソフトウェアで行います。ただし高周期ではタイマーの時間軸のブレ(ジッター)を考慮する必要があります。

  • 1サンプル取得に (2, 4, 6, 8) x 3 + 14 サンプリングクロック必要です。

  • 500khz で 2 クロックの場合、2x3+14 = 20 サンプリングクロック = 40 usec となります。

ポート

ポート
内容

電源電圧

電源電圧を計測します。2/3に分圧されているため、ADC値よりmV値に変換した上、3/2倍することになります。簡易的には {ADC値(0-1023)} x 3705 / 1024 と計算します。

温度センサー

内蔵の温度センサーで、0-Vrefレンジで計測します。オフセット誤差が大きくキャリブレーションが必要になります。 ※ TWENETでは使用していません。

ADC1

アナログ専用のポートです。

ADC2 (VREF)

アナログ専用のポートです ※ ADC2はVREFとして基準電圧の入力とすることができます(VREF 外部入力は TWENETでは使用していません)

ADC3,4

DIOと共用になっているため内部プルアップを無効にする必要があります。

入力回路

ADCの入力回路は、図のようにモデル化できます。直列の抵抗は5kΩ~10kΩ(図では5kΩとなっています)です。外部回路の設計の参考にしてください。

例えば 1MΩといった高い抵抗値で分圧するなどした電圧値をを計測する場合は、出力端にキャパシタを追加します。このキャパシタは電圧変化に対する応答性を悪化させますが、計測電圧を安定化させます。

TWENET でのソースコード

前へペリフェラル次へadc.c

最終更新 2 年前

ADCの計測では、Peripheral API による手続きを、まとめた を用いています。

adc.c