S-35710

S-35710は、ABLIC製のウェイクアップ・タイマIC(1s~194日)です。S-35710のOSS-ECAL(電子部品抽象化レイヤのオープンソースソフトウェア:Open Source Software for Electronic Components Abstraction Layer)を提供致します。
MCUインタフェース:I2C、GPIO

ご注意:実際の設計などの前には、必ず最新版Datasheetをご参照くださいますようお願いいたします。

S-35710

概要

ウェイクアップタイマICは、定期的にシステムをウェイクアップすることでシステムの間欠動作を可能とします。S-35710Mは、タイマ値と内部レジスタに書き込みした値を比較し、値が一致したときにウェイクアップ信号 (割り込み信号)を出力します。S-35710Mのタイマは、24ビットのバイナリアップカウンタです。ユーザは、2ワイヤシリアルインタフェースを介し、内部レジスタのデータ値を自由に設定できます。したがって、ウェイクアップ信号 (割り込み信号) 発生までの時間を自由に設定可能です。S-35710Mは水晶振動子を内蔵しているため、ICと水晶振動子のマッチング評価が不要です。また、外付け部品点数を削減することも可能です。

特徴
  • 32.768 kHz水晶振動子内蔵
  • ウェイクアップ機能 (アラーム割り込み機能) : 1秒 ~ 194日 (およそ半年) まで1秒単位で設定可能
  • 低消費電流 : 0.25 μA typ. (VDD = 3.0 V、Ta = +25°C)
  • 広動作電圧範囲 : 1.8 V ~ 5.5 V
  • 2ワイヤ (I2C-bus) によるCPUインタフェース
  • 動作温度範囲 : Ta = −40°C ~ +85°C
  • 鉛フリー (Sn 100%)、ハロゲンフリ
用途
  • IoT通信機器
  • 監視機器
  • セキュリティ機器
  • 電池駆動システム
  • エナジーハーべスティングシステム

OSS-ECAL仕様

API関数

etSTS oS35710( etCMD cmd, uint32 wut, stS35710_O* rlt )

戻り値
引数 IN

引数 OUT

etSTS
etCMD cmd
uint32 wut
stS35710_O* rlt

OSS-ECALステータスコード
OSS-ECALコマンドコード
Wake-upタイム 24bit [s]
S-35710からの受信データ

etCMD
eCMD_CLEAR


機能 :
/RST端子をLowとして、タイムレジスタおよびウェイクアップタイムレジスタをゼロクリアするコマンド

処理 :
1. /RST端子 Low とする
2. 438ms経過するまで待機する(待機中は戻り値eSTS_EXE)

コマンドAPI関数:
etSTS oS35710_CLEAR( void )

戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_GPIO_OBJECT

備考:
438ms経過時間は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。
/RST端子はLowのままとなります。Wake-up時間カウントアップする場合は、
コマンドeCMD_COUNTUPを実行してください。

eCMD_COUNTUP

機能 :
/RST端子をHiとして、タイムレジスタをカウントアップするコマンド

処理 :
1. /RST端子 Hi とする
2. 438ms経過するまで待機する(待機中は戻り値eSTS_EXE)

コマンドAPI関数:
etSTS oS35710_COUNTUP( void )

戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_GPIO_OBJECT


備考:
438ms経過時間は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。
/RST端子はHiのままとなります。

eCMD_WRITE_WUR

機能 :
ウェイクアップタイムレジスタにwutの値(24bit)を書き込むコマンド

処理:
1. ウェイクアップタイムレジスタにwutの値(24bit)を書き込む

コマンドAPI関数:
etSTS oS35710_WRITE_WUR( uint32 wut )

戻り値:
eSTS_FIN
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT


備考:
ライトモード時(/RST端子 Hi)に行ってください。

eCMD_READ_WUR

機能 :
ウェイクアップタイムレジスタ(24bit)の値を読み込み、rlt.wakeup_regに保存するコマンド

処理:
1. ウェイクアップタイムレジスタ(24bit)の値を読み込み、rlt.wakeup_regに保存する

コマンドAPI関数:
etSTS oS35710_READ_WUR( stS35710M_O* rlt )

戻り値:
eSTS_FIN
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT


備考:
ライトモード時(/RST端子 Hi)時に行ってください。

eCMD_READ_TR

機能 :
タイムレジスタ(24bit)の値を読み込み、rlt.timer_regに保存するコマンド

処理:
1. タイムレジスタ(24bit)の値を読み込み、rlt.timer_regに保存する

コマンドAPI関数:
etSTS oS35710_READ_TR( stS35710M_O* rlt )

戻り値:
eSTS_FIN
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT


備考:

eCMD_DIAG_WUR

機能 :
ウェイクアップタイムレジスタの書込み診断するコマンド

処理:
1. /RST端子 Hi とする
2. 438ms経過するまで待機する(待機中は戻り値eSTS_EXE)
3. ウェイクアップタイムレジスタにwutの値(24bit)を書き込む
4. ウェイクアップタイムレジスタ(24bit)の値を読み込む
5. wutとウェイクアップタイムレジスタ値の比較結果を戻り値として返す
True … eSTS_FIN
False … eSTS_ERR_DIAG

コマンドAPI関数:
etSTS oS35710_DIAG_WUR( uint32 wut )

戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_DIAG
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
eSTS_ERR_GPIO_OBJECT


備考:
438ms経過時間は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。。

eCMD_DIAG_TR

機能 :
タイムレジスタのカウントアップを診断するコマンド

処理:
1. /RST端子 Hi とする
2. S35710_DIAG_TIME[s]経過するまで待機する(待機中は戻り値eSTS_EXE)
3. タイムレジスタ(24bit)の値を読み込む
4. S35710_DIAG_TIME[s]とタイムレジスタ値の比較結果を戻り値として返す
True … eSTS_FIN
False … eSTS_ERR_DIAG

コマンドAPI関数:
etSTS oS35710_DIAG_TR( void )

戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_DIAG
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
eSTS_ERR_GPIO_OBJECT


備考:
S35710_DIAG_TIME[s]は、1以上の値を設定してください。
S35710_DIAG_TIME[s]経過時間は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。

eCMD_DIAG_CLEAR

機能 :
タイムレジスタおよびウェイクアップタイムレジスタのゼロクリア診断するコマンド

処理:
1. /RST端子 Hi とする
2. S35710_DIAG_TIME[s]経過するまで待機する(待機中は戻り値eSTS_EXE)
3. ウェイクアップタイムレジスタにwutの値(24bit)を書き込む
4. /RST端子 Low とする
5. 438ms経過するまで待機する(待機中は戻り値eSTS_EXE)
6. タイムレジスタ(24bit)の値を読み込む
7. /RST端子 Hi とする
8. S35710_DIAG_TIME[s]経過するまで待機する(待機中は戻り値eSTS_EXE)
9. ウェイクアップタイムレジスタ(24bit)の値を読み込む
10. タイムレジスタ値とウェイクアップタイムレジスタ値のゼロチェック結果を戻り値として返す
True … eSTS_FIN
False … eSTS_ERR_DIAG

コマンドAPI関数:
etSTS oS35710_DIAG_TR( void )

戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_DIAG
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
eSTS_ERR_GPIO_OBJECT


備考:
S35710_DIAG_TIME[s]および438ms経過時間は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。

stS35710M_O
uint32 timer_reg
uint32 wakeup_reg


Time register value[s]
Wake-up time register value[s]

ご注意:S-3571のINT端子出力は、別途対応してください。

File構成
フォルダ*ファイル概要
S35710_HALNAME/samplesample.c (.cpp)サンプル・アプリケーション・プログラム
sample.hサンプル・アプリケーション・ヘッダ
S35710_HALNAMEoS35710.c (.cpp)S-35710用OSS-ECALプログラム
oS35710.hS-35710用OSS-ECALヘッダ
oss_ecal.hOSS-ECAL 共通ヘッダ (Ver 01.01.00以降)
user_setting.c (.cpp)ユーザ設定定数・テーブル
user_setting.hユーザ設定ヘッダ
oHAL_i2c_stm32f4.cSTM32Cube FW_F4用HALプログラム
oHAL_i2c_stm32f4.hSTM32Cube FW_F4用HALヘッダ
readme.mdReadme
OSS-ECAL Terms of Use.txtOSS-ECAL利用条件

* HALNAMEはHAL対応表を参照してください。

HAL対応表
MCU/Board
メーカ
HALMCU*開発環境*HALNAME
ArduinoArduino 1.8.6ATmega2560
ATmega328P
Mega 2560 Rev3
Arduino Pro Mini 3.3V
ARDUINO
ARMMbed 6.17.0STM32F401RETxSTM32 Nucleo-64 boardsMBED
InfineonModusToolbox HAL Cat1 2.4.3CYBLE-416045-02CY8CPROTO-063-BLE PSoC 6 BLE Prototyping KitModusToolbox
NXPMCUXpresso SDK
iMXRT1051B_1052B
ksdk2_0
CYBLE-416045-02IMXRT1050-EVKBiMXRT1051B1052B
RenesasSSP 2.4.0R7FS7G27H3A01CFCS7G2 SKSSP
STMSTM32Cube FW_F4 V1.27.1STM32F401RETxSTM32 Nucleo-64 boardsSTM32F4
Debian ProjectDebian(Linux) v2022.04TI AM335xBeagleBone Black – Rev CLinux

* 開発時のMCUおよび開発環境。
  同じHALであってもMCUや開発環境が異なると動作が合わない場合があります。

OSS-ECAL ダウンロード

ログインしてからダウンロードを行ってください。新規のユーザ登録は、こちらから行ってください。
本OSS-ECALは、サンプル版なのでユーザ登録せずにダウンロードできますが、OSS-ECAL利用条件は承諾後にダウンロードしてください。

Fileダウンロードできない場合、お問合せから型番およびHALの種類をご連絡ください。メール添付でお送りいたします。

組込み方法

ユーザプログラムにOSS-ECALを組み込む方法

ユーザプログラムに複数のOSS-ECAL(同じMCU機能の電子部品)を組み込む方法

ユーザプログラムに複数のOSS-ECAL(異なるMCU機能の電子部品)を組み込む方法

ユーザプログラムに複数同じ電子部品を組み込む方法

電子部品の入れ替えによるユーザプログラムへの影響低減方法

OSS-ECAL Japanese
error: コンテンツは保護されている