S-35710

S-35710的概述以及S-35710用OSS-ECAL的提供情况。S-35710是ABLIC公司生产的唤醒定时器IC(1秒 至 194天)。
MCU interface : I2C、GPIO

注意: 本资源的原始语言为英语。 翻译仅为方便起见提供概要,可能使用了机器翻译,我们对翻译的准确性和合理性不作任何保证。 此外,在进行实际设计等操作前,请务必参考最新版本的Datasheet。

S-35710

概述

唤醒定时器IC通过定期地唤醒系统,可使系统进行间歇工作。
S-35710系列对定时器值和写入内部寄存器的值进行比较,当值一致时则输出唤醒信号 (中断信号)。
S-35710系列的定时器为24位的二进制递增计数器。
因用户可通过2线串行接口来自由地设置内部寄存器的数据值。故可自由地设置发生唤醒信号 (中断信号) 为止的时间。

特点

  • 唤醒功能 (报警中断功能): 1秒 ~ 194日 (约半年) 为止可按1秒为单位来进行设置
  • 低消耗电流: 0.2μA (典型值) (水晶振子 : CL = 6.0 pF、VDD = 3.0 V、Ta = +25°C)
  • 宽工作电压范围: 1.8 V ~ 5.5 V
  • 2线 (I2C-bus) 方式的CPU接口
  • 内置32.768 kHz晶振电路
  • 工作温度范围: Ta = −40°C ~ +85°C
  • 无铅 (Sn 100%)、无卤素

应用

  • IoT通信设备
  • 监控设备
  • 安检设备
  • 电池驱动系统
  • 能量收集系统

OSS-ECAL规格

API 函数

OSS-ECAL API 函数基本上被假定为周期性Thread (TASK) 的函数调用。

etSTS oS35710_CLEAR( void )

oS35710_CLEAR 函数是一个 API 函数,它将 /RST 引脚设置为低电平,并清零 Time register 和 Wake-up time register。

  1. 将/RST端子设置为低电平。
  2. 等待438ms(等待期间返回值为eSTS_EXE)

备注:
438ms的经过时间是从调用本API函数的线程周期中计算得出的,因此请将线程周期设置为THREAD_OSS_ECAL_PERIOD[ms]。
/RST引脚将保持低电平。若需进行唤醒时间计数增加,请执行oS35710函数的命令eCMD_COUNTUP或oS35710_COUNTUP函数。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE正在执行中
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
etSTS oS35710_COUNTUP( void )

oS35710_COUNTUP 函数是一个 API 函数,用于将 /RST 引脚设置为高电平,并递增 Time register。

  1. 将/RST端子设置为高电平。
  2. 等待438ms(等待期间返回值为eSTS_EXE)

备注:
438ms的经过时间是从调用本API函数的线程周期中计算得出的,因此请将线程周期设置为THREAD_OSS_ECAL_PERIOD[ms]。
/RST引脚将保持高电平。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE正在执行中
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
etSTS oS35710_WRITE_WUR( uint32 wut )

oS35710_WRITE_WUR 函数是一个 API 函数,用于将 wut 的值(24 位)写入 Wake-up time register。

  1. 将wut的值(24位)写入 Wake-up time register。

备注:
请在轻量模式下(/RST端子为高电平)进行操作。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
参数 INuint32 wut唤醒时间 [s]24bit
etSTS oS35710_READ_WUR( stS35710_O* rlt )

oS35710_READ_WUR 函数是一个 API 函数,用于读取 Wake-up time register(24 位)的值,并将其保存到 rlt.wakeup_reg 中。

  1. 读取 Wake-up time register(24位)的值,并将其保存到rlt.wakeup_reg中。

备注:
请在轻量模式下(/RST端子为高电平)进行操作。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
参数 OUTstS35710_O* rlt来自S-35710的接收数据
uint32 timer_regTime register 值[s](未更新)
uint32 wakeup_regWake-up time register 值[s]
etSTS oS35710_READ_TR( stS35710M_O* rlt )

