Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Hello_BLE F446RE-BLE
Fork of X_NUCLEO_IDB0XA1 by
bluenrg_IFR.c
00001 #ifndef __MBED__ 00002 00003 #include "hal.h" 00004 #include "hal_types.h" 00005 #include "ble_status.h" 00006 #include "bluenrg_updater_aci.h" 00007 #include "bluenrg_utils.h" 00008 00009 /************** Do not change this define section ************/ 00010 00011 #define BLUENRG_32_MHZ 1 00012 #define BLUENRG_32_MHZ_RO 2 00013 #define BLUENRG_16_MHZ 3 00014 #define BLUENRG_16_MHZ_RO 4 00015 #define BLUENRG_CUSTOM_CONFIG 5 00016 00017 #define MASTER_SCA_500ppm 0 // 251 ppm to 500 ppm 00018 #define MASTER_SCA_250ppm 1 // 151 ppm to 250 ppm 00019 #define MASTER_SCA_150ppm 2 // 101 ppm to 150 ppm 00020 #define MASTER_SCA_100ppm 3 // 76 ppm to 100 ppm 00021 #define MASTER_SCA_75ppm 4 // 51 ppm to 75 ppm 00022 #define MASTER_SCA_50ppm 5 // 31 ppm to 50 ppm 00023 #define MASTER_SCA_30ppm 6 // 21 ppm to 30 ppm 00024 #define MASTER_SCA_20ppm 7 // 0 ppm to 20 ppm 00025 00026 #define SMPS_4MHz 0 00027 #define SMPS_8MHz 1 00028 00029 #ifndef SMPS_FREQUENCY 00030 #define SMPS_FREQUENCY SMPS_4MHz 00031 #endif 00032 00033 #if !BLUENRG_MS && (SMPS_FREQUENCY == SMPS_8MHz) 00034 #error Unsupported SMPS_FREQUENCY 00035 #endif 00036 00037 /************************************************************/ 00038 00039 00040 /************** Definitions that can be changed. ************/ 00041 00042 #define STACK_MODE 2 00043 #define SLAVE_SCA_PPM 100 00044 #define MASTER_SCA MASTER_SCA_100ppm 00045 #define HS_STARTUP_TIME_US 512 00046 #define DAY 11 00047 #define MONTH 02 00048 #define YEAR 15 00049 /************************************************************/ 00050 00051 /* 00052 * IMPORTANT! 00053 * This IFR configurations are only for BlueNRG Firmware v6.4 and 7.1. 00054 */ 00055 00056 #if BLUENRG_CONFIG == BLUENRG_32_MHZ 00057 00058 const IFR_config_TypeDef IFR_config = { 00059 #if BLUENRG_MS 00060 #if SMPS_FREQUENCY == SMPS_4MHz 00061 0x02,0x3A,0x44,0x02, 00062 0x34,0x5B,0x02,0x39, 00063 0xA2,0x02,0x3C,0x20, 00064 0x00,0xFF,0xFF,0xFF, 00065 #elif SMPS_FREQUENCY == SMPS_8MHz 00066 0x02,0x3A,0x44,0x02, 00067 0x34,0x5B,0x02,0x39, 00068 0xAE,0x00,0xFF,0xFF, 00069 0x00,0xFF,0xFF,0xFF, 00070 #else 00071 #error Incorrect SMPS_FREQUENCY 00072 #endif /* SMPS_FREQUENCY */ 00073 #else 00074 0x02,0x3A,0x5C,0x02, 00075 0x39,0xA2,0x02,0x34, 00076 0x5B,0x00,0xFF,0xFF, 00077 0xFF,0xFF,0xFF,0xFF, 00078 #endif /* BLUENRG_MS */ 00079 0xFF,0xFF,0xFF,0xFF, 00080 0xFF,0xFF,0xFF,0xFF, 00081 0xFF,0xFF,0xFF,0xFF, 00082 0xFF,0xFF,0xFF,0xFF, 00083 0xFF,0xFF,0xFF,0xFF, 00084 0xFF,0xFF,0xFF,0xFF, 00085 0xFF,0xFF,0xFF,0xFF, 00086 0xFF,0xFF,0xFF,0xFF, 00087 0xFF,0xFF,0xFF,0xFF, 00088 0xFF,0xFF,0xFF,0xFF, 00089 0xFF,0xFF,0xFF,0xFF, 00090 0xFF,0xFF,0xFF,0xFF, 00091 00092 0x02,0x1C,0x43,0x02, 00093 0x20,0xEC,0x02,0x1F, 00094 0xAF,0x00,0xFF,0xFF, 00095 0xFF,0xFF,0xFF,0xFF, 00096 0xFF,0xFF,0xFF,0xFF, 00097 0xFF,0xFF,0xFF,0xFF, 00098 0xFF,0xFF,0xFF,0xFF, 00099 0xFF,0xFF,0xFF,0xFF, 00100 0xFF,0xFF,0xFF,0xFF, 00101 0xFF,0xFF,0xFF,0xFF, 00102 0xFF,0xFF,0xFF,0xFF, 00103 0xFF,0xFF,0xFF,0xFF, 00104 0xFF,0xFF,0xFF,0xFF, 00105 0xFF,0xFF,0xFF,0xFF, 00106 0xFF,0xFF,0xFF,0xFF, 00107 0xFF,0xFF,0xFF,0xFF, 00108 00109 STACK_MODE, 00110 0xFF,0xFF,0xFF, 00111 0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF, 00112 0xFFFFFFFF, 00113 htobl(0x00190000), 00114 htobl(0x0028F5C2), 00115 htobs(SLAVE_SCA_PPM), 00116 MASTER_SCA, 00117 0xFF, 00118 htobs(FROM_US_TO_SYS_TIME(HS_STARTUP_TIME_US)), 00119 0xFF,0xFF, 00120 0xFFFFFFFF, 00121 0xFF, 00122 INT_TO_BCD(YEAR),INT_TO_BCD(MONTH),INT_TO_BCD(DAY), 00123 0xFFFFFFFF, 00124 0xFFFFFFFF, 00125 0xFFFFFFFF, 00126 0xFFFFFFFF, 00127 0xFFFFFFFF 00128 }; 00129 00130 #elif BLUENRG_CONFIG == BLUENRG_32_MHZ_RO 00131 00132 const IFR_config_TypeDef IFR_config = { 00133 #if BLUENRG_MS 00134 #if SMPS_FREQUENCY == SMPS_4MHz 00135 0x02,0x3A,0x44,0x02, 00136 0x34,0x1B,0x02,0x39, 00137 0xA2,0x02,0x3C,0x20, 00138 0x00,0xFF,0xFF,0xFF, 00139 #elif SMPS_FREQUENCY == SMPS_8MHz 00140 0x02,0x3A,0x44,0x02, 00141 0x34,0x1B,0x02,0x39, 00142 0xAE,0x00,0xFF,0xFF, 00143 0x00,0xFF,0xFF,0xFF, 00144 #else 00145 #error Incorrect SMPS_FREQUENCY 00146 #endif /* SMPS_FREQUENCY */ 00147 #else 00148 0x02,0x3A,0x5C,0x02, 00149 0x39,0xA2,0x02,0x34, 00150 0x1B,0x00,0xFF,0xFF, 00151 0xFF,0xFF,0xFF,0xFF, 00152 #endif /* BLUENRG_MS */ 00153 0xFF,0xFF,0xFF,0xFF, 00154 0xFF,0xFF,0xFF,0xFF, 00155 0xFF,0xFF,0xFF,0xFF, 00156 0xFF,0xFF,0xFF,0xFF, 00157 0xFF,0xFF,0xFF,0xFF, 00158 0xFF,0xFF,0xFF,0xFF, 00159 0xFF,0xFF,0xFF,0xFF, 00160 0xFF,0xFF,0xFF,0xFF, 00161 0xFF,0xFF,0xFF,0xFF, 00162 0xFF,0xFF,0xFF,0xFF, 00163 0xFF,0xFF,0xFF,0xFF, 00164 0xFF,0xFF,0xFF,0xFF, 00165 00166 0x02,0x1C,0x43,0x02, 00167 0x20,0xEC,0x02,0x1F, 00168 0xAF,0x00,0xFF,0xFF, 00169 0xFF,0xFF,0xFF,0xFF, 00170 0xFF,0xFF,0xFF,0xFF, 00171 0xFF,0xFF,0xFF,0xFF, 00172 0xFF,0xFF,0xFF,0xFF, 00173 0xFF,0xFF,0xFF,0xFF, 00174 0xFF,0xFF,0xFF,0xFF, 00175 0xFF,0xFF,0xFF,0xFF, 00176 0xFF,0xFF,0xFF,0xFF, 00177 0xFF,0xFF,0xFF,0xFF, 00178 0xFF,0xFF,0xFF,0xFF, 00179 0xFF,0xFF,0xFF,0xFF, 00180 0xFF,0xFF,0xFF,0xFF, 00181 0xFF,0xFF,0xFF,0xFF, 00182 00183 STACK_MODE, 00184 0xFF,0xFF,0xFF, 00185 0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF, 00186 0xFFFFFFFF, 00187 0xFFFFFFFF, 00188 0xFFFFFFFF, 00189 htobs(0x01F4), 00190 0x00, 00191 0xFF, 00192 htobs(FROM_US_TO_SYS_TIME(HS_STARTUP_TIME_US)), 00193 0xFF,0xFF, 00194 0xFFFFFFFF, 00195 0xFF, 00196 INT_TO_BCD(YEAR),INT_TO_BCD(MONTH),INT_TO_BCD(DAY), 00197 0xFFFFFFFF, 00198 0xFFFFFFFF, 00199 0xFFFFFFFF, 00200 0xFFFFFFFF, 00201 0xFFFFFFFF 00202 }; 00203 00204 #elif BLUENRG_CONFIG == BLUENRG_16_MHZ 00205 00206 const IFR_config_TypeDef IFR_config = { 00207 #if BLUENRG_MS 00208 #if SMPS_FREQUENCY == SMPS_4MHz 00209 0x02,0x3A,0x40,0x02, 00210 0x34,0x5B,0x02,0x39, 00211 0xA2,0x02,0x3C,0x20, 00212 0x00,0xFF,0xFF,0xFF, 00213 #elif SMPS_FREQUENCY == SMPS_8MHz 00214 0x02,0x3A,0x40,0x02, 00215 0x34,0x5B,0x02,0x39, 00216 0xAE,0x00,0xFF,0xFF, 00217 0x00,0xFF,0xFF,0xFF, 00218 #else 00219 #error Incorrect SMPS_FREQUENCY 00220 #endif /* SMPS_FREQUENCY */ 00221 #else 00222 0x02,0x3A,0x58,0x02, 00223 0x39,0xA2,0x02,0x34, 00224 0x5B,0x00,0xFF,0xFF, 00225 0xFF,0xFF,0xFF,0xFF, 00226 #endif /* BLUENRG_MS */ 00227 0xFF,0xFF,0xFF,0xFF, 00228 0xFF,0xFF,0xFF,0xFF, 00229 0xFF,0xFF,0xFF,0xFF, 00230 0xFF,0xFF,0xFF,0xFF, 00231 0xFF,0xFF,0xFF,0xFF, 00232 0xFF,0xFF,0xFF,0xFF, 00233 0xFF,0xFF,0xFF,0xFF, 00234 0xFF,0xFF,0xFF,0xFF, 00235 0xFF,0xFF,0xFF,0xFF, 00236 0xFF,0xFF,0xFF,0xFF, 00237 0xFF,0xFF,0xFF,0xFF, 00238 0xFF,0xFF,0xFF,0xFF, 00239 00240 0x02,0x1C,0x43,0x02, 00241 0x20,0xEC,0x02,0x1F, 00242 0xAF,0x00,0xFF,0xFF, 00243 0xFF,0xFF,0xFF,0xFF, 00244 0xFF,0xFF,0xFF,0xFF, 00245 0xFF,0xFF,0xFF,0xFF, 00246 0xFF,0xFF,0xFF,0xFF, 00247 0xFF,0xFF,0xFF,0xFF, 00248 0xFF,0xFF,0xFF,0xFF, 00249 0xFF,0xFF,0xFF,0xFF, 00250 0xFF,0xFF,0xFF,0xFF, 00251 0xFF,0xFF,0xFF,0xFF, 00252 0xFF,0xFF,0xFF,0xFF, 00253 0xFF,0xFF,0xFF,0xFF, 00254 0xFF,0xFF,0xFF,0xFF, 00255 0xFF,0xFF,0xFF,0xFF, 00256 00257 STACK_MODE, 00258 0xFF,0xFF,0xFF, 00259 0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF, 00260 0xFFFFFFFF, 00261 htobl(0x00190000), 00262 htobl(0x0028F5C2), 00263 htobs(SLAVE_SCA_PPM), 00264 MASTER_SCA, 00265 0xFF, 00266 htobs(FROM_US_TO_SYS_TIME(HS_STARTUP_TIME_US)), 00267 0xFF,0xFF, 00268 0xFFFFFFFF, 00269 0xFF, 00270 INT_TO_BCD(YEAR),INT_TO_BCD(MONTH),INT_TO_BCD(DAY), 00271 0xFFFFFFFF, 00272 0xFFFFFFFF, 00273 0xFFFFFFFF, 00274 0xFFFFFFFF, 00275 0xFFFFFFFF 00276 00277 }; 00278 00279 #elif BLUENRG_CONFIG == BLUENRG_16_MHZ_RO 00280 00281 const IFR_config_TypeDef IFR_config = { 00282 #if BLUENRG_MS 00283 #if SMPS_FREQUENCY == SMPS_4MHz 00284 0x02,0x3A,0x40,0x02, 00285 0x34,0x1B,0x02,0x39, 00286 0xA2,0x02,0x3C,0x20, 00287 0x00,0xFF,0xFF,0xFF, 00288 #elif SMPS_FREQUENCY == SMPS_8MHz 00289 0x02,0x3A,0x40,0x02, 00290 0x34,0x1B,0x02,0x39, 00291 0xAE,0x00,0xFF,0xFF, 00292 0x00,0xFF,0xFF,0xFF, 00293 #else 00294 #error Incorrect SMPS_FREQUENCY 00295 #endif /* SMPS_FREQUENCY */ 00296 #else 00297 0x02,0x3A,0x58,0x02, 00298 0x39,0xA2,0x02,0x34, 00299 0x1B,0x00,0xFF,0xFF, 00300 0xFF,0xFF,0xFF,0xFF, 00301 #endif /* BLUENRG_MS */ 00302 0xFF,0xFF,0xFF,0xFF, 00303 0xFF,0xFF,0xFF,0xFF, 00304 0xFF,0xFF,0xFF,0xFF, 00305 0xFF,0xFF,0xFF,0xFF, 00306 0xFF,0xFF,0xFF,0xFF, 00307 0xFF,0xFF,0xFF,0xFF, 00308 0xFF,0xFF,0xFF,0xFF, 00309 0xFF,0xFF,0xFF,0xFF, 00310 0xFF,0xFF,0xFF,0xFF, 00311 0xFF,0xFF,0xFF,0xFF, 00312 0xFF,0xFF,0xFF,0xFF, 00313 0xFF,0xFF,0xFF,0xFF, 00314 00315 0x02,0x1C,0x43,0x02, 00316 0x20,0xEC,0x02,0x1F, 00317 0xAF,0x00,0xFF,0xFF, 00318 0xFF,0xFF,0xFF,0xFF, 00319 0xFF,0xFF,0xFF,0xFF, 00320 0xFF,0xFF,0xFF,0xFF, 00321 0xFF,0xFF,0xFF,0xFF, 00322 0xFF,0xFF,0xFF,0xFF, 00323 0xFF,0xFF,0xFF,0xFF, 00324 0xFF,0xFF,0xFF,0xFF, 00325 0xFF,0xFF,0xFF,0xFF, 00326 0xFF,0xFF,0xFF,0xFF, 00327 0xFF,0xFF,0xFF,0xFF, 00328 0xFF,0xFF,0xFF,0xFF, 00329 0xFF,0xFF,0xFF,0xFF, 00330 0xFF,0xFF,0xFF,0xFF, 00331 00332 STACK_MODE, 00333 0xFF,0xFF,0xFF, 00334 0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF, 00335 0xFFFFFFFF, 00336 0xFFFFFFFF, 00337 0xFFFFFFFF, 00338 htobs(0x01F4), 00339 0x00, 00340 0xFF, 00341 htobs(FROM_US_TO_SYS_TIME(HS_STARTUP_TIME_US)), 00342 0xFF,0xFF, 00343 0xFFFFFFFF, 00344 0xFF, 00345 INT_TO_BCD(YEAR),INT_TO_BCD(MONTH),INT_TO_BCD(DAY), 00346 0xFFFFFFFF, 00347 0xFFFFFFFF, 00348 0xFFFFFFFF, 00349 0xFFFFFFFF, 00350 0xFFFFFFFF 00351 }; 00352 00353 #elif BLUENRG_CONFIG == BLUENRG_CUSTOM_CONFIG 00354 /* Copy and paste here your custom IFR_config structure. It can be generated 00355 * with BlueNRG GUI. 00356 */ 00357 #else 00358 #warning BLUENRG_CONFIG not valid 00359 #endif 00360 00361 #endif // !__MBED__
Generated on Tue Jul 12 2022 17:16:07 by
1.7.2
