Header files and Init data so you can use the Text To Speech Click Board with a Hexiware and mBed OS5
Dependents: Talking_breathalyzer FindTheColor mbed_Projet
text_to_speech_hw.h@0:b33a6418e125, 2016-10-07 (annotated)
- Committer:
- daveyclk
- Date:
- Fri Oct 07 20:09:00 2016 +0000
- Revision:
- 0:b33a6418e125
First version of iBreathalyzer with its own voice! (Text to speech click)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daveyclk | 0:b33a6418e125 | 1 | /**************************************************************************** |
daveyclk | 0:b33a6418e125 | 2 | * Title : Text to Speech Click |
daveyclk | 0:b33a6418e125 | 3 | * Filename : text_to_speech_hw.h |
daveyclk | 0:b33a6418e125 | 4 | * Author : MSV |
daveyclk | 0:b33a6418e125 | 5 | * Origin Date : 30/01/2016 |
daveyclk | 0:b33a6418e125 | 6 | * Notes : None |
daveyclk | 0:b33a6418e125 | 7 | *****************************************************************************/ |
daveyclk | 0:b33a6418e125 | 8 | /**************************CHANGE LIST ************************************** |
daveyclk | 0:b33a6418e125 | 9 | * |
daveyclk | 0:b33a6418e125 | 10 | * Date Software Version Initials Description |
daveyclk | 0:b33a6418e125 | 11 | * 30/01/16 XXXXXXXXXXX MSV Interface Created. |
daveyclk | 0:b33a6418e125 | 12 | * |
daveyclk | 0:b33a6418e125 | 13 | *****************************************************************************/ |
daveyclk | 0:b33a6418e125 | 14 | /** |
daveyclk | 0:b33a6418e125 | 15 | * @file text_to_speech_hw.h |
daveyclk | 0:b33a6418e125 | 16 | * @brief <h3>Hardware Layer</h3> |
daveyclk | 0:b33a6418e125 | 17 | * |
daveyclk | 0:b33a6418e125 | 18 | * @par |
daveyclk | 0:b33a6418e125 | 19 | * Low level functions for |
daveyclk | 0:b33a6418e125 | 20 | * <a href="http://www.mikroe.com">MikroElektronika's</a> TextToSpeech click |
daveyclk | 0:b33a6418e125 | 21 | * board. |
daveyclk | 0:b33a6418e125 | 22 | */ |
daveyclk | 0:b33a6418e125 | 23 | |
daveyclk | 0:b33a6418e125 | 24 | /** |
daveyclk | 0:b33a6418e125 | 25 | * @page LIB_INFO Library Info |
daveyclk | 0:b33a6418e125 | 26 | * @date 28 Jan 2016 |
daveyclk | 0:b33a6418e125 | 27 | * @author Milos Vidojevic |
daveyclk | 0:b33a6418e125 | 28 | * @copyright GNU Public License |
daveyclk | 0:b33a6418e125 | 29 | * @version 1.0.0 - Initial testing and verification |
daveyclk | 0:b33a6418e125 | 30 | */ |
daveyclk | 0:b33a6418e125 | 31 | |
daveyclk | 0:b33a6418e125 | 32 | /** |
daveyclk | 0:b33a6418e125 | 33 | * @page TEST_CFG Test Configurations |
daveyclk | 0:b33a6418e125 | 34 | * |
daveyclk | 0:b33a6418e125 | 35 | * ### Test configuration 1 : ### |
daveyclk | 0:b33a6418e125 | 36 | * @par |
daveyclk | 0:b33a6418e125 | 37 | * - <b>MCU</b> : STM32F107VC |
daveyclk | 0:b33a6418e125 | 38 | * - <b>Dev.Board</b> : EasyMx Pro v7 |
daveyclk | 0:b33a6418e125 | 39 | * - <b>Oscillator</b> : 72 Mhz internal |
daveyclk | 0:b33a6418e125 | 40 | * - <b>Ext. Modules</b> : TextToSpeech Click |
daveyclk | 0:b33a6418e125 | 41 | * - <b>SW</b> : MikroC PRO for ARM 4.7.1 |
daveyclk | 0:b33a6418e125 | 42 | * |
daveyclk | 0:b33a6418e125 | 43 | * ### Test configuration 2 : ### |
daveyclk | 0:b33a6418e125 | 44 | * @par |
daveyclk | 0:b33a6418e125 | 45 | * - <b>MCU</b> : PIC32MX795F512L |
daveyclk | 0:b33a6418e125 | 46 | * - <b>Dev. Board</b> : EasyPIC Fusion v7 |
daveyclk | 0:b33a6418e125 | 47 | * - <b>Oscillator</b> : 80 Mhz internal |
daveyclk | 0:b33a6418e125 | 48 | * - <b>Ext. Modules</b> : TextToSpeech Click |
daveyclk | 0:b33a6418e125 | 49 | * - <b>SW</b> : MikroC PRO for PIC32 3.6.0 |
daveyclk | 0:b33a6418e125 | 50 | * |
daveyclk | 0:b33a6418e125 | 51 | * ### Test configuration 3 : ### |
daveyclk | 0:b33a6418e125 | 52 | * @par |
daveyclk | 0:b33a6418e125 | 53 | * - <b>MCU</b> : FT900Q |
daveyclk | 0:b33a6418e125 | 54 | * - <b>Dev. Board</b> : EasyFT90x v7 |
daveyclk | 0:b33a6418e125 | 55 | * - <b>Oscillator</b> : 100 Mhz internal |
daveyclk | 0:b33a6418e125 | 56 | * - <b>Ext. Modules</b> : TextToSpeech Click |
daveyclk | 0:b33a6418e125 | 57 | * - <b>SW</b> : MikroC PRO for FT90x 1.2.1 |
daveyclk | 0:b33a6418e125 | 58 | * |
daveyclk | 0:b33a6418e125 | 59 | */ |
daveyclk | 0:b33a6418e125 | 60 | |
daveyclk | 0:b33a6418e125 | 61 | /** |
daveyclk | 0:b33a6418e125 | 62 | * @page SCH Schematic |
daveyclk | 0:b33a6418e125 | 63 | * ![Schematic](../tts_sch.png) |
daveyclk | 0:b33a6418e125 | 64 | */ |
daveyclk | 0:b33a6418e125 | 65 | |
daveyclk | 0:b33a6418e125 | 66 | /** |
daveyclk | 0:b33a6418e125 | 67 | * @page PIN Pin Usage |
daveyclk | 0:b33a6418e125 | 68 | * ![Pins](../tts_pins.png) |
daveyclk | 0:b33a6418e125 | 69 | */ |
daveyclk | 0:b33a6418e125 | 70 | |
daveyclk | 0:b33a6418e125 | 71 | /** |
daveyclk | 0:b33a6418e125 | 72 | * @mainpage |
daveyclk | 0:b33a6418e125 | 73 | * ### General Desription ### |
daveyclk | 0:b33a6418e125 | 74 | * |
daveyclk | 0:b33a6418e125 | 75 | * @par |
daveyclk | 0:b33a6418e125 | 76 | * The S1V30120 is a Speech Synthesis IC that provides a cost effective |
daveyclk | 0:b33a6418e125 | 77 | * solution for adding Text-To-Speech ( TTS ) and ADPCM speech processing |
daveyclk | 0:b33a6418e125 | 78 | * applications to a range of portable devices. The highly integrated design |
daveyclk | 0:b33a6418e125 | 79 | * reduces overall system cost and time-to-market. The S1V30120 contains all |
daveyclk | 0:b33a6418e125 | 80 | * the required analogue codecs, memory, and EPSON - supplied embedded |
daveyclk | 0:b33a6418e125 | 81 | * algorithms. All applications are controlled over a single serial interface |
daveyclk | 0:b33a6418e125 | 82 | * ( SPI ) allowing control from a wide range of hosts and rapid integration |
daveyclk | 0:b33a6418e125 | 83 | * into existing products. |
daveyclk | 0:b33a6418e125 | 84 | * |
daveyclk | 0:b33a6418e125 | 85 | * ### Features ### |
daveyclk | 0:b33a6418e125 | 86 | * |
daveyclk | 0:b33a6418e125 | 87 | * @par |
daveyclk | 0:b33a6418e125 | 88 | * - Text To Speech Synthesis (TTS) |
daveyclk | 0:b33a6418e125 | 89 | * + Fonix DECtalk v5, fully parametric speech synthesis |
daveyclk | 0:b33a6418e125 | 90 | * + Languages: US English, Castilian Spanish, Latin American Spanish |
daveyclk | 0:b33a6418e125 | 91 | * + Nine pre-defined voices |
daveyclk | 0:b33a6418e125 | 92 | * + Sampling rate: 11.025kHz |
daveyclk | 0:b33a6418e125 | 93 | * |
daveyclk | 0:b33a6418e125 | 94 | * - Audio reproduction (ADPCM) |
daveyclk | 0:b33a6418e125 | 95 | * + ADPCM decoding (in Epson’s original format) |
daveyclk | 0:b33a6418e125 | 96 | * + Bit rate: 80kbps, 64kbps, 48kbps, 40kbps, 32kbps and 24kbps |
daveyclk | 0:b33a6418e125 | 97 | * + Sampling rate: 16, 8 kHz |
daveyclk | 0:b33a6418e125 | 98 | * |
daveyclk | 0:b33a6418e125 | 99 | * - Host interface |
daveyclk | 0:b33a6418e125 | 100 | * + Synchronous serial interface (SPI interface is supported) |
daveyclk | 0:b33a6418e125 | 101 | * + Command control |
daveyclk | 0:b33a6418e125 | 102 | * |
daveyclk | 0:b33a6418e125 | 103 | * - 16-bit full-digital amplifier |
daveyclk | 0:b33a6418e125 | 104 | * + Sampling rate (fs): 16, 11.025 and 8 kHz |
daveyclk | 0:b33a6418e125 | 105 | * + Digital Input: 16 bits |
daveyclk | 0:b33a6418e125 | 106 | * + Operating voltage: 3.3/1.8V |
daveyclk | 0:b33a6418e125 | 107 | * |
daveyclk | 0:b33a6418e125 | 108 | * - Clock |
daveyclk | 0:b33a6418e125 | 109 | * + 32.768KHz |
daveyclk | 0:b33a6418e125 | 110 | * |
daveyclk | 0:b33a6418e125 | 111 | * - Package |
daveyclk | 0:b33a6418e125 | 112 | * + 64-pin TQFP (10mm x 10mm) with 0.5mm-pitch pins |
daveyclk | 0:b33a6418e125 | 113 | * |
daveyclk | 0:b33a6418e125 | 114 | * - Supply voltage |
daveyclk | 0:b33a6418e125 | 115 | * + 3.3V (I/O power supply) |
daveyclk | 0:b33a6418e125 | 116 | * + 1.8V (Core power supply) |
daveyclk | 0:b33a6418e125 | 117 | */ |
daveyclk | 0:b33a6418e125 | 118 | #ifndef TEXT_TO_SPEECH_HW_H_ |
daveyclk | 0:b33a6418e125 | 119 | #define TEXT_TO_SPEECH_HW_H_ |
daveyclk | 0:b33a6418e125 | 120 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 121 | * Includes |
daveyclk | 0:b33a6418e125 | 122 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 123 | #include <stddef.h> |
daveyclk | 0:b33a6418e125 | 124 | #include <stdint.h> |
daveyclk | 0:b33a6418e125 | 125 | #include <string.h> |
daveyclk | 0:b33a6418e125 | 126 | #include <stdbool.h> |
daveyclk | 0:b33a6418e125 | 127 | |
daveyclk | 0:b33a6418e125 | 128 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 129 | * Preprocessor Constants |
daveyclk | 0:b33a6418e125 | 130 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 131 | /** |
daveyclk | 0:b33a6418e125 | 132 | * Time needed for module to gets into the boot mode after reset. */ |
daveyclk | 0:b33a6418e125 | 133 | #define RESET_TO_BOOT_TIME 0.3 |
daveyclk | 0:b33a6418e125 | 134 | /** |
daveyclk | 0:b33a6418e125 | 135 | * Time needed for module to gets from boot mode into main work mode. */ |
daveyclk | 0:b33a6418e125 | 136 | #define BOOT_TO_MAIN_MODE 0.3 |
daveyclk | 0:b33a6418e125 | 137 | |
daveyclk | 0:b33a6418e125 | 138 | /** |
daveyclk | 0:b33a6418e125 | 139 | * Time needed for module to enter the standby mode */ |
daveyclk | 0:b33a6418e125 | 140 | #define STBY_MODE_ENTERY 0.05 |
daveyclk | 0:b33a6418e125 | 141 | /** |
daveyclk | 0:b33a6418e125 | 142 | * Max response time in ms - if there is no response after this amount |
daveyclk | 0:b33a6418e125 | 143 | * of time user should restart the device */ |
daveyclk | 0:b33a6418e125 | 144 | #define MAX_RESPONSE_TIME 500 |
daveyclk | 0:b33a6418e125 | 145 | /** |
daveyclk | 0:b33a6418e125 | 146 | * Maximum message size in main mode. Recomended size is 2116 but |
daveyclk | 0:b33a6418e125 | 147 | * if needed it can be resized to save the RAM space. Note that |
daveyclk | 0:b33a6418e125 | 148 | * MAIN_MESSAGE_MAX must be greater than BOOT_MESSAGE_MAX. This number decreased |
daveyclk | 0:b33a6418e125 | 149 | * by 7 also represents the maximum size of the string that can be sent in one |
daveyclk | 0:b33a6418e125 | 150 | * command. */ |
daveyclk | 0:b33a6418e125 | 151 | #define MAIN_MESSAGE_MAX 1116 |
daveyclk | 0:b33a6418e125 | 152 | |
daveyclk | 0:b33a6418e125 | 153 | /** |
daveyclk | 0:b33a6418e125 | 154 | * Maximum message size in boot mode. Recomended size is 2048 but |
daveyclk | 0:b33a6418e125 | 155 | * if needed it can be resized to save RAM space. Note that BOOT_MESSAGE_MAX |
daveyclk | 0:b33a6418e125 | 156 | * must be smaller than MAIN_MESSAGE_MAX */ |
daveyclk | 0:b33a6418e125 | 157 | #define BOOT_MESSAGE_MAX 1048 |
daveyclk | 0:b33a6418e125 | 158 | //#define BOOT_MESSAGE_MAX 1048 |
daveyclk | 0:b33a6418e125 | 159 | /** |
daveyclk | 0:b33a6418e125 | 160 | * Maximum response message max */ |
daveyclk | 0:b33a6418e125 | 161 | #define RESP_MESSAGE_MAX 24 |
daveyclk | 0:b33a6418e125 | 162 | /** |
daveyclk | 0:b33a6418e125 | 163 | * Mark for the start of message */ |
daveyclk | 0:b33a6418e125 | 164 | #define START_MESSAGE 0xAA |
daveyclk | 0:b33a6418e125 | 165 | /** |
daveyclk | 0:b33a6418e125 | 166 | * Pading data used to flash the channels */ |
daveyclk | 0:b33a6418e125 | 167 | #define PADDING_BYTE 0x00 |
daveyclk | 0:b33a6418e125 | 168 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 169 | * Configuration Constants |
daveyclk | 0:b33a6418e125 | 170 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 171 | |
daveyclk | 0:b33a6418e125 | 172 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 173 | * Macros |
daveyclk | 0:b33a6418e125 | 174 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 175 | |
daveyclk | 0:b33a6418e125 | 176 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 177 | * Typedefs |
daveyclk | 0:b33a6418e125 | 178 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 179 | /** |
daveyclk | 0:b33a6418e125 | 180 | * @struct ISC_REQ_t |
daveyclk | 0:b33a6418e125 | 181 | * @brief <h3> Request Message Structure </h3> |
daveyclk | 0:b33a6418e125 | 182 | * |
daveyclk | 0:b33a6418e125 | 183 | * @par |
daveyclk | 0:b33a6418e125 | 184 | * All messages that are received and sent by the device are termed ISC |
daveyclk | 0:b33a6418e125 | 185 | * ( Inter-System-Communication ) messages. An ISC message consists of a |
daveyclk | 0:b33a6418e125 | 186 | * fixed length header part and a variable length payload. |
daveyclk | 0:b33a6418e125 | 187 | */ |
daveyclk | 0:b33a6418e125 | 188 | typedef struct |
daveyclk | 0:b33a6418e125 | 189 | { |
daveyclk | 0:b33a6418e125 | 190 | /** |
daveyclk | 0:b33a6418e125 | 191 | * Header Part - Message length ( including header ) |
daveyclk | 0:b33a6418e125 | 192 | * len[ 0 ] - LSB |
daveyclk | 0:b33a6418e125 | 193 | * len[ 1 ] - MSB */ |
daveyclk | 0:b33a6418e125 | 194 | uint8_t len[ 2 ]; |
daveyclk | 0:b33a6418e125 | 195 | /** |
daveyclk | 0:b33a6418e125 | 196 | * Header Part - Message code ( index ) |
daveyclk | 0:b33a6418e125 | 197 | * idx[ 0 ] - LSB |
daveyclk | 0:b33a6418e125 | 198 | * idx[ 1 ] - MSB */ |
daveyclk | 0:b33a6418e125 | 199 | uint8_t idx[ 2 ]; |
daveyclk | 0:b33a6418e125 | 200 | /** |
daveyclk | 0:b33a6418e125 | 201 | * Payload Part - Message data */ |
daveyclk | 0:b33a6418e125 | 202 | uint8_t payload[ MAIN_MESSAGE_MAX ]; |
daveyclk | 0:b33a6418e125 | 203 | |
daveyclk | 0:b33a6418e125 | 204 | }ISC_REQ_t; |
daveyclk | 0:b33a6418e125 | 205 | |
daveyclk | 0:b33a6418e125 | 206 | /** |
daveyclk | 0:b33a6418e125 | 207 | * @struct ISC_RESP_t |
daveyclk | 0:b33a6418e125 | 208 | * @brief <h3> Response Message Structure </h3> |
daveyclk | 0:b33a6418e125 | 209 | * |
daveyclk | 0:b33a6418e125 | 210 | * @par |
daveyclk | 0:b33a6418e125 | 211 | * All messages that are received and sent by the device are termed ISC |
daveyclk | 0:b33a6418e125 | 212 | * ( Inter-System-Communication ) messages. An ISC message consists of a |
daveyclk | 0:b33a6418e125 | 213 | * fixed length header part and a variable length payload. |
daveyclk | 0:b33a6418e125 | 214 | */ |
daveyclk | 0:b33a6418e125 | 215 | typedef struct |
daveyclk | 0:b33a6418e125 | 216 | { |
daveyclk | 0:b33a6418e125 | 217 | /** |
daveyclk | 0:b33a6418e125 | 218 | * Header Part - Message length ( including header ) |
daveyclk | 0:b33a6418e125 | 219 | * len[ 0 ] - LSB |
daveyclk | 0:b33a6418e125 | 220 | * len[ 1 ] - MSB */ |
daveyclk | 0:b33a6418e125 | 221 | uint8_t len[ 2 ]; |
daveyclk | 0:b33a6418e125 | 222 | /** |
daveyclk | 0:b33a6418e125 | 223 | * Header Part - Message code ( index ) |
daveyclk | 0:b33a6418e125 | 224 | * idx[ 0 ] - LSB |
daveyclk | 0:b33a6418e125 | 225 | * idx[ 1 ] - MSB */ |
daveyclk | 0:b33a6418e125 | 226 | uint8_t idx[ 2 ]; |
daveyclk | 0:b33a6418e125 | 227 | /** |
daveyclk | 0:b33a6418e125 | 228 | * Payload Part - Message data */ |
daveyclk | 0:b33a6418e125 | 229 | uint8_t payload[ RESP_MESSAGE_MAX ]; |
daveyclk | 0:b33a6418e125 | 230 | |
daveyclk | 0:b33a6418e125 | 231 | }ISC_RESP_t; |
daveyclk | 0:b33a6418e125 | 232 | |
daveyclk | 0:b33a6418e125 | 233 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 234 | * Variables |
daveyclk | 0:b33a6418e125 | 235 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 236 | |
daveyclk | 0:b33a6418e125 | 237 | /****************************************************************************** |
daveyclk | 0:b33a6418e125 | 238 | * Function Prototypes |
daveyclk | 0:b33a6418e125 | 239 | *******************************************************************************/ |
daveyclk | 0:b33a6418e125 | 240 | #ifdef __cplusplus |
daveyclk | 0:b33a6418e125 | 241 | extern "C"{ |
daveyclk | 0:b33a6418e125 | 242 | #endif |
daveyclk | 0:b33a6418e125 | 243 | /** |
daveyclk | 0:b33a6418e125 | 244 | * @brief <h3> HW Layer Initialization </h3> |
daveyclk | 0:b33a6418e125 | 245 | * |
daveyclk | 0:b33a6418e125 | 246 | * @par |
daveyclk | 0:b33a6418e125 | 247 | * Initalization of HW Layer, must be done before any other function. |
daveyclk | 0:b33a6418e125 | 248 | * This function also executes HAL layer initialization inside it self. |
daveyclk | 0:b33a6418e125 | 249 | */ |
daveyclk | 0:b33a6418e125 | 250 | void tts_hw_init( void ); |
daveyclk | 0:b33a6418e125 | 251 | |
daveyclk | 0:b33a6418e125 | 252 | /** |
daveyclk | 0:b33a6418e125 | 253 | * @brief <h3> Timer Tick </h3> |
daveyclk | 0:b33a6418e125 | 254 | * |
daveyclk | 0:b33a6418e125 | 255 | * @par |
daveyclk | 0:b33a6418e125 | 256 | * Should be placed inside the user defined interrupt routine that will call |
daveyclk | 0:b33a6418e125 | 257 | * this function every milisecond. |
daveyclk | 0:b33a6418e125 | 258 | */ |
daveyclk | 0:b33a6418e125 | 259 | void tts_tick_isr( void ); |
daveyclk | 0:b33a6418e125 | 260 | |
daveyclk | 0:b33a6418e125 | 261 | /** |
daveyclk | 0:b33a6418e125 | 262 | * @brief <h3> Mute Command </h3> |
daveyclk | 0:b33a6418e125 | 263 | * |
daveyclk | 0:b33a6418e125 | 264 | * @par |
daveyclk | 0:b33a6418e125 | 265 | * Mute using MUT pin |
daveyclk | 0:b33a6418e125 | 266 | * |
daveyclk | 0:b33a6418e125 | 267 | * @param[in] cmd ( true - mute / false - unmute ) |
daveyclk | 0:b33a6418e125 | 268 | */ |
daveyclk | 0:b33a6418e125 | 269 | void tts_mute_cmd( bool cmd ); |
daveyclk | 0:b33a6418e125 | 270 | |
daveyclk | 0:b33a6418e125 | 271 | /** |
daveyclk | 0:b33a6418e125 | 272 | * @brief <h3> Request Parser </h3> |
daveyclk | 0:b33a6418e125 | 273 | * |
daveyclk | 0:b33a6418e125 | 274 | * @par |
daveyclk | 0:b33a6418e125 | 275 | * Preparing request for writing. Loads data into output buffer and executes |
daveyclk | 0:b33a6418e125 | 276 | * write function. |
daveyclk | 0:b33a6418e125 | 277 | * |
daveyclk | 0:b33a6418e125 | 278 | * @param[in] req - valid request code |
daveyclk | 0:b33a6418e125 | 279 | * @param[in] payload - data |
daveyclk | 0:b33a6418e125 | 280 | * @param[in] pl_len - data size |
daveyclk | 0:b33a6418e125 | 281 | */ |
daveyclk | 0:b33a6418e125 | 282 | void tts_parse_req( uint16_t req, |
daveyclk | 0:b33a6418e125 | 283 | uint8_t *payload, |
daveyclk | 0:b33a6418e125 | 284 | uint16_t pl_len ); |
daveyclk | 0:b33a6418e125 | 285 | |
daveyclk | 0:b33a6418e125 | 286 | /** |
daveyclk | 0:b33a6418e125 | 287 | * @brief <h3> Boot Image Request Parser </h3> |
daveyclk | 0:b33a6418e125 | 288 | * |
daveyclk | 0:b33a6418e125 | 289 | * @par |
daveyclk | 0:b33a6418e125 | 290 | * Function is used for the boot uploading of boot image |
daveyclk | 0:b33a6418e125 | 291 | * |
daveyclk | 0:b33a6418e125 | 292 | * @param[in] payload - boot image part |
daveyclk | 0:b33a6418e125 | 293 | * @param[in] pl_len - data size |
daveyclk | 0:b33a6418e125 | 294 | */ |
daveyclk | 0:b33a6418e125 | 295 | void tts_parse_boot_img( const uint8_t *payload, |
daveyclk | 0:b33a6418e125 | 296 | uint16_t pl_len ); |
daveyclk | 0:b33a6418e125 | 297 | |
daveyclk | 0:b33a6418e125 | 298 | /** |
daveyclk | 0:b33a6418e125 | 299 | * @brief <h3> Speak Request Parser </h3> |
daveyclk | 0:b33a6418e125 | 300 | * |
daveyclk | 0:b33a6418e125 | 301 | * @par |
daveyclk | 0:b33a6418e125 | 302 | * Preparing speak request for writing. Provided word must be valid |
daveyclk | 0:b33a6418e125 | 303 | * null terminated string. Size of word must be shorter than |
daveyclk | 0:b33a6418e125 | 304 | * 2115 characters including null terminator. |
daveyclk | 0:b33a6418e125 | 305 | * |
daveyclk | 0:b33a6418e125 | 306 | * @param[in] req - speak request code |
daveyclk | 0:b33a6418e125 | 307 | * @param[in] flush_en - flash option |
daveyclk | 0:b33a6418e125 | 308 | * @param[in] word - char array |
daveyclk | 0:b33a6418e125 | 309 | * @param[in] word_len - char array length |
daveyclk | 0:b33a6418e125 | 310 | */ |
daveyclk | 0:b33a6418e125 | 311 | void tts_parse_speak_req( uint16_t req, |
daveyclk | 0:b33a6418e125 | 312 | uint8_t flush_en, |
daveyclk | 0:b33a6418e125 | 313 | char *word, |
daveyclk | 0:b33a6418e125 | 314 | uint16_t word_len ); |
daveyclk | 0:b33a6418e125 | 315 | |
daveyclk | 0:b33a6418e125 | 316 | /** |
daveyclk | 0:b33a6418e125 | 317 | * @brief <h3> Response </h3> |
daveyclk | 0:b33a6418e125 | 318 | * |
daveyclk | 0:b33a6418e125 | 319 | * @par |
daveyclk | 0:b33a6418e125 | 320 | * Cheks and pads SPI for response. If there is a response than this |
daveyclk | 0:b33a6418e125 | 321 | * function calls read response functions and fills the input buffer |
daveyclk | 0:b33a6418e125 | 322 | * with received data. |
daveyclk | 0:b33a6418e125 | 323 | * |
daveyclk | 0:b33a6418e125 | 324 | */ |
daveyclk | 0:b33a6418e125 | 325 | void tts_get_resp( void ); |
daveyclk | 0:b33a6418e125 | 326 | |
daveyclk | 0:b33a6418e125 | 327 | /** |
daveyclk | 0:b33a6418e125 | 328 | * @brief <h3> Check Response Index </h3> |
daveyclk | 0:b33a6418e125 | 329 | * |
daveyclk | 0:b33a6418e125 | 330 | * @par |
daveyclk | 0:b33a6418e125 | 331 | * Compares received response code with code provided as argument. Returns |
daveyclk | 0:b33a6418e125 | 332 | * true if codes have same value, otherwise returns false. |
daveyclk | 0:b33a6418e125 | 333 | * |
daveyclk | 0:b33a6418e125 | 334 | * @param[in] idx - response code for comparing |
daveyclk | 0:b33a6418e125 | 335 | * |
daveyclk | 0:b33a6418e125 | 336 | * @retval TRUE - codes are same |
daveyclk | 0:b33a6418e125 | 337 | * @retval FLASE - codes are different |
daveyclk | 0:b33a6418e125 | 338 | */ |
daveyclk | 0:b33a6418e125 | 339 | bool tts_rsp_chk( uint16_t idx ); |
daveyclk | 0:b33a6418e125 | 340 | |
daveyclk | 0:b33a6418e125 | 341 | /** |
daveyclk | 0:b33a6418e125 | 342 | * @brief <h3> Response Index </h3> |
daveyclk | 0:b33a6418e125 | 343 | * |
daveyclk | 0:b33a6418e125 | 344 | * @par |
daveyclk | 0:b33a6418e125 | 345 | * Returns last received response code. |
daveyclk | 0:b33a6418e125 | 346 | * |
daveyclk | 0:b33a6418e125 | 347 | * @return ( 0x0000 ~ 0xFFFF ) |
daveyclk | 0:b33a6418e125 | 348 | */ |
daveyclk | 0:b33a6418e125 | 349 | uint16_t tts_rsp_idx( void ); |
daveyclk | 0:b33a6418e125 | 350 | |
daveyclk | 0:b33a6418e125 | 351 | /** |
daveyclk | 0:b33a6418e125 | 352 | * @brief <h3> Response Data </h3> |
daveyclk | 0:b33a6418e125 | 353 | * |
daveyclk | 0:b33a6418e125 | 354 | * @par |
daveyclk | 0:b33a6418e125 | 355 | * Fill given buffer with last received response data if there is data at all. |
daveyclk | 0:b33a6418e125 | 356 | * Size of buffer must be big enough. |
daveyclk | 0:b33a6418e125 | 357 | * |
daveyclk | 0:b33a6418e125 | 358 | * @param[out] buffer |
daveyclk | 0:b33a6418e125 | 359 | */ |
daveyclk | 0:b33a6418e125 | 360 | void tts_rsp_data( uint8_t *buffer ); |
daveyclk | 0:b33a6418e125 | 361 | |
daveyclk | 0:b33a6418e125 | 362 | #ifdef __cplusplus |
daveyclk | 0:b33a6418e125 | 363 | } // extern "C" |
daveyclk | 0:b33a6418e125 | 364 | #endif |
daveyclk | 0:b33a6418e125 | 365 | |
daveyclk | 0:b33a6418e125 | 366 | #endif |
daveyclk | 0:b33a6418e125 | 367 | |
daveyclk | 0:b33a6418e125 | 368 | |
daveyclk | 0:b33a6418e125 | 369 | /*** End of File **************************************************************/ |