当前位置:数码通 > 数码

RT

来源于 数码通 2023-09-30 20:18

RTT zephyr_polling 包 Bluenrg2 蓝牙芯片启动流程


《开源之夏》《蓝牙HOST协议栈zephyr_polling改进》项目个人记录

新人个人参与项目记录

项目软件包地址:RTT_PACKAGE_zephyr_polling

SPI 接口的实现已于之前完成。为了让zephyr_polling在Bluenrg2上运行,下一步是实现其特殊的芯片启动流程。


蓝牙芯片启动流程


在使用标准 HCI 命令控制设备进行蓝牙操作之前,需要提前通过 VS Command 对设备进行配置。只有正确配置的设备才能正常使用。

芯片厂家只卖芯片,不关注外围电路和具体的产品形态。这些都是由特定的ODM制造商实现的。即芯片厂商提供一款带有HCI蓝牙功能的芯片,ODM设计电路和产品,然后通过HCI与芯片进行交互。事实上,每个ODM厂商的需求都是不同的。为了满足不同客户的需求,减少与客户接口的需要,芯片制造商必须基于同一套代码提供一系列的配置参数。 满足不同ODM厂商的需求。

配置可以包括:固件烧录(有些没有FLASH的蓝牙芯片每次上电都需要重新烧录)、蓝牙地址配置、硬件接口配置(如RF接口、晶振类型等,有些蓝牙芯片需要)、波特率配置(HCI一般为UART接口,默认为115200)以及芯片要求,按厂家要求其他参数配置。

另外,对于一些带有Flash的芯片,可以将配置参数预先烧入Flash中。使用时无需配置任何参数。可以直接通过HCI接口使用。

zephyr_polling协议栈提供Boot流程接口和Prepare流程接口,可以根据实际芯片需求实现启动配置。

"准备_事件进程,步骤:%d ",步骤);
8开关(步骤)
9{
10案例1://立即关闭主机
11bluenrg2_config_set_public_addr() ;//step2set_public_addr
12step=2;
13break;
14case2:
15蓝色nrg2_set_tx_power_level(1,4);/ /step3set_public_addr
16step=3;
17break;
18case3:
19bluenrg2_gatt_init(); //步骤4gatt_ini
20step=4;
21break;
22case4:
23bluenrg2_gap_init();//step5gap_ini
24步=5;
25break;
26case5:
27bt_hci_set_prepare_ready();//完成准备
28步=0;
29;
30}
31}
32}
33}

启动流程注册

将上述实现的启动流程的函数卸载到bt_hci_chipset_driver结构体中,供协议栈调用注册。

1静态常量结构bt_hci_chipset_driverchipset_drv={
2init_w k,boot_start,prepare_start,event_process,
3};
4//publicdrvAPI
5conststructbt_hci_chipset_driver*bt_hci_chipset_impl_local_instance( void)
6
{
7返回&chipset_drv;
8 }


验证


虽然完成 HCI 接口时 Beacon 例程已成功运行,但 Beacon 例程不需要芯片组启动配置过程(运行时启用common 空白回调)。运行外设的心率例程来验证 Bluenrg2 蓝牙芯片的启动过程。

1|/
2-RT 线程Operati ng系统
3/|5.0.1 buildSep20202322:16:27
42006-2022版权所有 RT-Threadteam
5do 组件初始化。
6initializerti_board_end:0完成
7初始化m32l4_hw_lptim_init:0完成
8initializefinsh_system_init: 完成
9msh>zephyr
10zephyr_polling_init
11bt_init_hci_driver
12SPI_init_process sdevice_name:spi10,spi_name:spi1,速率:1000000,数据位:8,LSB_MSB:1,Master_Slave: ,CPOL:0,CPHA:1
13 SPI_init_processcs_pin_num:1,irq_pin_num:0
14hci_driver_open,SPI_config_finish
15I:(bt_hci_core)hci_init():3230:工作开始。
16msh>prepare_event_流程,步骤:1
17prepare_event_process,步骤:2
18prepare_event_process,步骤:3
19prepare_event_process,步骤:4
20prepare_event_process,步骤:5
21I:(bt_hci_core)hci_init_end():3205:工作结束。
22E:(bt_s mp)smp_self_test():5695:smp_self_teststart
23I:(bt_hci_core)bt_dev_show_info():3008:身份:02:8000:00:f5(public)
24I:(bt_hci_core)b t_dev_show_info():3042:HCI : 版本5.2(0x0b)修订版0x1222,制造商 0x0030

25I:(bt_hci_core)bt_dev_show_info():3044:LMP :版本5.2(0x0b)subver0x 001 5
26蓝牙已初始化
27广告成功启动
28已连接
29BAS通知已启用
30 HRS 通知已启用


prepare_event_process步骤日志输出正常,设备连接、电池服务、心率服务正常。

原标题:RT-Thread平台zephyr_polling软件包Bluenrg2蓝牙芯片启动流程

文章来源:【微信公众号:RTThread物联网操作系统】欢迎添加关注!转载文章时请注明出处。

-->
登录后参与评论