ANT&BLE: ANT BLE BLIGHT¶
重要
此例程仅存在于特殊版本的SDK中,如有需要请联系Panchip。
2 环境准备¶
PAN1081 EVB一块
Type-C USB线一条(用于供电和查看串口打印Log)
硬件接线:
使用USB线,将PC USB与EVB Type-C USB(USB->UART)相连
使用杜邦线或者跳线帽将EVB上的:
TX0 与 P00相连
RX0 与 P01相连
PC软件: 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率921600
码表或者其他ANT接收设备,手机(nrf connect)
3 编译和烧录¶
例程位置:zephyr\samples_panchip\ant_plus\ant_ble_blight
编译时Board选择pan108xxb1_evb,Config选择prj.conf
使用 ZAL 工具可以对其进行编译、烧录、打开 VS Code 调试等操作。关于 ZAL 工具的详细介绍请参考:Zephyr APP Launcher 工具介绍。
4 演示说明¶
烧录成功开发板上电后程序开始广播,此时light index为0,表示未连接到light controller。
打开码表,添加车灯传感器,搜索成功后会和码表建立连接。
连接成功后light index会成为1,成为一个主灯角色(目前SDK只支持主灯,子灯会在后面的版本中支持)。并且会启动一个Share通道用于和子灯通信。
在码表进行车灯测试时会发现开发板上的RGB灯会根据指令进行变化。
4.1 电量检测¶
如果需要打开电量检测并上报,则修改sdk_config.h
中的如下宏为1即可
/* Battery power detection enable */
#define BRADAR_BATTERY_POWER_ENABLE 1
5 开发者说明¶
启用ANT模块,需要在
prj.conf
文件中添加”CONFIG_USE_PANPLAT_ANT=y”和”CONFIG_USE_BLE_PRF_DUAL_MODE=y”CONFIG_USE_PANPLAT_ANT=y CONFIG_USE_BLE_PRF_DUAL_MODE=y
启用BLE模块,需要在
prj.conf
文件中添加以下宏定义CONFIG_BT=y
启用日志功能,将
prj.conf
文件中的下面4个宏定义注释,即可开启日志打印功能# Disable Serial Uart & Log. CONFIG_SERIAL=n CONFIG_UART_INTERRUPT_DRIVEN=n CONFIG_CONSOLE=n CONFIG_UART_CONSOLE=n
初始化ANT
通道配置
ANT通信是基于通道的,所以配置通道是必不可少的步骤。下列是通道配置的参数
ant_channel_config_t channel_cfg = { .channel_num = BLIGHT_CHANNEL_NUMBER, // 通道号,默认为0 .channel_type = BLIGHT_CHANNEL_TYPE, // 通道类型,Master or slave .ext_assign = 0, // 暂不支持,填0即可 .rf_frequency = BLIGHT_RF_FREQ, // 通信频率,ANT+固定为2457 .transmission_type = BLIGHT_TRANSMISSION_TYPE, // 传输类型,按照协议规定设置 .device_type = BLIGHT_DEVICE_TYPE, // 设备类型,按照协议规定设置 .device_num = BLIGHT_DEVICE_NUMBER, // 设备编号 16bit,自定义 .channel_period = BLIGHT_MSG_PERIOD, // 通道周期,按照协议固定设置 .network_number = BLIGHT_NETWORK_NUMBER // 网络号,必须设置为0,不支持其他网络号 .priority = 0, // 通道优先级,数字越小优先级越高,范围0-5 };
设置网络
下列接口实现设置ANT+网络
ant_plus_key_set(channel_cfg.channel_num);
启动ANT
下列接口实现启动ANT协议
ant_stack_init();
初始化profile
下列接口实现功率传感器的初始化
err_code = ant_blight_sensor_init(&blight_profile, &channel_cfg);
下列接口实现打开功率传感器
err_code = ant_blight_sensor_open(&blight_profile);
下列接口实现注册blight的handler函数,handler函数需要处理ANT栈返回的一些消息,比如发送成功消息,发送失败消息,接收到数据的消息等等。
ant_evt_handle_register(&evt, channel_number);
发送数据
下列接口实现更新发送数据。实际使用根据需要可以实现自己的更新函数
ant_blight_sensor_evt_handler(&ant_evt, &blight_profile);
ANT+和BLE的参数获取
我们在实际应用中,如果需要自行设置每个芯片的BLE广播名称和MAC地址以及ANT+的设备编号等等参数,目前我们支持使用PanLink烧录这些参数,sample中演示了读取这些参数的方法,如未烧录参数则使用系统默认的参数。
目前支持烧录的参数如下所示:
/* BLE广播名称 BLE MAC地址 ANT+设备编号 ANT+序列号 ANT+拓展设备编号 ANT+制造商编号 ANT+软件版本号 ANT+硬件版本号 ANT+设备型号 */ /* 此接口实现了获取参数 */ uint8_t load_info_config(uint8_t *data);
6 RAM/Flash资源使用情况¶
Memory region Used Size Region Size %age Used
FLASH: 79732 B 256 KB 30.42%
SRAM: 40360 B 50 KB 78.83%