oS35710_READ_TR函数是一个API函数,用于读取 Time register(24位)的值,并将其保存到rlt.timer_reg中。

  1. 读取 Time register(24位)的值,并将其保存到rlt.timer_reg中。

备注:

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
参数 OUTstS35710_O* rlt来自S-35710的接收数据
uint32 timer_regTime register 值[s]
uint32 wakeup_regWake-up time register 值[s](未更新)
etSTS oS35710_DIAG_WUR( uint32 wut )

oS35710_DIAG_WUR 函数是用于诊断 Wake-up time register 写入操作的 API 函数。

  1. 将/RST端子设置为高电平。
  2. 等待438ms(等待期间返回值为eSTS_EXE)
  3. 将wut的值(24位)写入 Wake-up time register。
  4. 读取 Wake-up time register(24位)的值。
  5. 将wut与 Wake-up time register 的值进行比较,并将比较结果作为返回值返回。
    True … eSTS_FIN
    False … eSTS_ERR_DIAG

备注:
438ms的经过时间是从调用本API函数的线程周期中计算得出的,因此请将线程周期设置为THREAD_OSS_ECAL_PERIOD[ms]。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE正在执行中
eSTS_ERR_DIAGWake-up time register 的写入诊断失败
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
参数 INuint32 wut唤醒时间 [s]24bit
etSTS oS35710_DIAG_TR( void )

oS35710_DIAG_TR 函数是一个用于诊断 Time register 计数器递增的 API 函数。

  1. 将/RST端子设置为高电平。
  2. S35710_DIAG_TIME[s] 等待指定时间(等待期间返回值为 eSTS_EXE)
  3. 读取 Time register(24位)的值
  4. 将S35710_DIAG_TIME[s]与 Time register 值的比较结果作为返回值返回。
    True … eSTS_FIN
    False … eSTS_ERR_DIAG

备注:
S35710_DIAG_TIME[s]的值请设置为1或以上。
S35710_DIAG_TIME[s]的经过时间是从调用本API函数的线程周期中计算的,因此请将线程周期设置为THREAD_OSS_ECAL_PERIOD[ms]。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE正在执行中
eSTS_ERR_DIAGTime register 的计数器上计数诊断失败。
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
etSTS oS35710_DIAG_CLEAR( uint32 wut )

oS35710_DIAG_CLEAR 函数是一个用于诊断 Time register 和 Wake-up time register 是否被清零的 API 函数。

  1. 将/RST端子设置为高电平
  2. S35710_DIAG_TIME[s] 等待指定时间(等待期间返回值为 eSTS_EXE)
  3. 将wut的值(24位)写入 Wake-up time register
  4. 将/RST端子设置为低电平
  5. 等待438ms(等待期间返回值为eSTS_EXE)
  6. 读取 Time register(24位)的值
  7. 将/RST端子设置为高电平
  8. S35710_DIAG_TIME[s] 等待指定时间(等待期间返回值为 eSTS_EXE)
  9. 读取 Wake-up time register(24位)的值
  10. 将 Time register 值和 Wake-up time register 值的零检查结果作为返回值返回
    True … eSTS_FIN
    False … eSTS_ERR_DIAG

备注:
S35710_DIAG_TIME[s] 及 438ms 的经过时间是根据调用本 API 函数的线程周期计算的,因此请将线程周期设置为 THREAD_OSS_ECAL_PERIOD[ms]。

返回值etSTSOSS-ECAL status code
eSTS_FIN成功完成
eSTS_EXE正在执行中
eSTS_ERR_DIAGTime register 的零清诊断失败
Wake-up time register 的零清诊断失败
eSTS_ERR_I2C_OBJECTI2C 对象选择错误
eSTS_ERR_OTHERS_RUN其他组件正在执行程序
eSTS_ERR_HAL_OTHERS_RUN其他应用程序正在运行 HAL
eSTS_ERR_HAL_I2CHAL I2C 错误
参数 INuint32 wut唤醒时间 [s]24bit

