Tuesday, December 23, 2008

CSR C3 F.W. And Trim With Agilent N4010A, 2008/12/24

C3 F.W. And Trim 總算 Released 了, 紀錄如下 :

1. 原 Query Frequency Offset Command : "DIAG:HW:DAP:READ:BT:FOFF?" 原廠 FAE LEI_YANG 釋疑如下 :

The command "DIAG:HW:DAP:READ:BT:FOFF?" is a diagnostic command for debug only. We strongly recommend to use "FETCh:FOFF?" to replace it.
Yang Lei
WiNet Application Engineer
Mobile Broadband Division
China Communications Operation
Agilent Technologies
Tel : +86(10)64396940
Fax: +86(10)64397666
TN: 658-6940
Email: lei_yang@agilent.com

? 不能用 "DIAG:HW:DAP:READ:BT:FOFF?" Get Frequency Offset, 但用 "FETCh:FOFF?" 卻 Always Get Last Test Result, N4010A 並沒有再 "Run/Resume" 一次, 向原廠 FAE LEI_YANG 求助 Ans : 以 "INIT" Command 讓 N4010A "Run/Resume" 一次, 而 Command And Command 間可用分號串聯 :
Old Command : "DIAG:HW:DAP:READ:BT:FOFF?"
New Command : "INIT;FETCH:FOFF?"

PS : DIAG 並非 SCPI Standard Command, 而且 Agilent 方面也沒有 Document, 更不建議用.

至此對 Agilent N4010A Command 方面已可讓 Test Func Work Fine. 但有些不足的是, 在丟 "INIT;FETCH:FOFF?" N4010A Panel 並沒有自動跳到 "Result" Page, 向原廠 FAE LEI_YANG 求助 Ans : Command "DIAG:KEY 72" Is Equal Panel "Result" Button. 所以用 Agilent N4010A Test BT Trim Result Frequency Offset 部份 OK.


2. CSR BC3 Trim : BC3, BC4 有 Host Based 之差異, BC3 Cold / Warm Reset 須 Wait (Sleep) 1~2 Sec For Core Boot, 剛開始一直用 Debug Mode Step By Step Run, 此類 Timing Issue 不會浮現, Release 時卻一直卡住, BC3 Cold /Warm Reset 需 Sleep (Wait For Boot), BC4 不用.


3. nFore Said, BT ColdBoot OK 後會從 UART 吐版本, 但在 F.W. Download And MAC Write 後做(Use API, Help Notes Equal ColdBoot) ColdBoot 後卻是 "Sometimes" 才吐版本(Use Serial Monitor), 所以需要自行 Query (Use "(b)" Command).


4. BC3 在 BootMode 非 1 And F.W. Download And Coldboot OK 之時不可 Open PC Side COM Port, 於此時間 Open PC Side COM Port 自己所遇到的情況是 Sometimes Open OK and Sometimes Fail, 但如果是 Fail, COM Port 會被 "暫時" Lock, 和 小 P 所遇到的 Uart 亂丟東西雖徵狀有異, 但可能是相同原因所導致.


5. 原 Code 在 F.W. Download 後 SetTimer 後即 close spi handle And Coldboot Module, 這樣會造成 UART Data 尚未 Read(Send 也未知...), PC Side UART 未 Closehandle, BT Module 即 Coldboot. 移除該段 Code 後解決 PC UART Read / Send But BT Module Be Coldboot 問題.


6. SCPI Command 修正如下 :
SCPI Init Command :
"*CLS",
"INST:SEL 'RFA'",
"SENS:BAND 1300000",
"SENS:POW:RANG 5",
"SENS:FREQ:CENT 2441",
"SENS:SWE:TIME .00300",
"INIT" -->> "DIAG:KEY 72" 於此時做 Frequency Offset Test ("INIT") 並無意義, 改成將 Panel LCD 切換至 Result ("DIAG:KEY 72")

SCPI Get Frequency Offset Command :
"DIAG:HW:DAP:READ:BT:FOFF?" -->> "INIT;FETCH:FOFF?" 先做 Test And Then Get Frequency Offset Value.


7. 以 "FETCH:APOW" Command 可 Get DB Value. 先前試遍了 "DIAG..." 開頭的 Command 均 Fail.


8. Debug 過程 UART 一直陸續有問題, 除 Open UART Timing 外, Agilent IO Control 也是元兇之一, 在開啟 Agilent IO Control AP 同時用 Layer 0 的 UART Monitor Tool 可以看到 Agilent IO Control AP 開的時候對每個 UART 都做了 Open / Close (Send?) 動作, 如果是剛好(機率極高) 在不可 Open UART 時 Open UART...., BT F.W. & Trim AP 就會受影響 (Uart 已被 Agilent IO Control Open UART 時搞死), 無法 Open / Read Version BT F.W. Version, 整個程式結果也就不正確了.


9. Search Algorithm : 一開始用 Binary Search 似乎 OK, 但若加進從 Agilent N4010A 的 Frequency Offset Value 再配合 Frequency Offset Table, Worst Case 應在 5 times 可得知 Trim Fail, 4 times 即可 Trim OK.


10. 今日版本已將 Log (S.F. Format) 產生出, 後續修改 :
(1) Trim Value Search Algorithm
(2) Hard Coding -> Variable & There Are Default(Use "define") Value And Can Get From XML
(3) BT MAC & S.F. Issue.

Trim Value Search Algorithm 應該比較簡單, 但要長時間量測.
Hard Coding 則要配合 BT MAC & S.F. 一起改.

我負責

 ... + ...........  政策 我負責. 負責推卸責任. (阿不然你以為哩...) 聽說 記錯了 請見諒 深感抱歉.... 抗(國外)疫(苗)中...