cancel
Showing results for 
Search instead for 
Did you mean: 

BlueNRG SPI1 to SPI3

Rashedul Islam
Associate III

Posted on September 18, 2017 at 11:27

Hi,

I am very new to STM32 and SPI interface. For my project I need to connect with Android apps using bluetooth from STM32. I have a STM32L476RG and X-NUCLEO-IDB05A1. I search and found a SensorDemo project. Where they used SPI1 for the BNRG_SPI_Init() function.

/***************************/

// SPI Instance

&sharpdefine BNRG_SPI_INSTANCE SPI1

&sharpdefine BNRG_SPI_CLK_ENABLE() __SPI1_CLK_ENABLE()

/****************************/

For my real project board, I have to connect it with SPI3 interface. I am using cubeMX for the starup generation. But I dont know how the sensorDemo project configured for SPI1.

Can anyone please inform me how to convert quick and efficiently for bluetooth connection from SPI1 to SPI3.

Or inshort can anyone suggest me what changes I need to SPI1 with SPI3 for the SensorDemo project?

Thanks in advance. 

1 REPLY 1
Rashedul Islam
Associate III
Posted on September 19, 2017 at 14:54

For switching from SPI1 to SPI3 ... I made the following changes(bold font) on stm32l4xx_nucleo_bluenrg.h file.

-------------------------------------------------------------------------------------------------------------------------------------

// SCLK: PB.3

#define BNRG_SPI_SCLK_PIN GPIO_PIN_10 //GPIO_PIN_3

#define BNRG_SPI_SCLK_MODE GPIO_MODE_AF_PP

#define BNRG_SPI_SCLK_PULL GPIO_PULLDOWN

#define BNRG_SPI_SCLK_SPEED GPIO_SPEED_HIGH

#define BNRG_SPI_SCLK_ALTERNATE GPIO_AF6_SPI3 //GPIO_AF5_SPI1

#define BNRG_SPI_SCLK_PORT GPIOC //GPIOB

#define BNRG_SPI_SCLK_CLK_ENABLE() __GPIOC_CLK_ENABLE() //__GPIOB_CLK_ENABLE()

// MISO (Master Input Slave Output): PA.6

#define BNRG_SPI_MISO_PIN GPIO_PIN_11 //GPIO_PIN_6

#define BNRG_SPI_MISO_MODE GPIO_MODE_AF_PP

#define BNRG_SPI_MISO_PULL GPIO_PULLUP

#define BNRG_SPI_MISO_SPEED GPIO_SPEED_HIGH

#define BNRG_SPI_MISO_ALTERNATE GPIO_AF6_SPI3 //GPIO_AF5_SPI1

#define BNRG_SPI_MISO_PORT GPIOC //GPIOA

#define BNRG_SPI_MISO_CLK_ENABLE() __GPIOC_CLK_ENABLE() //__GPIOA_CLK_ENABLE()

// MOSI (Master Output Slave Input): PA.7

#define BNRG_SPI_MOSI_PIN GPIO_PIN_12 //GPIO_PIN_7

#define BNRG_SPI_MOSI_MODE GPIO_MODE_AF_PP

#define BNRG_SPI_MOSI_PULL GPIO_NOPULL

#define BNRG_SPI_MOSI_SPEED GPIO_SPEED_HIGH

#define BNRG_SPI_MOSI_ALTERNATE GPIO_AF6_SPI3 //GPIO_AF5_SPI1

#define BNRG_SPI_MOSI_PORT GPIOC //GPIOA

#define BNRG_SPI_MOSI_CLK_ENABLE() __GPIOC_CLK_ENABLE() //__GPIOA_CLK_ENABLE()

// NSS/CSN/CS: PA.1

#define BNRG_SPI_CS_PIN GPIO_PIN_4 //GPIO_PIN_1

#define BNRG_SPI_CS_MODE GPIO_MODE_OUTPUT_PP

#define BNRG_SPI_CS_PULL GPIO_PULLUP

#define BNRG_SPI_CS_SPEED GPIO_SPEED_HIGH

#define BNRG_SPI_CS_ALTERNATE 0

#define BNRG_SPI_CS_PORT GPIOA

#define BNRG_SPI_CS_CLK_ENABLE() __GPIOA_CLK_ENABLE()

-------------------------------------------------------------------------------------------------------------------------------------

But still its not working. Can anyone suggest me what is wrong I am doing?