注意事项

S-3571的INT端子输出需另行处理。

HAL 支持列表

OSS-ECAL 的 HAL 支持如下。 请注意,即使使用相同的 HAL,不同的版本、MCU 和开发环境也可能无法协同工作。 该列表正在按顺序扩展。

ManufacturerSDK/IDE ToolHAL NameVerHALNAMESupport
ArduinoArduino IDEArduino1.8.6ARDUINOX
ArmKeil MDK v6Mbed OS6.17.0MBEDX
DebianGNU/Linux10.3LinuxX
InfineonModusToolboxmtb-hal-cat12.4.3ModusToolboxX
NXPMCUXpresso SDKSDK_2.x_EVKB-IMXRT10502.16iMXRT1051B1052B
RenesasSynergy Software PackageHAL2.6.0SSPX
STMicroelectronicsSTM32CubeSTM32CubeF4V1.28.1STM32F4X
开发环境

OSS-ECAL 开发过程中的 MCU 和开发环境如下。

HALNAMEManufacturerBoardMCUIDE
ARDUINOArduino1.Mega 2560 Rev3
2.Arduino Pro Mini 3.3V
ATmega2560
ATmega328P
Arduino IDE 2.3.3
MBEDSTMicroelectronicsSTM32 Nucleo-64 boardsSTM32F401RETxArm Keil Studio Cloud
LinuxBeagleBoardBeagleBone BlackTI AM335x
ModusToolboxInfineonCY8CPROTO-063-BLE PSoC 6 BLE Prototyping KitCYBLE-416045-02ModusToolbox
iMXRT1051B1052BNXPIMXRT1050-EVKBi.MX RT1050MCUXpresso IDE
SSPRenesasS7G2 SKR7FS7G27H3A01CFCe² studio for Renesas Synergy
STM32F4STMicroelectronicsSTM32 Nucleo-64 boardsSTM32F401RETxSTM32CubeIDE

文件结构

Folder*Filesummary
S35710_HALNAME_VERSION/samplesample.c (.cpp)Sample Application Program
sample.hSample Application Header
S35710_HALNAME_VERSIONoS35710.c (.cpp)OSS-ECAL Program for S-35710
oS35710.hOSS-ECAL Header for S-35710
S35710_ARDUINO.inoSample application programs for Arduino
oss_ecal.hOSS-ECAL Common Header
user_setting.c (.cpp)Const and Table of User setting
user_setting.hHeader of User setting
oHAL_i2c_stm32f4.cHAL Program for STM32Cube FW_F4
oHAL_i2c_stm32f4.hHAL Header for STM32Cube FW_F4
readme.mdReadme
OSS-ECAL Terms of Use.txtOSS-ECAL Terms of Use

* 有关 HALNAME,请参阅 HAL 支持。

OSS-ECAL 下载

请从 OSS-ECAL 英文网站下载 OSS-ECAL。下载时,请先登录 OSS-ECAL 英文网站,然后再进行操作。

内置方法

如何将 OSS-ECAL 纳入用户程序

如何在用户程序中整合多个 OSS-ECAL(相同的 MCU 功能)

如何在用户程序中整合多个 OSS-ECAL(不同 MCU 功能)

如何将多个相同的电子元件整合到一个用户程序中

如何通过更换电子元件减少对用户程序的影响

注意

OSS-ECAL 示例版本不适用于线程(任务)或不同优先级的中断。 请不要像下面的示例那样使用它。

例如 如果每个传感器被分配到相同的 ADC 组,而 OSS-ECAL API 在具有不同优先级的进程中执行,则可能无法获得正确的值。

ADC Gr0 Ch0 Temperature sensor AD22100A 每隔 100 毫秒采集一次温度(低优先级)
ADC Gr0 Ch1 Pressure sensor   MPX5999D 事件中断时采集压力(高优先级)

OSS-ECAL Chinese
error: 内容受保护 !