Skip to content

Commit 02ff3a6

Browse files
committed
SPISettings managements
Signed-off-by: Frederic Pillon <[email protected]>
1 parent c4f359a commit 02ff3a6

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

src/utility/HCISpiTransport.cpp

+9-10
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@
2121

2222
volatile int data_avail = 0;
2323

24-
HCISpiTransportClass::HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, unsigned long frequency, int spi_mode) :
24+
HCISpiTransportClass::HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, uint32_t frequency, uint8_t spi_mode) :
2525
_spi(&spi),
2626
_ble_chip(ble_chip),
2727
_cs_pin(cs_pin),
2828
_spi_irq(spi_irq),
29-
_ble_rst(ble_rst),
30-
_frequency(frequency),
31-
_spi_mode(spi_mode)
29+
_ble_rst(ble_rst)
3230
{
31+
_spiSettings = SPISettings(frequency, (BitOrder)BLE_SPI_BYTE_ORDER, spi_mode);
3332
_read_index = 0;
3433
_write_index = 0;
3534
_write_index_initial = 0;
@@ -125,7 +124,7 @@ int HCISpiTransportClass::available()
125124
detachInterrupt(_spi_irq);
126125
}
127126

128-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
127+
_spi->beginTransaction(_spiSettings);
129128

130129
digitalWrite(_cs_pin, LOW);
131130

@@ -337,7 +336,7 @@ size_t HCISpiTransportClass::write(const uint8_t* data, size_t length)
337336
{
338337
result = 0;
339338

340-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
339+
_spi->beginTransaction(_spiSettings);
341340

342341
digitalWrite(_cs_pin, LOW);
343342

@@ -376,7 +375,7 @@ size_t HCISpiTransportClass::write(const uint8_t* data, size_t length)
376375

377376
detachInterrupt(_spi_irq);
378377

379-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
378+
_spi->beginTransaction(_spiSettings);
380379

381380
digitalWrite(_cs_pin, LOW);
382381

@@ -458,7 +457,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
458457
{
459458
uint8_t header_master[5] = {0x0b, 0x00, 0x00, 0x00, 0x00};
460459

461-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
460+
_spi->beginTransaction(_spiSettings);
462461

463462
digitalWrite(_cs_pin, LOW);
464463

@@ -526,7 +525,7 @@ void HCISpiTransportClass::wait_for_enable_ll_only()
526525
{
527526
uint8_t header_master[5] = {0x0b, 0x00, 0x00, 0x00, 0x00};
528527

529-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
528+
_spi->beginTransaction(_spiSettings);
530529

531530
digitalWrite(_cs_pin, LOW);
532531

@@ -580,7 +579,7 @@ void HCISpiTransportClass::enable_ll_only()
580579
{
581580
result = 0;
582581

583-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
582+
_spi->beginTransaction(_spiSettings);
584583

585584
digitalWrite(_cs_pin, LOW);
586585

src/utility/HCISpiTransport.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@ typedef enum BLEChip_s {
2929
BLUENRG_M2SP
3030
} BLEChip_t;
3131

32+
#ifndef BLE_SPI_BYTE_ORDER
33+
#define BLE_SPI_BYTE_ORDER MSBFIRST
34+
#endif
3235
#define BLE_MODULE_SPI_BUFFER_SIZE 128
3336

3437
class HCISpiTransportClass : public HCITransportInterface {
3538
public:
36-
HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, unsigned long frequency, int spi_mode);
39+
HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, uint32_t frequency, uint8_t spi_mode);
3740
virtual ~HCISpiTransportClass();
3841

3942
virtual int begin();
@@ -52,12 +55,11 @@ class HCISpiTransportClass : public HCITransportInterface {
5255
void wait_for_enable_ll_only();
5356
void enable_ll_only();
5457
SPIClass* _spi;
58+
SPISettings _spiSettings;
5559
BLEChip_t _ble_chip;
5660
uint8_t _cs_pin;
5761
uint8_t _spi_irq;
5862
uint8_t _ble_rst;
59-
unsigned long _frequency;
60-
int _spi_mode;
6163
uint8_t _rxbuff[BLE_MODULE_SPI_BUFFER_SIZE];
6264
uint16_t _read_index;
6365
uint16_t _write_index;

0 commit comments

Comments
 (0)