@@ -67,10 +67,10 @@ int HCISpiTransportClass::begin()
6767 digitalWrite (_ble_rst, HIGH);
6868 delay (5 );
6969
70- if (_ble_chip == SPBTLE_RF || _ble_chip == BLUENRG_M0 || _ble_chip == BLUENRG_LP) {
70+ if (_ble_chip == SPBTLE_RF || _ble_chip == BLUENRG_M0 || _ble_chip == BLUENRG_LP || _ble_chip == BLUENRG_M2SP ) {
7171 // Wait for Blue Initialize
7272 wait_for_blue_initialize ();
73- } else if (_ble_chip == SPBTLE_1S || _ble_chip == BLUENRG_M2SP ) {
73+ } else if (_ble_chip == SPBTLE_1S) {
7474 // Wait a while for the reset of the BLE module
7575 delay (300 );
7676 } else {
@@ -146,7 +146,7 @@ int HCISpiTransportClass::available()
146146
147147 /* Read the response */
148148 for (int j = 0 ; j < byte_count; j++) {
149- _rxbuff[_write_index_initial] = _spi->transfer (0xFF );
149+ _rxbuff[_write_index_initial] = _spi->transfer (0x00 );
150150 _write_index_initial++;
151151 }
152152
@@ -172,7 +172,7 @@ int HCISpiTransportClass::available()
172172
173173 /* Read the response */
174174 for (int j = 0 ; j < byte_count; j++) {
175- _rxbuff[_write_index] = _spi->transfer (0xFF );
175+ _rxbuff[_write_index] = _spi->transfer (0x00 );
176176 _write_index++;
177177 }
178178 }
@@ -190,7 +190,7 @@ int HCISpiTransportClass::available()
190190
191191 /* Read the response */
192192 for (int j = 0 ; j < byte_count; j++) {
193- _rxbuff[_write_index_initial] = _spi->transfer (0xFF );
193+ _rxbuff[_write_index_initial] = _spi->transfer (0x00 );
194194 _write_index_initial++;
195195 }
196196
@@ -217,7 +217,7 @@ int HCISpiTransportClass::available()
217217
218218 /* Read the response */
219219 for (int j = 0 ; j < byte_count; j++) {
220- _rxbuff[_write_index] = _spi->transfer (0xFF );
220+ _rxbuff[_write_index] = _spi->transfer (0x00 );
221221 _write_index++;
222222 }
223223 }
@@ -234,11 +234,15 @@ int HCISpiTransportClass::available()
234234 }
235235
236236 if (ble_reset) {
237- if (_ble_chip == SPBTLE_RF || _ble_chip == BLUENRG_M0 || _ble_chip == BLUENRG_LP) {
237+ if (_ble_chip == BLUENRG_M2SP) {
238+ wait_for_blue_initialize ();
239+ }
240+
241+ if (_ble_chip == SPBTLE_RF || _ble_chip == BLUENRG_M0 || _ble_chip == BLUENRG_LP || _ble_chip == BLUENRG_M2SP) {
238242 /* BLE chip was reset: we need to enable LL_ONLY */
239243 enable_ll_only ();
240244 wait_for_enable_ll_only ();
241- } else if (_ble_chip == SPBTLE_1S || _ble_chip == BLUENRG_M2SP ) {
245+ } else if (_ble_chip == SPBTLE_1S) {
242246 /* BLE chip was reset: we need to wait for a while */
243247 delay (300 );
244248 }
@@ -447,7 +451,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
447451 /* Read the response */
448452 if (byte_count == 6 ) {
449453 for (int j = 0 ; j < byte_count; j++) {
450- event[j] = _spi->transfer (0xFF );
454+ event[j] = _spi->transfer (0x00 );
451455 }
452456
453457 if (event[0 ] == 0x04 &&
@@ -460,7 +464,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
460464 }
461465 } else {
462466 for (int j = 0 ; j < byte_count; j++) {
463- _spi->transfer (0xFF );
467+ _spi->transfer (0x00 );
464468 }
465469 }
466470 }
@@ -472,7 +476,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
472476 /* Read the response */
473477 if (byte_count == 6 ) {
474478 for (int j = 0 ; j < byte_count; j++) {
475- event[j] = _spi->transfer (0xFF );
479+ event[j] = _spi->transfer (0x00 );
476480 }
477481
478482 if (event[0 ] == 0x04 &&
@@ -485,7 +489,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
485489 }
486490 } else {
487491 for (int j = 0 ; j < byte_count; j++) {
488- _spi->transfer (0xFF );
492+ _spi->transfer (0x00 );
489493 }
490494 }
491495 }
@@ -496,7 +500,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
496500 /* Read the response */
497501 if (byte_count == 7 ) {
498502 for (int j = 0 ; j < byte_count; j++) {
499- event[j] = _spi->transfer (0xFF );
503+ event[j] = _spi->transfer (0x00 );
500504 }
501505
502506 if (event[0 ] == 0x82 &&
@@ -510,7 +514,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
510514 }
511515 } else {
512516 for (int j = 0 ; j < byte_count; j++) {
513- _spi->transfer (0xFF );
517+ _spi->transfer (0x00 );
514518 }
515519 }
516520 }
@@ -563,7 +567,7 @@ void HCISpiTransportClass::wait_for_enable_ll_only()
563567 if (byte_count > 0 ) {
564568 /* Read the response */
565569 for (int j = 0 ; j < byte_count; j++) {
566- data[j] = _spi->transfer (0xFF );
570+ data[j] = _spi->transfer (0x00 );
567571 }
568572
569573 if (byte_count >= 7 ) {
@@ -585,7 +589,7 @@ void HCISpiTransportClass::wait_for_enable_ll_only()
585589 if (byte_count > 0 ) {
586590 /* Read the response */
587591 for (int j = 0 ; j < byte_count; j++) {
588- data[j] = _spi->transfer (0xFF );
592+ data[j] = _spi->transfer (0x00 );
589593 }
590594
591595 if (byte_count >= 7 ) {
@@ -725,7 +729,7 @@ void HCISpiTransportClass::wait_for_aci_gatt_init()
725729 if (byte_count > 0 ) {
726730 /* Read the response */
727731 for (int j = 0 ; j < byte_count; j++) {
728- data[j] = _spi->transfer (0xFF );
732+ data[j] = _spi->transfer (0x00 );
729733 }
730734
731735 if (byte_count >= 7 ) {
@@ -747,7 +751,7 @@ void HCISpiTransportClass::wait_for_aci_gatt_init()
747751 if (byte_count > 0 ) {
748752 /* Read the response */
749753 for (int j = 0 ; j < byte_count; j++) {
750- data[j] = _spi->transfer (0xFF );
754+ data[j] = _spi->transfer (0x00 );
751755 }
752756
753757 if (byte_count >= 7 ) {
@@ -887,7 +891,7 @@ void HCISpiTransportClass::wait_for_aci_gap_init()
887891 if (byte_count > 0 ) {
888892 /* Read the response */
889893 for (int j = 0 ; j < byte_count; j++) {
890- data[j] = _spi->transfer (0xFF );
894+ data[j] = _spi->transfer (0x00 );
891895 }
892896
893897 if (byte_count >= 13 ) {
@@ -909,7 +913,7 @@ void HCISpiTransportClass::wait_for_aci_gap_init()
909913 if (byte_count > 0 ) {
910914 /* Read the response */
911915 for (int j = 0 ; j < byte_count; j++) {
912- data[j] = _spi->transfer (0xFF );
916+ data[j] = _spi->transfer (0x00 );
913917 }
914918
915919 if (byte_count >= 13 ) {
@@ -1058,7 +1062,7 @@ void HCISpiTransportClass::wait_for_aci_read_config_parameter()
10581062 if (byte_count > 0 ) {
10591063 /* Read the response */
10601064 for (int j = 0 ; j < byte_count; j++) {
1061- data[j] = _spi->transfer (0xFF );
1065+ data[j] = _spi->transfer (0x00 );
10621066 }
10631067
10641068 if (byte_count >= 13 ) {
@@ -1081,7 +1085,7 @@ void HCISpiTransportClass::wait_for_aci_read_config_parameter()
10811085 if (byte_count > 0 ) {
10821086 /* Read the response */
10831087 for (int j = 0 ; j < byte_count; j++) {
1084- data[j] = _spi->transfer (0xFF );
1088+ data[j] = _spi->transfer (0x00 );
10851089 }
10861090
10871091 if (byte_count >= 14 ) {
@@ -1293,7 +1297,9 @@ void HCISpiTransportClass::wait_for_set_address()
12931297 uint8_t data[15 ];
12941298 int status = 0 ;
12951299
1296- if (_ble_chip != BLUENRG_LP) return ;
1300+ if (_ble_chip != BLUENRG_LP) {
1301+ return ;
1302+ }
12971303
12981304 do {
12991305 while (!data_avail);
@@ -1321,7 +1327,7 @@ void HCISpiTransportClass::wait_for_set_address()
13211327 if (byte_count > 0 ) {
13221328 /* Read the response */
13231329 for (int j = 0 ; j < byte_count; j++) {
1324- data[j] = _spi->transfer (0xFF );
1330+ data[j] = _spi->transfer (0x00 );
13251331 }
13261332
13271333 if (byte_count >= 7 ) { // 040E0401052000
0 commit comments