ST SensorTile.box传感器套件入门(5) 蓝牙连接
[复制链接]
1 前言
SensorTile.box内置一个ST BLE模块SPBTLE-1S来提供蓝牙连接功能。
SPBTLE-1S蓝牙模块采用的是ST BlueNRG-1芯片,实现了完整的BLE物理层(PHY)、数据链路层和网络/应用处理引擎,其中网络处理器基于低功耗ARM Cortex-M0内核,配备160KB闪存、有数据保留功能的24KB RAM和安全协处理器。
SPBTLE-1S主要功能特点:
- 支持Bluetooth v4.2
- 射频
- 工作电压
- 工作温度
- 认证
- SRRC认证
- BQE审批
- FCC,IC认证
- CE-RED认证
2 SPBTLE-1S系统硬件框图
SPBTLE-1S系统框图
- 基于低功耗ARM Cortex-M0内核
- 封装大小
- 对外接口
- UART(1个)
- IIC(2个)
- SPI(1个)
- 单线SBW调试接口 (1个)
- GPIO(14个)
2.1 SPBTLE-1S模块引脚定义
2.2 SensorTile.box的SPBTLE-1S BLE模块电路
Sensortile.box的SPBTLE-1S硬件连接
3 SPBTLE-1S软件架构
蓝牙核心规范将蓝牙协议栈分成Host和Controller两部分.
SPBTLE-1S蓝牙模块支持两种软件架构 Host-less mode (application processor)与Hosted mode (network processor),分别对应蓝牙规范的两种典型架构:单芯片架构与Host+Controller双芯片标准架构。
- Host-less mode (application processor) 《==》 单芯片架构
- 用户应用程序直接运行在SPBTLE-1S内部
- host和controller之间直接通过API来交互
- Hosted mode (network processor) 《==》Host+Controller双芯片标准架构
- 作为网络处理器模块,用户MCU通过SPI或者UART来操作SPBTLE-1S模块。
- Host跑在AP上,Controller跑在蓝牙模块上,两者之间通过主机控制接口协议(HCI)进行通信
3.1 SensorTile.box BLE软件功能实现
SensorTile.box中采用的是SPBTLE-1S蓝牙模块的Hosted mode (network processor) ,Host运行在STM32L4R9+ MCU上面,通过HCI接口(基于SPI)来实现BLE功能。
STM32 BlueNRG HCI Transport Layer interface
3.1.1 HCI接口初始化
hci_tl_interface.c
/**
* [url=home.php?mod=space&uid=159083]@brief[/url] Initializes the peripherals communication with the BlueNRG
* Expansion Board (via SPI, I2C, USART, ...)
*
* @param void* Pointer to configuration struct
* @retval int32_t Status
*/
int32_t HCI_TL_SPI_Init(void* pConf)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
HAL_PWREx_EnableVddIO2();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure EXTI Line */
GPIO_InitStruct.Pin = HCI_TL_SPI_EXTI_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(HCI_TL_SPI_EXTI_PORT, &GPIO_InitStruct);
/*Configure CS & RESET Line */
GPIO_InitStruct.Pin = HCI_TL_RST_PIN ;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(HCI_TL_RST_PORT, &GPIO_InitStruct);
GPIO_InitStruct.Pin = HCI_TL_SPI_CS_PIN ;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(HCI_TL_SPI_CS_PORT, &GPIO_InitStruct);
return BSP_SPI_Init();
}
5 参考
- DS12065 Very low power application processor module for Bluetooth® Low Energy v4.2
|