你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于意法半导体BLE AOA测向定位的问题

[复制链接]
冀以 提问时间:2025-1-21 21:10 / 未解决

STEVAL-IDB012V1.pngerror.pngaoa_hal_api.pngtwo_wb09.jpgBLE_ToolBox.jpg关于意法半导体BLE AOA测向定位的问题

1. 关于STEVAL-IDB012V1评估套件

我们购买了STEVAL-IDB012V1评估套件。在st的官网上发现了关于使用BlueNRG -LP/LPS的QUUPPA标签仿真软件包(en.STSW- QUUPPA-ETAG.zip),下载后我们将它解压到 BlueNRG的sdk(STSW-BNRGLP-DK)中。可是当我使用keil编译工程时,发现工程报错,报错内容详见附件1   我使用的keil版本是5.40 编译器版本是6.09   在你们的论坛以及文档中,我没有找到详细介绍如何解决这个问题的方案。与此同时,也没有给出这个工程的详细用途,仅仅说了这是一个“quppa标签仿真”  

2. 关于stm32wb09的pcb设计

由于wb0是新出的产品,我并没有找到太多关于他的pcb layout 指南   我们仿照Bluenrg的设计指南an5526-guidelines-for-pcb-design-on-bluenrglpbluenrglpsstm32wb0-mcus-stmicroelectronics 设计了一款wb09的最小系统板   经过测试它工作良好,但是我想消除由于两款芯片的细微差异带来的隐患,请告诉我wb09的设计细则

3. 关于AOA基站的天线阵列

关于AOA基站的天线阵列的硬件设计你们缺少相关的资料,我只能去其他地方找

4. 关于如何使用代码实现AOA定位(这是最重要的一点)  

我们想用STM32WB09设计一款基站(无连接场景测向)   但是你们仅仅在给出了少量api并且我看不到这些函数的实现 我使用了我自己制作的两块wb09ke开发板测试了SDK中的BLE_Beacon_AoA_TagBLE_Beacon_Scanner_AoA_Locator   在串口中我确实接收到了IQ数据,但是有一个严重的问题是   我接收少量IQ样本后就会触发

case HCI_LE_PERIODIC_ADVERTISING_SYNC_LOST_SUBEVT_CODE:
{
    APP_DBG_MSG("Sync lost! Restart the scanner device to get again the Beacon AoA Tag IQ samples !\r\n");

    //device_state = START_SCANNING; //TBR???
}

我看到你们可能想要重新开启扫描,但是注释掉了,将这行代码以及TBR???并且留在了SDK的正式版中   还是说这是我的硬件设计的问题导致连接断开  

接着,我查看了rm0505-stm32wb09xe-ultralow-power-wireless-32bit-mcu-armbased-cortexm0-with-bluetooth-low-energy-and-24-ghz-radio-solution-stmicroelectronics 中关于wb09寄存器的设计,我看到了AOA测向相关的寄存器设计   但是依然缺乏关于控制天线切换的详细说明。   我阅读了德州仪器的RTLS_Toolbox,看到了他们的天线切换通过定时器中断以及DMA+GPIO来设计射频开关的切换、以及保护时间等等AOA定位相关属性。   你们的呢,能否给我详细的信息以及介绍。

还有,在STM32CUBEMX中我看到了PB0-PB6可以配置为RADIO_ANTENNA,它们被设置为极高速率,这肯定是用来配置天线切换的,但是我没有在文档中看到相关使用方法。  

例如,我想配置4*3的12根天线阵列,我应该怎么配置我的代码去轮询这些天线并且考虑到射频开关由于切换导致的信号不稳定,从而采集出正确的IQ信息?  

我是一名个人开发者,在项目结束后我将开源我的硬件以及软件,欢迎大家共同探讨。我的电子邮箱是[email]3228558272@qq.com[/email]

怎么插入图片啊😕

aoa_hal_api.png
BLE_ToolBox.jpg
STEVAL-IDB012V1.png
two_wb09.jpg
error.png
收藏 评论2 发布时间:2025-1-21 21:10

举报

2个回答
冀以 回答时间:昨天 21:15

Zhangyy

    **



    **[Zhangyy](https://community.st.com/t5/user/viewprofilepage/user-id/94179)**









    **






    Associate II
























































    **





****‎2025-01-18****


****06:52 PM****

**

                i notic that in your project `BLE_Beacon_Scanner_AoA_Locator`. 

in ble_app.c PB1 and PB2 were configure as the antenna switch gpio

<pre class="lia-code-sample line-numbers language-c" tabindex="0"><div class="copyToClipboard"></div><code class="language-c"> <span class="token comment">/ Need to call this function to set GPIOs used for antenna switching in case of AoA. /</span> ret <span class="token operator">=</span> <span class="token function">aci_hal_set_antenna_switch_parameters</span><span class="token punctuation">(</span><span class="token number">0x06</span><span class="token punctuation">,</span> <span class="token comment">/ ANTENNA_ID_1 and ANTENNA_ID_2 enabled /</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token comment">/ Left-shift ANTENNA ID signal by one bit to exclude ANTENNA_ID_0 (PB0 is used for UART). /</span> <span class="token number">0x00</span><span class="token punctuation">,</span> <span class="token comment">/ Default antenna ID /</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">/ RF_ACTIVITY signal enabled on PB7. /</span></code></pre>

however

<pre class="lia-code-sample line-numbers language-c max-30" tabindex="0"><div class="copyToClipboard"></div><code class="language-c"><span class="token keyword">case</span> HCI_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_SUBEVT_CODE<span class="token operator">:</span> <span class="token punctuation">{</span> hci_le_periodic_advertising_sync_established_event_rp0 <span class="token operator"></span>p_periodic_adv_sync<span class="token punctuation">;</span> p_periodic_adv_sync <span class="token operator">=</span> <span class="token punctuation">(</span>hci_le_periodic_advertising_sync_established_event_rp0 <span class="token operator"></span><span class="token punctuation">)</span> p_meta_evt<span class="token operator">-></span>data<span class="token punctuation">;</span> tBleStatus ret<span class="token punctuation">;</span> <span class="token class-name">uint8_t</span> antenna_ids<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> SWITCHING_PATTERN<span class="token punctuation">;</span>

      <span class="token class-name">uint16_t</span> sync_handle <span class="token operator">=</span> p_periodic_adv_sync<span class="token operator">-></span>Sync_Handle<span class="token punctuation">;</span>

      <span class="token function">APP_DBG_MSG</span><span class="token punctuation">(</span><span class="token string">"hci_le_periodic_advertising_sync_established_event --> EVENT\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

      <span class="token comment">/* Scanning is no more needed. Disable it. */</span>
      ret <span class="token operator">=</span> <span class="token function">aci_gap_terminate_proc</span><span class="token punctuation">(</span>GAP_OBSERVATION_PROC<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>ret <span class="token operator">!=</span> BLE_STATUS_SUCCESS<span class="token punctuation">)</span>
      <span class="token punctuation">{</span>
        <span class="token function">APP_DBG_MSG</span><span class="token punctuation">(</span><span class="token string">"aci_gap_terminate_proc() failed:0x%02x\r\n"</span><span class="token punctuation">,</span> ret<span class="token punctuation">)</span><span class="token punctuation">;</span>
       <span class="token punctuation">}</span>
      <span class="token keyword">else</span>
      <span class="token punctuation">{</span>
        <span class="token function">APP_DBG_MSG</span><span class="token punctuation">(</span><span class="token string">"aci_gap_terminate_proc --> SUCCESS\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>

      ret <span class="token operator">=</span> <span class="token function">hci_le_set_connectionless_iq_sampling_enable</span><span class="token punctuation">(</span>sync_handle<span class="token punctuation">,</span>
                                                                  ENABLE<span class="token punctuation">,</span>
                                                                  CTE_SLOT_1us<span class="token punctuation">,</span>
                                                                  <span class="token number">0</span><span class="token punctuation">,</span> <span class="token comment">/* Report all CTEs*/</span>
                                                                  <span class="token keyword">sizeof</span><span class="token punctuation">(</span>antenna_ids<span class="token punctuation">)</span><span class="token punctuation">,</span>
                                                                  antenna_ids<span class="token punctuation">)</span><span class="token punctuation">;</span>
       <span class="token keyword">if</span> <span class="token punctuation">(</span>ret <span class="token operator">!=</span> BLE_STATUS_SUCCESS<span class="token punctuation">)</span>
       <span class="token punctuation">{</span>
         <span class="token function">APP_DBG_MSG</span><span class="token punctuation">(</span><span class="token string">"hci_le_set_connectionless_iq_sampling_enable() failed:0x%02x\r\n"</span><span class="token punctuation">,</span> ret<span class="token punctuation">)</span><span class="token punctuation">;</span>
       <span class="token punctuation">}</span>
       <span class="token keyword">else</span>
       <span class="token punctuation">{</span>
         <span class="token function">APP_DBG_MSG</span><span class="token punctuation">(</span><span class="token string">"hci_le_set_connectionless_iq_sampling_enable --> SUCCESS\r\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
       <span class="token punctuation">}</span>

  <span class="token punctuation">}</span>
  <span class="token keyword">break</span><span class="token punctuation">;</span></code></pre>

View more

in this case antenna_ids is SWITCHING_PATTERN and

<pre class="lia-code-sample line-numbers language-c" tabindex="0"><div class="copyToClipboard"></div><code class="language-c"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">SWITCHING_PATTERN</span> <span class="token expression"><span class="token punctuation">{</span><span class="token number">0x00</span><span class="token punctuation">,</span> <span class="token number">0x01</span><span class="token punctuation">}</span></span></span></code></pre>

they mean that PB0 and PB1 were configure as antenna switch gpio

is there any wrong with me ?

冀以 回答时间:昨天 21:16

冀以 发表于 2025-1-21 21:15
![Zhangyy](<a href="https://community.st.com/t5/image/serverpage/avatar-name/sportscar/avatar-theme/candy">https://community.st.com/t5/image/serverpage/avatar-name/sportscar/avatar-theme/candy</a> ...

[md]好像格式错了,先忽略这个吧😕

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版