HelloWorld_IDS01A4 mbed application for Spirit1 P2P demo.

Dependencies:   mbed

Fork of HelloWorld_IDS01A5_Program by rosarium pila

mbed 2.0 (a.k.a classic) HelloWorld example for Spirit1 to transfer data from one node to another.
To send the predefined data packet from the sender to the receiver, user needs to press User Button on the board. The LED on the receiver expansion board will toggle on reception of data successfully.
Data packets sent and received can be seen on USB serial terminal.

EVALUATION BOARDS RF FREQUENCY DESCRIPTION :
X-NUCLEO-IDS01A4 868 MHz 868 MHz RF expansion board based on SPIRIT1

Committer:
rosarium
Date:
Thu May 25 16:38:55 2017 +0000
Revision:
0:2ddc0583bcec
First draft version of HelloWorld_IDS01A5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rosarium 0:2ddc0583bcec 1 /**
rosarium 0:2ddc0583bcec 2 ******************************************************************************
rosarium 0:2ddc0583bcec 3 * @file radio_spi.c
rosarium 0:2ddc0583bcec 4 * @author System Lab - NOIDA
rosarium 0:2ddc0583bcec 5 * @version V1.0.0
rosarium 0:2ddc0583bcec 6 * @date 15-May-2014
rosarium 0:2ddc0583bcec 7 * @brief This file provides code for the configuration of the SPI instances.
rosarium 0:2ddc0583bcec 8 ******************************************************************************
rosarium 0:2ddc0583bcec 9 * @attention
rosarium 0:2ddc0583bcec 10 *
rosarium 0:2ddc0583bcec 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
rosarium 0:2ddc0583bcec 12 *
rosarium 0:2ddc0583bcec 13 * Redistribution and use in source and binary forms, with or without modification,
rosarium 0:2ddc0583bcec 14 * are permitted provided that the following conditions are met:
rosarium 0:2ddc0583bcec 15 * 1. Redistributions of source code must retain the above copyright notice,
rosarium 0:2ddc0583bcec 16 * this list of conditions and the following disclaimer.
rosarium 0:2ddc0583bcec 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
rosarium 0:2ddc0583bcec 18 * this list of conditions and the following disclaimer in the documentation
rosarium 0:2ddc0583bcec 19 * and/or other materials provided with the distribution.
rosarium 0:2ddc0583bcec 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
rosarium 0:2ddc0583bcec 21 * may be used to endorse or promote products derived from this software
rosarium 0:2ddc0583bcec 22 * without specific prior written permission.
rosarium 0:2ddc0583bcec 23 *
rosarium 0:2ddc0583bcec 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
rosarium 0:2ddc0583bcec 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
rosarium 0:2ddc0583bcec 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rosarium 0:2ddc0583bcec 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
rosarium 0:2ddc0583bcec 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
rosarium 0:2ddc0583bcec 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rosarium 0:2ddc0583bcec 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
rosarium 0:2ddc0583bcec 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
rosarium 0:2ddc0583bcec 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
rosarium 0:2ddc0583bcec 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
rosarium 0:2ddc0583bcec 34 *
rosarium 0:2ddc0583bcec 35 ******************************************************************************
rosarium 0:2ddc0583bcec 36 */
rosarium 0:2ddc0583bcec 37
rosarium 0:2ddc0583bcec 38
rosarium 0:2ddc0583bcec 39 /* Includes ------------------------------------------------------------------*/
rosarium 0:2ddc0583bcec 40 #include "radio_spi.h"
rosarium 0:2ddc0583bcec 41
rosarium 0:2ddc0583bcec 42 #include "SimpleSpirit1.h"
rosarium 0:2ddc0583bcec 43
rosarium 0:2ddc0583bcec 44
rosarium 0:2ddc0583bcec 45 /**
rosarium 0:2ddc0583bcec 46 * @addtogroup BSP
rosarium 0:2ddc0583bcec 47 * @{
rosarium 0:2ddc0583bcec 48 */
rosarium 0:2ddc0583bcec 49
rosarium 0:2ddc0583bcec 50
rosarium 0:2ddc0583bcec 51 /**
rosarium 0:2ddc0583bcec 52 * @addtogroup X-NUCLEO-IDS02Ax
rosarium 0:2ddc0583bcec 53 * @{
rosarium 0:2ddc0583bcec 54 */
rosarium 0:2ddc0583bcec 55
rosarium 0:2ddc0583bcec 56
rosarium 0:2ddc0583bcec 57 /**
rosarium 0:2ddc0583bcec 58 * @defgroup RADIO_SPI_Private_TypesDefinitions RADIO_SPI Private Types Definitions
rosarium 0:2ddc0583bcec 59 * @{
rosarium 0:2ddc0583bcec 60 */
rosarium 0:2ddc0583bcec 61
rosarium 0:2ddc0583bcec 62 /**
rosarium 0:2ddc0583bcec 63 * @}
rosarium 0:2ddc0583bcec 64 */
rosarium 0:2ddc0583bcec 65
rosarium 0:2ddc0583bcec 66
rosarium 0:2ddc0583bcec 67 /**
rosarium 0:2ddc0583bcec 68 * @defgroup RADIO_SPI_Private_Defines RADIO_SPI Private Defines
rosarium 0:2ddc0583bcec 69 * @{
rosarium 0:2ddc0583bcec 70 */
rosarium 0:2ddc0583bcec 71
rosarium 0:2ddc0583bcec 72 /**
rosarium 0:2ddc0583bcec 73 * @}
rosarium 0:2ddc0583bcec 74 */
rosarium 0:2ddc0583bcec 75
rosarium 0:2ddc0583bcec 76
rosarium 0:2ddc0583bcec 77 /**
rosarium 0:2ddc0583bcec 78 * @defgroup RADIO_SPI_Private_Macros RADIO_SPI Private Macros
rosarium 0:2ddc0583bcec 79 * @{
rosarium 0:2ddc0583bcec 80 */
rosarium 0:2ddc0583bcec 81
rosarium 0:2ddc0583bcec 82 /**
rosarium 0:2ddc0583bcec 83 * @}
rosarium 0:2ddc0583bcec 84 */
rosarium 0:2ddc0583bcec 85
rosarium 0:2ddc0583bcec 86
rosarium 0:2ddc0583bcec 87 /**
rosarium 0:2ddc0583bcec 88 * @defgroup RADIO_SPI_Private_Variables RADIO_SPI Private Variables
rosarium 0:2ddc0583bcec 89 * @{
rosarium 0:2ddc0583bcec 90 */
rosarium 0:2ddc0583bcec 91
rosarium 0:2ddc0583bcec 92 /**
rosarium 0:2ddc0583bcec 93 * @}
rosarium 0:2ddc0583bcec 94 */
rosarium 0:2ddc0583bcec 95
rosarium 0:2ddc0583bcec 96
rosarium 0:2ddc0583bcec 97 /**
rosarium 0:2ddc0583bcec 98 * @defgroup RADIO_SPI_Private_FunctionPrototypes RADIO_SPI Private Function Prototypes
rosarium 0:2ddc0583bcec 99 * @{
rosarium 0:2ddc0583bcec 100 */
rosarium 0:2ddc0583bcec 101
rosarium 0:2ddc0583bcec 102 /**
rosarium 0:2ddc0583bcec 103 * @}
rosarium 0:2ddc0583bcec 104 */
rosarium 0:2ddc0583bcec 105
rosarium 0:2ddc0583bcec 106 /**
rosarium 0:2ddc0583bcec 107 * @defgroup RADIO_SPI_Private_Functions RADIO_SPI Private Functions
rosarium 0:2ddc0583bcec 108 * @{
rosarium 0:2ddc0583bcec 109 */
rosarium 0:2ddc0583bcec 110
rosarium 0:2ddc0583bcec 111 /**
rosarium 0:2ddc0583bcec 112 * @}
rosarium 0:2ddc0583bcec 113 */
rosarium 0:2ddc0583bcec 114
rosarium 0:2ddc0583bcec 115 /**
rosarium 0:2ddc0583bcec 116 * @brief Write single or multiple RF Transceivers register
rosarium 0:2ddc0583bcec 117 * @param cRegAddress: base register's address to be write
rosarium 0:2ddc0583bcec 118 * @param cNbBytes: number of registers and bytes to be write
rosarium 0:2ddc0583bcec 119 * @param pcBuffer: pointer to the buffer of values have to be written into registers
rosarium 0:2ddc0583bcec 120 * @retval StatusBytes
rosarium 0:2ddc0583bcec 121 */
rosarium 0:2ddc0583bcec 122 StatusBytes SdkEvalSpiWriteRegisters(uint8_t cRegAddress, uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 123 {
rosarium 0:2ddc0583bcec 124 return SimpleSpirit1::Instance().SdkEvalSpiWriteRegisters(cRegAddress, cNbBytes, pcBuffer);
rosarium 0:2ddc0583bcec 125 }
rosarium 0:2ddc0583bcec 126
rosarium 0:2ddc0583bcec 127 StatusBytes SimpleSpirit1::SdkEvalSpiWriteRegisters(uint8_t cRegAddress, uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 128 {
rosarium 0:2ddc0583bcec 129 uint8_t aHeader[2] = {0};
rosarium 0:2ddc0583bcec 130 uint16_t tmpstatus = 0x0000;
rosarium 0:2ddc0583bcec 131 StatusBytes *pStatus=(StatusBytes *)&tmpstatus;
rosarium 0:2ddc0583bcec 132
rosarium 0:2ddc0583bcec 133 /* Built the aHeader bytes */
rosarium 0:2ddc0583bcec 134 aHeader[0] = WRITE_HEADER;
rosarium 0:2ddc0583bcec 135 aHeader[1] = cRegAddress;
rosarium 0:2ddc0583bcec 136
rosarium 0:2ddc0583bcec 137 /* Puts the SPI chip select low to start the transaction */
rosarium 0:2ddc0583bcec 138 chip_sync_select();
rosarium 0:2ddc0583bcec 139
rosarium 0:2ddc0583bcec 140 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 141 tmpstatus = _spi.write(aHeader[0]);
rosarium 0:2ddc0583bcec 142 tmpstatus = tmpstatus << 8;
rosarium 0:2ddc0583bcec 143
rosarium 0:2ddc0583bcec 144 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 145 tmpstatus |= _spi.write(aHeader[1]);
rosarium 0:2ddc0583bcec 146
rosarium 0:2ddc0583bcec 147 /* Writes the registers according to the number of bytes */
rosarium 0:2ddc0583bcec 148 for (int index = 0; index < cNbBytes; index++)
rosarium 0:2ddc0583bcec 149 {
rosarium 0:2ddc0583bcec 150 _spi.write(pcBuffer[index]);
rosarium 0:2ddc0583bcec 151 }
rosarium 0:2ddc0583bcec 152
rosarium 0:2ddc0583bcec 153 /* Puts the SPI chip select high to end the transaction */
rosarium 0:2ddc0583bcec 154 chip_sync_unselect();
rosarium 0:2ddc0583bcec 155
rosarium 0:2ddc0583bcec 156 return *pStatus;
rosarium 0:2ddc0583bcec 157 }
rosarium 0:2ddc0583bcec 158
rosarium 0:2ddc0583bcec 159
rosarium 0:2ddc0583bcec 160 /**
rosarium 0:2ddc0583bcec 161 * @brief Read single or multiple SPIRIT1 register
rosarium 0:2ddc0583bcec 162 * @param cRegAddress: base register's address to be read
rosarium 0:2ddc0583bcec 163 * @param cNbBytes: number of registers and bytes to be read
rosarium 0:2ddc0583bcec 164 * @param pcBuffer: pointer to the buffer of registers' values read
rosarium 0:2ddc0583bcec 165 * @retval StatusBytes
rosarium 0:2ddc0583bcec 166 */
rosarium 0:2ddc0583bcec 167 StatusBytes SdkEvalSpiReadRegisters(uint8_t cRegAddress, uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 168 {
rosarium 0:2ddc0583bcec 169 return SimpleSpirit1::Instance().SdkEvalSpiReadRegisters(cRegAddress, cNbBytes, pcBuffer);
rosarium 0:2ddc0583bcec 170 }
rosarium 0:2ddc0583bcec 171
rosarium 0:2ddc0583bcec 172 StatusBytes SimpleSpirit1::SdkEvalSpiReadRegisters(uint8_t cRegAddress, uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 173 {
rosarium 0:2ddc0583bcec 174 uint16_t tmpstatus = 0x00;
rosarium 0:2ddc0583bcec 175 StatusBytes *pStatus = (StatusBytes *)&tmpstatus;
rosarium 0:2ddc0583bcec 176
rosarium 0:2ddc0583bcec 177 uint8_t aHeader[2] = {0};
rosarium 0:2ddc0583bcec 178
rosarium 0:2ddc0583bcec 179 /* Built the aHeader bytes */
rosarium 0:2ddc0583bcec 180 aHeader[0] = READ_HEADER;
rosarium 0:2ddc0583bcec 181 aHeader[1] = cRegAddress;
rosarium 0:2ddc0583bcec 182
rosarium 0:2ddc0583bcec 183 /* Put the SPI chip select low to start the transaction */
rosarium 0:2ddc0583bcec 184 chip_sync_select();
rosarium 0:2ddc0583bcec 185
rosarium 0:2ddc0583bcec 186 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 187 tmpstatus = _spi.write(aHeader[0]);
rosarium 0:2ddc0583bcec 188 tmpstatus = tmpstatus << 8;
rosarium 0:2ddc0583bcec 189
rosarium 0:2ddc0583bcec 190 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 191 tmpstatus |= _spi.write(aHeader[1]);
rosarium 0:2ddc0583bcec 192
rosarium 0:2ddc0583bcec 193 for (int index = 0; index < cNbBytes; index++)
rosarium 0:2ddc0583bcec 194 {
rosarium 0:2ddc0583bcec 195 pcBuffer[index] = _spi.write(0xFF);
rosarium 0:2ddc0583bcec 196 }
rosarium 0:2ddc0583bcec 197
rosarium 0:2ddc0583bcec 198 /* Put the SPI chip select high to end the transaction */
rosarium 0:2ddc0583bcec 199 chip_sync_unselect();
rosarium 0:2ddc0583bcec 200
rosarium 0:2ddc0583bcec 201 return *pStatus;
rosarium 0:2ddc0583bcec 202 }
rosarium 0:2ddc0583bcec 203
rosarium 0:2ddc0583bcec 204
rosarium 0:2ddc0583bcec 205 /**
rosarium 0:2ddc0583bcec 206 * @brief Send a command
rosarium 0:2ddc0583bcec 207 * @param cCommandCode: command code to be sent
rosarium 0:2ddc0583bcec 208 * @retval StatusBytes
rosarium 0:2ddc0583bcec 209 */
rosarium 0:2ddc0583bcec 210 StatusBytes SdkEvalSpiCommandStrobes(uint8_t cCommandCode)
rosarium 0:2ddc0583bcec 211 {
rosarium 0:2ddc0583bcec 212 return SimpleSpirit1::Instance().SdkEvalSpiCommandStrobes(cCommandCode);
rosarium 0:2ddc0583bcec 213 }
rosarium 0:2ddc0583bcec 214
rosarium 0:2ddc0583bcec 215 StatusBytes SimpleSpirit1::SdkEvalSpiCommandStrobes(uint8_t cCommandCode)
rosarium 0:2ddc0583bcec 216 {
rosarium 0:2ddc0583bcec 217 uint8_t aHeader[2] = {0};
rosarium 0:2ddc0583bcec 218 uint16_t tmpstatus = 0x0000;
rosarium 0:2ddc0583bcec 219
rosarium 0:2ddc0583bcec 220 StatusBytes *pStatus = (StatusBytes *)&tmpstatus;
rosarium 0:2ddc0583bcec 221
rosarium 0:2ddc0583bcec 222 /* Built the aHeader bytes */
rosarium 0:2ddc0583bcec 223 aHeader[0] = COMMAND_HEADER;
rosarium 0:2ddc0583bcec 224 aHeader[1] = cCommandCode;
rosarium 0:2ddc0583bcec 225
rosarium 0:2ddc0583bcec 226 /* Puts the SPI chip select low to start the transaction */
rosarium 0:2ddc0583bcec 227 chip_sync_select();
rosarium 0:2ddc0583bcec 228
rosarium 0:2ddc0583bcec 229 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 230 tmpstatus = _spi.write(aHeader[0]);
rosarium 0:2ddc0583bcec 231 tmpstatus = tmpstatus<<8;
rosarium 0:2ddc0583bcec 232
rosarium 0:2ddc0583bcec 233 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 234 tmpstatus |= _spi.write(aHeader[1]);
rosarium 0:2ddc0583bcec 235
rosarium 0:2ddc0583bcec 236 /* Puts the SPI chip select high to end the transaction */
rosarium 0:2ddc0583bcec 237 chip_sync_unselect();
rosarium 0:2ddc0583bcec 238
rosarium 0:2ddc0583bcec 239 return *pStatus;
rosarium 0:2ddc0583bcec 240 }
rosarium 0:2ddc0583bcec 241
rosarium 0:2ddc0583bcec 242
rosarium 0:2ddc0583bcec 243 /**
rosarium 0:2ddc0583bcec 244 * @brief Write data into TX FIFO
rosarium 0:2ddc0583bcec 245 * @param cNbBytes: number of bytes to be written into TX FIFO
rosarium 0:2ddc0583bcec 246 * @param pcBuffer: pointer to data to write
rosarium 0:2ddc0583bcec 247 * @retval StatusBytes
rosarium 0:2ddc0583bcec 248 */
rosarium 0:2ddc0583bcec 249 StatusBytes SdkEvalSpiWriteFifo(uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 250 {
rosarium 0:2ddc0583bcec 251 return SimpleSpirit1::Instance().SdkEvalSpiWriteFifo(cNbBytes, pcBuffer);
rosarium 0:2ddc0583bcec 252 }
rosarium 0:2ddc0583bcec 253
rosarium 0:2ddc0583bcec 254 StatusBytes SimpleSpirit1::SdkEvalSpiWriteFifo(uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 255 {
rosarium 0:2ddc0583bcec 256 uint16_t tmpstatus = 0x0000;
rosarium 0:2ddc0583bcec 257 StatusBytes *pStatus = (StatusBytes *)&tmpstatus;
rosarium 0:2ddc0583bcec 258
rosarium 0:2ddc0583bcec 259 uint8_t aHeader[2] = {0};
rosarium 0:2ddc0583bcec 260
rosarium 0:2ddc0583bcec 261 /* Built the aHeader bytes */
rosarium 0:2ddc0583bcec 262 aHeader[0] = WRITE_HEADER;
rosarium 0:2ddc0583bcec 263 aHeader[1] = LINEAR_FIFO_ADDRESS;
rosarium 0:2ddc0583bcec 264
rosarium 0:2ddc0583bcec 265 /* Put the SPI chip select low to start the transaction */
rosarium 0:2ddc0583bcec 266 chip_sync_select();
rosarium 0:2ddc0583bcec 267
rosarium 0:2ddc0583bcec 268 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 269 tmpstatus = _spi.write(aHeader[0]);
rosarium 0:2ddc0583bcec 270 tmpstatus = tmpstatus<<8;
rosarium 0:2ddc0583bcec 271
rosarium 0:2ddc0583bcec 272 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 273 tmpstatus |= _spi.write(aHeader[1]);
rosarium 0:2ddc0583bcec 274
rosarium 0:2ddc0583bcec 275 /* Writes the registers according to the number of bytes */
rosarium 0:2ddc0583bcec 276 for (int index = 0; index < cNbBytes; index++)
rosarium 0:2ddc0583bcec 277 {
rosarium 0:2ddc0583bcec 278 _spi.write(pcBuffer[index]);
rosarium 0:2ddc0583bcec 279 }
rosarium 0:2ddc0583bcec 280
rosarium 0:2ddc0583bcec 281 /* Put the SPI chip select high to end the transaction */
rosarium 0:2ddc0583bcec 282 chip_sync_unselect();
rosarium 0:2ddc0583bcec 283
rosarium 0:2ddc0583bcec 284 return *pStatus;
rosarium 0:2ddc0583bcec 285 }
rosarium 0:2ddc0583bcec 286
rosarium 0:2ddc0583bcec 287 /**
rosarium 0:2ddc0583bcec 288 * @brief Read data from RX FIFO
rosarium 0:2ddc0583bcec 289 * @param cNbBytes: number of bytes to read from RX FIFO
rosarium 0:2ddc0583bcec 290 * @param pcBuffer: pointer to data read from RX FIFO
rosarium 0:2ddc0583bcec 291 * @retval StatusBytes
rosarium 0:2ddc0583bcec 292 */
rosarium 0:2ddc0583bcec 293 StatusBytes SdkEvalSpiReadFifo(uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 294 {
rosarium 0:2ddc0583bcec 295 return SimpleSpirit1::Instance().SdkEvalSpiReadFifo(cNbBytes, pcBuffer);
rosarium 0:2ddc0583bcec 296 }
rosarium 0:2ddc0583bcec 297
rosarium 0:2ddc0583bcec 298 StatusBytes SimpleSpirit1::SdkEvalSpiReadFifo(uint8_t cNbBytes, uint8_t* pcBuffer)
rosarium 0:2ddc0583bcec 299 {
rosarium 0:2ddc0583bcec 300 uint16_t tmpstatus = 0x0000;
rosarium 0:2ddc0583bcec 301 StatusBytes *pStatus = (StatusBytes *)&tmpstatus;
rosarium 0:2ddc0583bcec 302
rosarium 0:2ddc0583bcec 303 uint8_t aHeader[2];
rosarium 0:2ddc0583bcec 304
rosarium 0:2ddc0583bcec 305 /* Built the aHeader bytes */
rosarium 0:2ddc0583bcec 306 aHeader[0]=READ_HEADER;
rosarium 0:2ddc0583bcec 307 aHeader[1]=LINEAR_FIFO_ADDRESS;
rosarium 0:2ddc0583bcec 308
rosarium 0:2ddc0583bcec 309 /* Put the SPI chip select low to start the transaction */
rosarium 0:2ddc0583bcec 310 chip_sync_select();
rosarium 0:2ddc0583bcec 311
rosarium 0:2ddc0583bcec 312 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 313 tmpstatus = _spi.write(aHeader[0]);
rosarium 0:2ddc0583bcec 314 tmpstatus = tmpstatus<<8;
rosarium 0:2ddc0583bcec 315
rosarium 0:2ddc0583bcec 316 /* Write the aHeader bytes and read the SPIRIT1 status bytes */
rosarium 0:2ddc0583bcec 317 tmpstatus |= _spi.write(aHeader[1]);
rosarium 0:2ddc0583bcec 318
rosarium 0:2ddc0583bcec 319 for (int index = 0; index < cNbBytes; index++)
rosarium 0:2ddc0583bcec 320 {
rosarium 0:2ddc0583bcec 321 pcBuffer[index] = _spi.write(0xFF);
rosarium 0:2ddc0583bcec 322 }
rosarium 0:2ddc0583bcec 323
rosarium 0:2ddc0583bcec 324 /* Put the SPI chip select high to end the transaction */
rosarium 0:2ddc0583bcec 325 chip_sync_unselect();
rosarium 0:2ddc0583bcec 326
rosarium 0:2ddc0583bcec 327 return *pStatus;
rosarium 0:2ddc0583bcec 328 }
rosarium 0:2ddc0583bcec 329
rosarium 0:2ddc0583bcec 330
rosarium 0:2ddc0583bcec 331 /**
rosarium 0:2ddc0583bcec 332 * @}
rosarium 0:2ddc0583bcec 333 */
rosarium 0:2ddc0583bcec 334
rosarium 0:2ddc0583bcec 335 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/