diff libs/STM32F10x_StdPeriph_Lib_V3.5.0/Utilities/STM32_EVAL/STM32L152_EVAL/stm32l152_eval_i2c_ee.h @ 0:c59513fd84fb

Initial commit of STM32 test code.
author Daniel O'Connor <darius@dons.net.au>
date Mon, 03 Oct 2011 21:19:15 +1030
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libs/STM32F10x_StdPeriph_Lib_V3.5.0/Utilities/STM32_EVAL/STM32L152_EVAL/stm32l152_eval_i2c_ee.h	Mon Oct 03 21:19:15 2011 +1030
@@ -0,0 +1,181 @@
+/**
+  ******************************************************************************
+  * @file    stm32l152_eval_i2c_ee.h
+  * @author  MCD Application Team
+  * @version V4.5.0
+  * @date    07-March-2011
+  * @brief   This file contains all the functions prototypes for the stm32l152_eval_i2c_ee
+  *          firmware driver.
+  ******************************************************************************
+  * @attention
+  *
+  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
+  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
+  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
+  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
+  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
+  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+  *
+  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
+  ******************************************************************************  
+  */ 
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32L152_EVAL_I2C_EE_H
+#define __STM32L152_EVAL_I2C_EE_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32_eval.h"
+
+/** @addtogroup Utilities
+  * @{
+  */
+  
+/** @addtogroup STM32_EVAL
+  * @{
+  */ 
+
+/** @addtogroup STM32L152_EVAL
+  * @{
+  */
+  
+/** @addtogroup STM32L152_EVAL_I2C_EE
+  * @{
+  */  
+
+/** @defgroup STM32L152_EVAL_I2C_EE_Exported_Types
+  * @{
+  */ 
+
+/**
+  * @}
+  */
+  
+/** @defgroup STM32L152_EVAL_I2C_EE_Exported_Constants
+  * @{
+  */
+
+/* Uncomment the following line to use the default sEE_TIMEOUT_UserCallback() 
+   function implemented in stm32_evel_i2c_ee.c file.
+   sEE_TIMEOUT_UserCallback() function is called whenever a timeout condition 
+   occure during communication (waiting on an event that doesn't occur, bus 
+   errors, busy devices ...). */   
+/* #define USE_DEFAULT_TIMEOUT_CALLBACK */
+   
+#if !defined (sEE_M24C08) && !defined (sEE_M24C64_32)
+/* Use the defines below the choose the EEPROM type */
+/* #define sEE_M24C08*/  /* Support the device: M24C08. */
+/* note: Could support: M24C01, M24C02, M24C04 and M24C16 if the blocks and 
+   HW address are correctly defined*/
+#define sEE_M24C64_32  /* Support the devices: M24C32 and M24C64 */
+#endif
+
+#ifdef sEE_M24C64_32
+/* For M24C32 and M24C64 devices, E0,E1 and E2 pins are all used for device 
+  address selection (ne need for additional address lines). According to the 
+  Harware connection on the board (on STM3210C-EVAL board E0 = E1 = E2 = 0) */
+
+ #define sEE_HW_ADDRESS         0xA0   /* E0 = E1 = E2 = 0 */ 
+
+#elif defined (sEE_M24C08)
+/* The M24C08W contains 4 blocks (128byte each) with the adresses below: E2 = 0 
+   EEPROM Addresses defines */
+ #define sEE_Block0_ADDRESS     0xA0   /* E2 = 0 */ 
+ /*#define sEE_Block1_ADDRESS     0xA2*/ /* E2 = 0 */  
+ /*#define sEE_Block2_ADDRESS     0xA4*/ /* E2 = 0 */
+ /*#define sEE_Block3_ADDRESS     0xA6*/ /* E2 = 0 */
+
+#endif /* sEE_M24C64_32 */
+
+#define I2C_SPEED               200000
+#define I2C_SLAVE_ADDRESS7      0xA0
+
+#if defined (sEE_M24C08)
+ #define sEE_PAGESIZE           16
+#elif defined (sEE_M24C64_32)
+ #define sEE_PAGESIZE           32
+#endif
+   
+/* 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 sEE_FLAG_TIMEOUT         ((uint32_t)0x1000)
+#define sEE_LONG_TIMEOUT         ((uint32_t)(10 * sEE_FLAG_TIMEOUT))
+
+/* Maximum number of trials for sEE_WaitEepromStandbyState() function */
+#define sEE_MAX_TRIALS_NUMBER     300
+   
+/* Defintions for the state of the DMA transfer */   
+#define sEE_STATE_READY           0
+#define sEE_STATE_BUSY            1
+#define sEE_STATE_ERROR           2
+   
+#define sEE_OK                    0
+#define sEE_FAIL                  1   
+
+/**
+  * @}
+  */ 
+  
+/** @defgroup STM32L152_EVAL_I2C_EE_Exported_Macros
+  * @{
+  */    
+/**
+  * @}
+  */ 
+
+/** @defgroup STM32L152_EVAL_I2C_EE_Exported_Functions
+  * @{
+  */ 
+void     sEE_DeInit(void);
+void     sEE_Init(void);
+uint32_t sEE_ReadBuffer(uint8_t* pBuffer, uint16_t ReadAddr, uint16_t* NumByteToRead);
+uint32_t sEE_WritePage(uint8_t* pBuffer, uint16_t WriteAddr, uint8_t* NumByteToWrite);
+void     sEE_WriteBuffer(uint8_t* pBuffer, uint16_t WriteAddr, uint16_t NumByteToWrite);
+uint32_t sEE_WaitEepromStandbyState(void);
+
+/* USER Callbacks: These are functions for which prototypes only are declared in
+   EEPROM driver and that should be implemented into user applicaiton. */  
+/* sEE_TIMEOUT_UserCallback() function is called whenever a timeout condition 
+   occure during communication (waiting on an event that doesn't occur, bus 
+   errors, busy devices ...).
+   You can use the default timeout callback implementation by uncommenting the 
+   define USE_DEFAULT_TIMEOUT_CALLBACK in stm32_evel_i2c_ee.h file.
+   Typically the user implementation of this callback should reset I2C peripheral
+   and re-initialize communication or in worst case reset all the application. */
+uint32_t sEE_TIMEOUT_UserCallback(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32L152_EVAL_I2C_EE_H */
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */ 
+
+/**
+  * @}
+  */
+
+/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
+
+