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提供
このページ内
  • ポート番号について
  • 負論理について
  • 起動時の状態
  • 入力
  • 出力
  • プルアップ
  1. HW API リファレンス
  2. ペリフェラル

DIO

DIO (汎用IO) は、ファームウェアの制御で任意に入力または出力することができます。

一般に GPIO とも呼ばれますが、本マニュアル中では DIO と呼称します。

汎用IOを用いて以下のことが可能です。

  • デジタル入力 (H または L レベルの読み出し)

    • プルアップ (50kΩ, typ) を設定可能です。

  • デジタル出力 (H または L レベルの出力)

    • 供給または吸い込み電流の最大値(3mA at 3V typ)です。

  • 割り込み(立ち上がり、または、立ち下がり)

    • 立ち上がり、立ち下がりを同時には検出できません。

    • スリープ時にも利用可能です。

ポート番号について

DIO は 0 番から 19 番まで 20 本が割り振られています。これらを順に DIO0 ... DIO19 と呼びます。以下に紹介する API では DIO の番号を直接指定します。

vPortAsInput(10); // set DIO10 as input
bool_t bPort = bPortRead(10);
   // TRUE: DIO10 is LO(GND) level
   // FALSE: DIO10 is HIGH(VCC) level

負論理について

TWELITE 無線マイコンにおいては、電源投入のリセット時のポート状態は High (Vcc) レベルになるため、TWELITE NET では原則として High(Vcc) レベルを 0, Lo(GND) レベルを 1 としています。

起動時の状態

電源投入時には全てのポートは以下の状態で初期化されます。

  • 入力

  • プルアップ有り

入力

#define PORT_DI1 11 // DIO11
vPortAsInput(PORT_DI1);
bool_t bPortStat;
bPortStat = bPortRead(PORT_DI1);

出力

#define PORT_DO1 18 // DIO18
vPortSet_TrueAsLo(PORT_DO1, TRUE); // TRUE: set Lo
vPortAsOutput(PORT_DO1);

出力設定を行う前に、ポートの出力設定値を設定しておくことを推奨します。外部からポートの電圧を観察したとき、例えば一瞬GNDに落ちてVccレベルに戻るといった挙動が発生する場合があるためです。

プルアップ

#define PORT_DI1 11 // DIO11

vPortDisablePullup(PORT_DI1);
vPortAsInput(PORT_DI1);

プルアップを停止することで、以下の場合に省電力化となります。

  • 入力ポートで外部がLoレベル

  • 出力ポートで Lo レベルを設定する

ただし、プルアップを停止したポートでは、以下のような利用に注意が必要です。

  • 入力ポートに何も接続されていない(または相当の状態)

    • 余分な電流消費が発生する場合があります

  • 設定が不要なポートのプルアップ停止

    • 余分な電流消費が発生する場合があります

  • 入力ポートを割り込み起床ピンとた場合

    • ボタン等を接続する場合は、外部のプルアップが必須です。

前へadc.c次へTickTimer

最終更新 2 年前

ポートを入力に変更するには () を呼びます。

ポートの状態を読み出すには、() を呼びます。

ポートを出力に変更するには (c) を呼びます。またポートの値を設定するには、(), (), () を呼びます。

() を呼び出すことで、プルアップを停止することができます。

vPortAsInput
bPortRead
vPortAsOutput
vPortSetLo
vPortSetHi
vPortSet_TrueAsLo
vPortDisablePullup