DA14531 寫晶振校準值 xtrim 到OTP

2021-10-07 18:13:00 字數 2034 閱讀 3515

開發過580/585的使用者應該知道,想要將晶振校準值燒錄到otp中,我們只需往晶元的otp header中的某個固定的位置燒錄乙個兩個位元組的值即可。531的情況不太一樣。da14531的otp header分成了兩部分: configuration script和main group:

其中,main group存放一些常用的配置如:spi flash 引腳,藍芽 mac 位址,時間戳等;特定的otp位置位置,有其特定的含義。

configuration script提供了比較靈活的配置,並且,欄位的含義,和其在otp中的位置沒有對應關係。通過toolbox工具,使用者可以通過add按鈕增加一些欄位來宣告某種配置。晶振校準值的配置,需要新增到configuration script部分中。

操作步驟

按照下圖的方式,配置好開發板的跳帽:

使用toolbox,將531當前的configuration script的值讀出來,然後調出configuration script配置頁面,並點add按鈕:

選擇我們要配置的暫存器:

新增我們要往該暫存器寫入的值然後ok

注意,由於configuration script不是以otp的某個位置來表示特定的含義的,因此,以上步驟,只是為了獲取晶振校準值暫存器的otp位置,和暫存器的值的otp位置:

由上圖可知:

晶振校準暫存器在531內的位址為:0x50000002

在otp的位址為:0x07f87ed0+0x00000078 = 0x07f87f48

將要寫入該暫存器的值是:0x0000000c

在otp的位址為:0x07f87ed0+0x0000007c = 0x07f87f4c

完成以上配置之後,我們回到toolbox otp header的頁面,點一下burn按鈕即可將xtrim值寫入otp

除了使用toolbox來寫入otp之外,我們還可以通過prod_test.exe工具來寫入otp。由於otp只能支援一次寫入,故,若想通過prod_test.exe工具來完成該操作,則上述步驟6不能執行。

以下是prod_test.exe工具的用法:

進入命令列介面,敲入以下命令:

其中,-p 用於指定串口號

7f48\7f4c 是相對 otp header (0x07f80000) 的偏移,

50000002/0000000c 是將要寫入otp某個位址處的值

以上成功後,我們重新用toolbox connect otp,讀出 otp header 的值,可看到和5步一樣的內容

DA14580 DA14585 藍芽除錯記錄

1.燒寫otp image 你的 你會發現 並沒有燒寫完0x40000到0x4ffff的位址內容.2.在otp header介面下read from memory 讀出原有header配置資訊,直接在上面修改以下項 address 0x47f00 value yes address 0x47f04 ...

字尾陣列 da演算法

sa陣列,他儲存1.n 的某個排列,sa 2 sa n 並且保證 suffix sa i suffix sa i 1 1 i 也就是將 s 的 n 個字尾從小到大進行排序之後把排好序的字尾的開頭位置順次放入 sa 中。rank陣列,他儲存的是每個位置的字尾子串的排名,與sa陣列是可以互逆的。heig...

字尾陣列DA模板

problem jzoj1598 詢問乙個字串中有多少至少出現兩次的子串 content sa s code and explanation author anoyer include include include include using namespace std const int max...