CC2541 - CC2590 Range Extendar 的設定
1. 請問若想要讓 cc2541+cc2590 在不考慮功耗的情況下, 以最大的功率傳送/接收, 請問是否下列三行都需要執行? 或是只需執行第一行即可?
HCI_EXT_ExtendRfRangeCmd();
HCI_EXT_SetTxPowerCmd( HCI_EXT_TX_POWER_0_DBM );
HCI_EXT_SetRxGainCmd( HCI_EXT_RX_GAIN_HIGH );
2. 另外, 在 swra422 文件中, 在 Table 4.6 的地方有提到 TXPOWER 若是設定為 0xF1 則有 10.4 dBm. 請問這是不是代表傳輸的功率比前述 HCI_EXT_TX_POWER_0_DBM 來得高?
3. 承上, 若是的話, 該以 "TXPOWER = 0xF1" 還是 "HCI_EXT_SetTxPowerCmd( 0xF1 )" 來設定呢?
謝謝.
Kai-Jung,
1. 只要执行第一个就行。其他的命令不需要。
第二个是设置2541本身的TX power。默认就是0dBm。第三条是设置接收窗口的宽度,gain_high 就表示开窗加到某个最大范围(stack 内部已经有预定义),对发射功率没有影响。
2. 这个table是根据254x的TXPOWER寄存器的对应值来的。比如说TXPOWER 配置成0xE1, 那么cc2541本身的输出是0dBm, 加上c2590之后就是表上的8.9dBm了。0xF1 是2540才有的,对应的是2540本身输出最大4dBm.。对于2541,则只有到0xE1。(对应的表格,你可以看一下2541的datasheet 文档SWRS110C)
3. 并非如此。HCI_EXT_SetTxPowerCmd() 能用的参数可以在hci.h中的定义中看到,只能设置三档。如第二点所说,0xF1并不是这个函数的参数,而是寄存器的配置值。
所以综上所述,只要HCI_EXT_ExtendRfRangeCmd()即可。
瞭解了, 謝謝您.
那若是我以 CC2540 USB dongle 執行 BLE Device Monitor 時, 看到的 RSSI 只有 -40 dBm 上下, 是不是代表我自己設計的 PCB 出了什麼問題? 差目標 8.9 dBm 太多了.
Kai-Jung,
RSSI并不等于发射功率:)
RSSI只是表示接收的时候的信号强度指示,而且会受周围条件干扰很大,比如距离,天线方向,甚至人体等等。
有-40dBm完全是正常的,你的PCB应该没有问题。
Dear Y,
謝謝你.
再請問, 在 SWRA422 文件中, Table 8.1 有提到下列 4 個 GPIO 的要設定. 請問是要另外手動設定, 還是 HCI_EXT_ExtendRfRangeCmd(); 就已經幫我們做好了這些設定呢?
Kai-jung,
是的,这个命令会把IO和配置都设置好。
不需要手动做任何其他事情。