Version of easy-connect with the u-blox cellular platforms C027 and C030 added.

Dependents:   HelloMQTT

Committer:
RobMeades
Date:
Fri Nov 03 13:01:23 2017 +0000
Revision:
6:304d3ba87a01
Parent:
0:19aa55d66228
Add comment concerning N2XX baud rate.

Who changed what in which revision?

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