aapje monkey / X_NUCLEO_IDB0XA1

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
Andrea Palmieri
Date:
Fri Mar 18 12:10:20 2016 +0100
Revision:
216:e8fa3129410a
Parent:
132:51056160fa4a
Merge branch 'master' into mbed_classic

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 132:51056160fa4a 1 /**
Wolfgang Betz 132:51056160fa4a 2 ******************************************************************************
Wolfgang Betz 132:51056160fa4a 3 * @file stm32_bluenrg_ble_dma_lp.h
Wolfgang Betz 132:51056160fa4a 4 * @author CL
Wolfgang Betz 132:51056160fa4a 5 * @version V1.0.0
Wolfgang Betz 132:51056160fa4a 6 * @date 04-July-2014
Wolfgang Betz 132:51056160fa4a 7 * @brief
Wolfgang Betz 132:51056160fa4a 8 ******************************************************************************
Wolfgang Betz 132:51056160fa4a 9 * @attention
Wolfgang Betz 132:51056160fa4a 10 *
Wolfgang Betz 132:51056160fa4a 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
Wolfgang Betz 132:51056160fa4a 12 *
Wolfgang Betz 132:51056160fa4a 13 * Redistribution and use in source and binary forms, with or without modification,
Wolfgang Betz 132:51056160fa4a 14 * are permitted provided that the following conditions are met:
Wolfgang Betz 132:51056160fa4a 15 * 1. Redistributions of source code must retain the above copyright notice,
Wolfgang Betz 132:51056160fa4a 16 * this list of conditions and the following disclaimer.
Wolfgang Betz 132:51056160fa4a 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Wolfgang Betz 132:51056160fa4a 18 * this list of conditions and the following disclaimer in the documentation
Wolfgang Betz 132:51056160fa4a 19 * and/or other materials provided with the distribution.
Wolfgang Betz 132:51056160fa4a 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Wolfgang Betz 132:51056160fa4a 21 * may be used to endorse or promote products derived from this software
Wolfgang Betz 132:51056160fa4a 22 * without specific prior written permission.
Wolfgang Betz 132:51056160fa4a 23 *
Wolfgang Betz 132:51056160fa4a 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Wolfgang Betz 132:51056160fa4a 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Wolfgang Betz 132:51056160fa4a 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Wolfgang Betz 132:51056160fa4a 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Wolfgang Betz 132:51056160fa4a 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Wolfgang Betz 132:51056160fa4a 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Wolfgang Betz 132:51056160fa4a 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Wolfgang Betz 132:51056160fa4a 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Wolfgang Betz 132:51056160fa4a 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Wolfgang Betz 132:51056160fa4a 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Wolfgang Betz 132:51056160fa4a 34 *
Wolfgang Betz 132:51056160fa4a 35 ******************************************************************************
Wolfgang Betz 132:51056160fa4a 36 */
Wolfgang Betz 132:51056160fa4a 37
Wolfgang Betz 132:51056160fa4a 38 /* Define to prevent recursive inclusion -------------------------------------*/
Wolfgang Betz 132:51056160fa4a 39 #ifndef __STM32_BLUENRG_BLE_DMA_LP_H
Wolfgang Betz 132:51056160fa4a 40 #define __STM32_BLUENRG_BLE_DMA_LP_H
Wolfgang Betz 132:51056160fa4a 41
Wolfgang Betz 132:51056160fa4a 42 #ifdef __cplusplus
Wolfgang Betz 132:51056160fa4a 43 extern "C" {
Wolfgang Betz 132:51056160fa4a 44 #endif
Wolfgang Betz 132:51056160fa4a 45
Wolfgang Betz 132:51056160fa4a 46 /* Includes ------------------------------------------------------------------*/
Wolfgang Betz 132:51056160fa4a 47 #ifdef USE_STM32F4XX_NUCLEO
Wolfgang Betz 132:51056160fa4a 48 #include "stm32f4xx_hal.h"
Wolfgang Betz 132:51056160fa4a 49 #include "stm32f4xx_nucleo.h"
Wolfgang Betz 132:51056160fa4a 50 #include "stm32f4xx_nucleo_bluenrg_dma_lp.h"
Wolfgang Betz 132:51056160fa4a 51 #include "stm32f4xx_hal_bluenrg_gpio.h"
Wolfgang Betz 132:51056160fa4a 52 #include "stm32f4xx_hal_bluenrg_spi.h"
Wolfgang Betz 132:51056160fa4a 53 #include "stm32f4xx_hal_bluenrg_dma.h"
Wolfgang Betz 132:51056160fa4a 54 #endif /* USE_STM32F4XX_NUCLEO */
Wolfgang Betz 132:51056160fa4a 55
Wolfgang Betz 132:51056160fa4a 56 #ifdef USE_STM32L0XX_NUCLEO
Wolfgang Betz 132:51056160fa4a 57 #include "stm32l0xx_hal.h"
Wolfgang Betz 132:51056160fa4a 58 #include "stm32l0xx_nucleo.h"
Wolfgang Betz 132:51056160fa4a 59 #include "stm32l0xx_nucleo_bluenrg_dma_lp.h"
Wolfgang Betz 132:51056160fa4a 60 #include "stm32l0xx_hal_bluenrg_gpio.h"
Wolfgang Betz 132:51056160fa4a 61 #include "stm32l0xx_hal_bluenrg_spi.h"
Wolfgang Betz 132:51056160fa4a 62 #include "stm32l0xx_hal_bluenrg_dma.h"
Wolfgang Betz 132:51056160fa4a 63 #endif /* USE_STM32L0XX_NUCLEO */
Wolfgang Betz 132:51056160fa4a 64
Wolfgang Betz 132:51056160fa4a 65 #include "stm32xx_lpm.h"
Wolfgang Betz 132:51056160fa4a 66 #include "stm32xx_timerserver.h"
Wolfgang Betz 132:51056160fa4a 67
Wolfgang Betz 132:51056160fa4a 68 /** @addtogroup BSP
Wolfgang Betz 132:51056160fa4a 69 * @{
Wolfgang Betz 132:51056160fa4a 70 */
Wolfgang Betz 132:51056160fa4a 71
Wolfgang Betz 132:51056160fa4a 72 /** @addtogroup X-NUCLEO-IDB04A1
Wolfgang Betz 132:51056160fa4a 73 * @{
Wolfgang Betz 132:51056160fa4a 74 */
Wolfgang Betz 132:51056160fa4a 75
Wolfgang Betz 132:51056160fa4a 76 /** @addtogroup STM32_BLUENRG_BLE_DMA_LP
Wolfgang Betz 132:51056160fa4a 77 * @{
Wolfgang Betz 132:51056160fa4a 78 */
Wolfgang Betz 132:51056160fa4a 79
Wolfgang Betz 132:51056160fa4a 80 /** @defgroup STM32_BLUENRG_BLE_DMA_LP_Exported_Constants
Wolfgang Betz 132:51056160fa4a 81 * @{
Wolfgang Betz 132:51056160fa4a 82 */
Wolfgang Betz 132:51056160fa4a 83
Wolfgang Betz 132:51056160fa4a 84 #define SPI_END_RECEIVE_FIX 1 /**< Need some delay after receiving an event to prevent dummy read */
Wolfgang Betz 132:51056160fa4a 85
Wolfgang Betz 132:51056160fa4a 86 /**
Wolfgang Betz 132:51056160fa4a 87 * All timeout below are given in term of Ticks of the TimerServer.
Wolfgang Betz 132:51056160fa4a 88 * The tick of the timerserver depends on the LPO clock used as input and the
Wolfgang Betz 132:51056160fa4a 89 * prescaler of the wakeup timer.
Wolfgang Betz 132:51056160fa4a 90 * In order to get the most efficient implementation, the wakeuptimer prescaler should divide
Wolfgang Betz 132:51056160fa4a 91 * the input clock by 2
Wolfgang Betz 132:51056160fa4a 92 *
Wolfgang Betz 132:51056160fa4a 93 * The values below are based on the LSI clock @37Kz.
Wolfgang Betz 132:51056160fa4a 94 * For this, the tick is 54us
Wolfgang Betz 132:51056160fa4a 95 */
Wolfgang Betz 132:51056160fa4a 96 #define SPI_FIX_TIMEOUT 2 /**< 150 us - Note: 2 ticks result into more than 2*54us due to some inaccuracies and latencies */
Wolfgang Betz 132:51056160fa4a 97 #define SPI_TX_TIMEOUT 3 /**< Value to be tuned to prevent trying to send a command to BlueNRG if it is not yet woken up */
Wolfgang Betz 132:51056160fa4a 98 #define SPI_END_RECEIVE_FIX_TIMEOUT 2
Wolfgang Betz 132:51056160fa4a 99 #define BLUENRG_HOLD_TIME_IN_RESET 1
Wolfgang Betz 132:51056160fa4a 100 #define BLUENRG_HOLD_TIME_AFTER_RESET 93 /**< 5ms */
Wolfgang Betz 132:51056160fa4a 101
Wolfgang Betz 132:51056160fa4a 102 /**
Wolfgang Betz 132:51056160fa4a 103 * When the SPI does not have any FIFO (STM32L0, etc...), this parameter should be set to 1
Wolfgang Betz 132:51056160fa4a 104 * When the SPI does have a FIFO, this parameter shall be set to the size of the FIFO in bytes (STM32L4 = 4)
Wolfgang Betz 132:51056160fa4a 105 */
Wolfgang Betz 132:51056160fa4a 106 #define SPI_FIFO_RX_DEPTH 1
Wolfgang Betz 132:51056160fa4a 107
Wolfgang Betz 132:51056160fa4a 108 /**
Wolfgang Betz 132:51056160fa4a 109 * @}
Wolfgang Betz 132:51056160fa4a 110 */
Wolfgang Betz 132:51056160fa4a 111
Wolfgang Betz 132:51056160fa4a 112 /** @defgroup STM32_BLUENRG_BLE_DMA_LP_Exported_Functions
Wolfgang Betz 132:51056160fa4a 113 * @{
Wolfgang Betz 132:51056160fa4a 114 */
Wolfgang Betz 132:51056160fa4a 115 // FIXME: add prototypes for BlueNRG here
Wolfgang Betz 132:51056160fa4a 116 void BNRG_SPI_Close(void);
Wolfgang Betz 132:51056160fa4a 117 void BNRG_SPI_Init(void);
Wolfgang Betz 132:51056160fa4a 118 void BlueNRG_RST(void);
Wolfgang Betz 132:51056160fa4a 119 void BlueNRG_SPI_Write(uint8_t* header_data,
Wolfgang Betz 132:51056160fa4a 120 uint8_t* payload_data,
Wolfgang Betz 132:51056160fa4a 121 uint8_t header_size,
Wolfgang Betz 132:51056160fa4a 122 uint8_t payload_size);
Wolfgang Betz 132:51056160fa4a 123 void BlueNRG_SPI_Request_Events(uint8_t *buffer, uint8_t buff_size);
Wolfgang Betz 132:51056160fa4a 124 void BlueNRG_DMA_RxCallback(void);
Wolfgang Betz 132:51056160fa4a 125 void BlueNRG_DMA_TxCallback(void);
Wolfgang Betz 132:51056160fa4a 126 void BlueNRG_SPI_IRQ_Callback(void);
Wolfgang Betz 132:51056160fa4a 127 void BNRG_MSP_SPI_Init(SPI_HandleTypeDef * hspi);
Wolfgang Betz 132:51056160fa4a 128
Wolfgang Betz 132:51056160fa4a 129 /**
Wolfgang Betz 132:51056160fa4a 130 * @}
Wolfgang Betz 132:51056160fa4a 131 */
Wolfgang Betz 132:51056160fa4a 132
Wolfgang Betz 132:51056160fa4a 133 /**
Wolfgang Betz 132:51056160fa4a 134 * @}
Wolfgang Betz 132:51056160fa4a 135 */
Wolfgang Betz 132:51056160fa4a 136
Wolfgang Betz 132:51056160fa4a 137 /**
Wolfgang Betz 132:51056160fa4a 138 * @}
Wolfgang Betz 132:51056160fa4a 139 */
Wolfgang Betz 132:51056160fa4a 140
Wolfgang Betz 132:51056160fa4a 141 /**
Wolfgang Betz 132:51056160fa4a 142 * @}
Wolfgang Betz 132:51056160fa4a 143 */
Wolfgang Betz 132:51056160fa4a 144
Wolfgang Betz 132:51056160fa4a 145 #ifdef __cplusplus
Wolfgang Betz 132:51056160fa4a 146 }
Wolfgang Betz 132:51056160fa4a 147 #endif
Wolfgang Betz 132:51056160fa4a 148
Wolfgang Betz 132:51056160fa4a 149 #endif /* __STM32_BLUENRG_BLE_DMA_LP_H */
Wolfgang Betz 132:51056160fa4a 150
Wolfgang Betz 132:51056160fa4a 151 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Wolfgang Betz 132:51056160fa4a 152