diff options
Diffstat (limited to 'thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval_i2c_tsensor.h')
-rw-r--r-- | thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval_i2c_tsensor.h | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval_i2c_tsensor.h b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval_i2c_tsensor.h new file mode 100644 index 0000000..af5ff97 --- /dev/null +++ b/thirdparty/STM32_USB-FS-Device_Lib_V4.0.0/Utilities/STM32_EVAL/STM32303C_EVAL/stm32303c_eval_i2c_tsensor.h @@ -0,0 +1,177 @@ +/** + ****************************************************************************** + * @file stm32303c_eval_i2c_tsensor.h + * @author MCD Application Team + * @version V1.0.1 + * @date 23-October-2012 + * @brief This file contains all the functions prototypes for the + * stm32303c_eval_i2c_tsensor.c firmware driver. + ****************************************************************************** + * @attention + * + * <h2><center>© COPYRIGHT 2012 STMicroelectronics</center></h2> + * + * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.st.com/software_license_agreement_liberty_v2 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32303C_EVAL_I2C_TSENSOR_H +#define __STM32303C_EVAL_I2C_TSENSOR_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32303c_eval.h" + +/** @addtogroup Utilities + * @{ + */ + +/** @addtogroup STM32303C_EVAL + * @{ + */ + +/** @addtogroup Common + * @{ + */ + +/** @addtogroup STM32303C_EVAL_I2C_TSENSOR + * @{ + */ + +/** @defgroup STM32303C_EVAL_I2C_TSENSOR_Exported_Types + * @{ + */ + +/** + * @brief TSENSOR Status + */ +typedef enum +{ + TS751_OK = 0, + TS751_FAIL +}TS751_Status_TypDef; + +/** + * @} + */ + +/** @defgroup STM32303C_EVAL_I2C_TSENSOR_Exported_Constants + * @{ + */ + +/* Uncomment the following line to use Timeout_User_Callback TS751_TimeoutUserCallback(). + If This Callback is enabled, it should be implemented by user in main function . + TS751_TimeoutUserCallback() function is called whenever a timeout condition + occure during communication (waiting on an event that doesn't occur, bus + errors, busy devices ...). */ +/*#define USE_TIMEOUT_USER_CALLBACK*/ + +/* Maximum Timeout values for flags and events waiting loops. These timeouts are + not based on accurate values, they just guarantee that the application will + not remain stuck if the I2C communication is corrupted. + You may modify these timeout values depending on CPU frequency and application + conditions (interrupts routines ...). */ +#define TS751_FLAG_TIMEOUT ((uint32_t)0x1000) +#define TS751_LONG_TIMEOUT ((uint32_t)(10 * TS751_FLAG_TIMEOUT)) + + +/** + * @brief Block Size + */ +#define TS751_REG_TEMPH 0x00 /*!< Temperature Register of TS751 */ +#define TS751_REG_TEMPL 0x02 /*!< Temperature Register of TS751 */ +#define TS751_REG_CONF 0x03 /*!< Configuration Register of TS751 */ +#define TS751_REG_THYS 0x21 /*!< Temperature Register of TS751 */ +#define TS751_REG_TOS 0x20 /*!< Over-temp Shutdown threshold Register of TS751 */ +#define I2C_TIMEOUT ((uint32_t)0x3FFFF) /*!< I2C Time out */ +#define TS751_ADDR 0x90 /*!< TS751 address */ + + +/* I2C TIMING Register define when I2C clock source is SYSCLK */ +/* I2C TIMING is calculated in case of the I2C Clock source is the SYSCLK = 72 MHz */ +/* set TIMING to 0xC062121F to reach 100 KHz speed (Rise time = 640ns, Fall time = 20ns) */ + +#define TS751_I2C_TIMING 0xC062121F + + +/** + * @} + */ + +/** @defgroup STM32303C_EVAL_I2C_TSENSOR_Exported_Macros + * @{ + */ +/** + * @} + */ + +/** @defgroup STM32303C_EVAL_I2C_TSENSOR_Exported_Functions + * @{ + */ +void TS751_DeInit(void); +void TS751_Init(void); +ErrorStatus TS751_GetStatus(void); +uint8_t TS751_AlerteResponseAddressRead(void); +uint16_t TS751_ReadTemp(void); +uint8_t TS751_ReadReg(uint8_t RegName); +uint8_t TS751_WriteReg(uint8_t RegName, uint16_t RegValue); +uint8_t TS751_ReadConfReg(void); +uint8_t TS751_WriteConfReg(uint8_t RegValue); +uint8_t TS751_ShutDown(FunctionalState NewState); + +/** + * @brief Timeout user callback function. This function is called when a timeout + * condition occurs during communication with TS751. Only protoype + * of this function is decalred in TS751 driver. Its implementation + * may be done into user application. This function may typically stop + * current operations and reset the I2C peripheral and TS751. + * To enable this function use uncomment the define USE_TIMEOUT_USER_CALLBACK + * at the top of this file. + */ +#ifdef USE_TIMEOUT_USER_CALLBACK + uint8_t TS751_TIMEOUT_UserCallback(void); +#else + #define TS751_TIMEOUT_UserCallback() TS751_FAIL +#endif /* USE_TIMEOUT_USER_CALLBACK */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32303C_EVAL_I2C_TSENSOR_H */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |