成為藍芽RF調測高手_V6 QCC514X_QCC304X 安規BLE band edge過不了怎麼辦

    高通新一代的TWS mirroring solution QCC514X/QCC304X已經上市一段時間,也有客戶的TWS耳機產品陸續進入認證、量產階段。但近來有接獲幾家客戶反映安規部分BLE 2M band edge的部分fail,這邊就整理一下解決的方法供大家參考。

    由於QCC514X / QCC304X系列晶片的BLE output power typical高達10dBm,如果使用的band pass filter或者SAW filter insertion loss比較小,那BLE的output power也會維持在高點,相對的band edge也就比較容易fail。


接下來廢話不多說直接進入主題跟大家講講底下2個解決BLE 2M band edge fail的方法:

       1. 改變TX payload:

實驗室在測試認證band edge時是用高通的tool Bluetest3,設定上channel是使用0(2402MHz)以及39(2480MHz),PHY則分別是1M及2M的BLE PHY,如下左圖。

投機的方法則是改變TX的bit pattern,實驗室測試應該都是打default第一個設定值pseudo-rdm9(PRBS9),各位可以請實驗室的測試人員試著改打10101010或者1111000看看是不是就能pass。

因為改打其他payload來過認證這個方法要看實驗室是不是能接受,所以在這邊就不多做著墨,畢竟每家實驗室有他們自己習慣的測試手法及經驗累積。



        2. 調降BLE output power:

由於QCC514X/QCC304X不像上一代晶片QCC512X / QCC302X/QCC303X可以直接透過mib key設定最大輸出power使用power table中哪一階,因此在調降BLE output power時多了一些眉角。

 在QCC514X/QCC304X power table中,每一階power table包含了4列的設定值,每列所代表的定義如下:

  BR: 0x09   0x50   0x03

  EDR: 0x09   0x32   0x03

  LE: 0x09   0x50   0x03

  QHS: 0x09   0x50   0x03

我們這次討論的是調降BLE output power for band edge fail issue,因此我們要做變動及fine tune的部分只有第3列BLE的部分。

以power table index 4這階來做BLE output power fine tune,得到

  LE: 0x09   0x95   0x03的數據,

在公板上量測到BLE output power落在5.77~6.18dBm的結果如下圖:

因此將LE: 0x09   0x95   0x03這個數據置換到原始power table 4那階的BLE部分,最重要的是BLE最大輸出power table 10那階數值也要置換為    LE: 0x09   0x95   0x03,完整power table如下,最後將底下power table放到MDE subsys1_config2.htf並存檔及Deploy即大功告成。

# TX_POWER_CTRL_TX_POWER_TABLE

TX_POWER_CTRL_TX_POWER_TABLE = { \

  { \

      \

      { \

         0x09 /* txAtten */ , 0x14 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -16 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x0c /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -16 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x14 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -16 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x14 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -16 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x09 /* txAtten */ , 0x21 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -12 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x14 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -12 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x21 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -12 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x21 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -12 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x09 /* txAtten */ , 0x32 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -8 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x21 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -8 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x32 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -8 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x32 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -8 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x09 /* txAtten */ , 0x50 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -4 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x32 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -4 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x50 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -4 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x50 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , -4 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x09 /* txAtten */ , 0x85 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \


      { \

         0x09 /* txAtten */ , 0x50 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x85 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x85 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x09 /* txAtten */ , 0xe4 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 4 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x85 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 4 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x95 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 4 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x91 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 4 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x00 /* txAtten */ , 0xe6 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 10 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0xa4 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 9 /* dBm */  \

      },  \

      { \

         0x09 /* txAtten */ , 0x95 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 4 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0xb4 /* txPwrMag */ , 0x03 /* txPwrExp */ , 0x00 /* flags */ , 9 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      } \

  },  \

  { \

      \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      },  \

      { \

         0x00 /* txAtten */ , 0x00 /* txPwrMag */ , 0x00 /* txPwrExp */ , 0x00 /* flags */ , 0 /* dBm */  \

      } \

  }}

 

Note. Power table架構介紹及在MDE加入power table可以參考博文 QCC514x/QCC304x Power Table 測試和設定

最後再量一次BR/EDR output power如下,以確定我們沒有不小心動到BR跟EDR的power輸出。





★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能