HS300xシリーズ(HS3001 and HS3003)は、Renesas Electronics製の温度および湿度センサIC(-40~+125℃、0.0~100.0%RH)です。HS300xシリーズのOSS-ECAL(電子部品抽象化レイヤのオープンソースソフトウェア:Open Source Software for Electronic Components Abstraction Layer)を提供致します。
MCUインタフェース:I2C
ご注意:このリソースの元の言語は英語です。 翻訳は概要を便宜的に提供するもので、機械翻訳を使用していることがあり、私たちは翻訳の正確性および妥当性につきましては一切保証いたしません。 また、実際の設計などの前には、必ず最新版Datasheetをご参照くださいますようお願いいたします。
HS300xシリーズ
概要
HS300x(HS3001およびHS3003)シリーズは、高精度で完全に校正された相対湿度・温度センサーです。このMEMSセンサーは独自のセンサーレベル保護機能を備えており、高い信頼性と長期安定性を保証します。
校正および温度補正ロジックを内蔵し、標準I2C出力を介して完全に補正されたRHおよび温度値を提供。出力データのユーザー校正は不要です。
HS300xシリーズは、高精度、高速測定応答時間、長期安定性と小型パッケージの組み合わせにより、ポータブル機器から過酷な環境向けに設計された製品まで、幅広いアプリケーションに最適です。
HS300xシリーズ・デジタル・センサーは 相対湿度と温度レベルを測定します。測定データは内部で補正され 測定データは内部で補正され ユーザーによる校正は不要です。校正は不要です。
特徴
- 湿度範囲0~100%RH
- 湿度精度:±1.5% RH、標準(HS3001、10~90% RH、25°C)
- 14ビット分解能:0.01% RH typical
- 独立したプログラマブル分解能設定:8、10、12、14ビット
- 高速RH応答時間:1秒時定数(typical)(1m/秒の気流時)、4秒時定数(typical)(静止空気中)
- 温度センサー精度:±0.2℃(代表値)(HS3001、-10~+80°C)
- 低消費電流:平均1.0µA(8ビット分解能、1.8V電源)、平均24.4µA(14ビット分解能、3.3V電源)、1秒間に1回のRHおよび温度測定
- 経年変化に対する優れた安定性
- 過酷な環境条件や機械的衝撃に対する高い堅牢性
- 非常に低い消費電力
用途
- 気候制御システム
- 家電製品
- 気象観測所
- 産業オートメーション
- 医療機器
- 車室内空調
OSS-ECAL仕様
API関数
etSTS oHS300X( etCMD cmd, stHS300X_O* rlt )
戻り値
引数 IN
引数 OUT
etSTS
etCMD cmd
stHS300X_O* rlt
OSS-ECALステータスコード
OSS-ECALコマンドコード
HS300xからの受信データ
etCMD
eCMD_READ_TEMP_HUMI
機能 :
Sleep ModeからMeasurement Modeへ遷移し、Temperature RegisterとHumidity Registerの値を読み込んで温度と湿度に特性変換して、その温度と湿度をrlt.temperatureとrlt.humidityに保存するコマンド
処理 :
1. Measurement Requests (0x88)をSlave addressに書き込む
2. 計測時間iHS300X_CNV_TIME_TEMP_HUMI[ms]経過するまで待機する(待機中は戻り値eSTS_EXE)
3. Temperature Registerの値とHumidity Registerの値を読み込む
4. Temperature Registerの読み込んだ値を温度に変換する
温度=(読み込んだ値/ゲイン係数)+温度オフセット値 (Min to Max)
5. Humidity Registerの読み込んだ値を湿度に変換する
湿度=読み込んだ値/ゲイン係数 (Min to Max)
6. rlt.temperatureに温度を保存する
7. rlt.humidityに湿度を保存する
コマンドAPI関数:
etSTS oHS300X_READ_TEMP_HUMI( stHS300X_O* rlt )
戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_DATA_STALE
eSTS_ERR_MIN
eSTS_ERR_MAX
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
iHS300X_CNV_TIME_TEMP_HUMI[ms]経過計測は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。
eCMD_READ_HUMI
機能 :
Sleep ModeからMeasurement Modeへ遷移し、Humidity Registerの値を読み込んで湿度に特性変換して、その湿度をrlt.humidityに保存するコマンド
処理 :
1. Measurement Requests (0x88)をSlave addressに書き込む
2. 計測時間iHS300X_CNV_TIME_HUMI[ms]経過するまで待機する(待機中は戻り値eSTS_EXE)
3. Humidity Registerの値を読み込む
4. Humidity Registerの読み込んだ値を湿度に変換する
湿度=読み込んだ値/ゲイン係数 (Min to Max)
5. rlt.humidityに湿度を保存する
コマンドAPI関数:
etSTS oHS300X_READ_HUMI( stHS300X_O* rlt )
戻り値:
eSTS_FIN
eSTS_EXE
eSTS_ERR_DATA_STALE
eSTS_ERR_MIN
eSTS_ERR_MAX
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
iHS300X_CNV_TIME_HUMI[ms]経過計測は、本API関数をコールするThread周期から計算するので、THREAD_OSS_ECAL_PERIOD[ms]にThread周期を設定してください。
eCMD_ENTER_PROG_MOD
機能 :
Sleep ModeからProgramming Modeへ遷移するコマンド
処理 :
1. Programming modeコマンド(0xA0, 0x00, 0x00) を書き込む
2. 関数内で120μs待機する
コマンドAPI関数:
etSTS oHS300X_ENTER_PROG_MOD( void )
戻り値:
eSTS_FIN
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
本API関数は、HS300xの電源投入から10ms以内に行ってください。
eCMD_WRITE_CFG_HUMI
機能 :
Humidity Sensor 分解能を設定 (8bit, 10bit, 12bit, 14bit)するコマンド
処理:
1. Humidity Sensor 分解能設定コマンド(0xA0, 0x06, 0x00 )を書き込む
2. 関数内で120μs待機する
3. Humidity Registerの値を読み込む
4. Humidity Registerに分解能設定値 (RESOL_HUMI) を書き込む
コマンドAPI関数:
etSTS oHS300X_WRITE_CFG_HUMI( void )
戻り値:
eSTS_FIN
eSTS_ERR_MODE
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
本API関数は、Programming Mode中に行ってください。
本API関数終了後、Registerに反映されるまでは14ms必要です。
eCMD_WRITE_CFG_TEMP
機能 :
Temperature Sensor 分解能を設定 (8bit, 10bit, 12bit, 14bit)するコマンド
処理:
1. Temperature Sensor 分解能設定コマンド (0xA0, 0x11, 0x00 )を書き込む
2. 関数内で120μs待機する
3. Temperature Registerの値を読み込む
4. Temperature Registerに分解能設定値 (RESOL_TEMP) を書き込む
コマンドAPI関数:
etSTS oHS300X_WRITE_CFG_TEMP( void )
戻り値:
eSTS_FIN
eSTS_ERR_MODE
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
本API関数は、Programming Mode中に行ってください。
本API関数終了後、Registerに反映されるまでは14ms必要です。
eCMD_READ_ID
機能 :
Sensor IDを読込み rlt.idに保存するコマンド
処理:
1. Sensor ID-Upper コマンド (0x80, 0x1E, 0x00)を書き込む
2. 関数内で120μs待機する
3. Sensor ID-Upperの値を読み込む
4. Sensor ID-Lower コマンド (0x80, 0x1F, 0x00)を書き込む
5. 関数内で120μs待機する
6. Sensor ID-Lowerの値を読み込む
7. rlt.idにSensor IDを保存する
コマンドAPI関数:
etSTS oHS300X_READ_ID( stHS300X_O* rlt )
戻り値:
eSTS_FIN
eSTS_ERR_MODE
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
本API関数は、Programming Mode中に行ってください。
eCMD_EXIT_PROG_MOD
機能 :
Programming ModeからSleep Modeへ遷移するコマンド
処理:
1. Sleep modeコマンド (0x80, 0x00, 0x00) を書き込む
2. 関数内で120μs待機する
コマンドAPI関数:
etSTS oHS300X_EXIT_PROG_MOD( void )
戻り値:
eSTS_FIN
eSTS_ERR_HAL_I2C
eSTS_ERR_COMMAND_CODE
eSTS_ERR_OTHERS_RUN
eSTS_ERR_I2C_OBJECT
備考:
stHS300X_O
float32 temperature
float32 humidity
uint32 id
HS300x Register Temperature to float TEMPERATURE[degrees Celsius]
HS300x Register Humidity to float HUMIDITY[%RH]
HS300x Register Sensor ID
File構成
フォルダ* | ファイル | 概要 |
---|---|---|
HS300X_HALNAME/sample | sample.c (.cpp) | サンプル・アプリケーション・プログラム |
sample.h | サンプル・アプリケーション・ヘッダ | |
HS300X_HALNAME | oHS300X.c (.cpp) | HS300X用OSS-ECALプログラム |
oHS300X.h | HS300X用OSS-ECALヘッダ | |
oss_ecal.h | OSS-ECAL 共通ヘッダ (Ver 01.01.00以降) | |
user_setting.c (.cpp) | ユーザ設定定数・テーブル | |
user_setting.h | ユーザ設定ヘッダ | |
readme.md | Readme | |
OSS-ECAL Terms of Use.txt | OSS-ECAL利用条件 |
* HALNAMEはHAL対応表を参照してください。
HAL対応表
MCU/Board メーカ | HAL | MCU* | 開発環境* | HALNAME |
---|---|---|---|---|
Arduino | Arduino 1.8.6 | ATmega2560 ATmega328P | Mega 2560 Rev3 Arduino Pro Mini 3.3V | ARDUINO |
ARM | Mbed 6.17.0 | STM32F401RETx | STM32 Nucleo-64 boards | MBED |
Infineon | ModusToolbox HAL Cat1 2.4.3 | CYBLE-416045-02 | CY8CPROTO-063-BLE PSoC 6 BLE Prototyping Kit | ModusToolbox |
NXP | MCUXpresso SDK iMXRT1051B_1052B ksdk2_0 | CYBLE-416045-02 | IMXRT1050-EVKB | iMXRT1051B1052B |
Renesas | SSP 2.4.0 | R7FS7G27H3A01CFC | S7G2 SK | SSP |
* 開発時のMCUおよび開発環境。
同じHALであってもMCUや開発環境が異なると動作が合わない場合があります。
OSS-ECAL ダウンロード
ログインしてからダウンロードを行ってください。新規のユーザ登録は、こちらから行ってください。
HAL | ダウンロード OSS-ECAL Ver |
---|---|
Arduino 1.8.6 | |
Mbed 6.17.0 | |
ModusToolbox HAL Cat1 2.4.3 | |
MCUXpresso SDK iMXRT1051B_1052B ksdk2_0 | |
SSP 2.4.0 |
Microsoft Edgeで「ABC.zipを安全にダウンロードすることはできません」と警告が出た場合
Fileダウンロードできない場合、お問合せから型番およびHALの種類をご連絡ください。メール添付でお送りいたします。
組込み方法
下記を参考にユーザプログラムにAPI関数を組み込んでください。
user_setting.hで温度および湿度の分解能 (8bit, 10bit, 12bit, 14bit)の設定する。
// Resolution setting : 8U( 8 bit ), 10U( 10 bit ), 12U( 12 bit ), 14U( 14 bit )
#define RESOL_HUMI 8U // 8 bit humidity measurement
#define RESOL_TEMP 12U // 12 bit temperature measurement
ユーザプログラムに複数のOSS-ECAL(同じMCU機能の電子部品)を組み込む方法