自己新增 IC 密碼(password.user.txt)
password <ic> 和視窗版的 Enable PASSWORD... 會照一份清單,對 IC 送出一串寫入來解開受保護的
暫存器。程式內附的清單只有幾顆 IC;你手上的 IC 不在清單裡,可以自己加——在程式旁邊
放一個 password.user.txt 就好。
放在哪裡
放在 nexus_tui.exe/nexus_gui.exe 旁邊(和 config.ini 同一層),檔名必須是
password.user.txt。
這個檔是你的,程式更新和 password update 永遠不會改它或刪它。
最小範例
# My test board
[MyIC]
w FF 55 98
w FF AA 98
pccmd w 20 01 98[MyIC]開一段,段名就是password <ic>要打的名字(不分大小寫)。- 每一行
w <位移> <值> <addr8>是一次寫入,三個欄位都是不帶0x的十六進位(0~FF)。 寫入會照檔案裡的順序送出。 - 行首可以加
pccmd,寫不寫都一樣(方便直接照 datasheet 抄)。 #開頭的整行是註解。
存好之後執行:
password reload
password listpassword reload 回 password: 3 IC(s) (serial 2) 這類摘要;password list 裡會多出
MyIC 3 writes [user],接著就能 password MyIC。
和內附清單的關係
你的檔案是疊加在內附清單上面的:
- 段名和內附清單一樣的,以你的為準——可以用來改寫內附的序列,例如自己寫一段
[IT6622]。 - 段名是新的,就加到清單後面。
- 你的檔沒寫到的 IC,照用內附的。
被你的檔案改寫或新增的 IC,在 password list 裡會標 [user];從 password update
下載的版本標 [web];內附的沒有標籤。
改完一定要 password reload
程式只在第一次用到密碼功能時讀檔。之後你改了檔案:
- 開
Enable PASSWORD...的視窗不會重讀。 - 執行
password <ic>也不會重讀。
只有 password reload 會。這是刻意的:改到一半的檔案不該讓原本能用的 IC 跟著不能用。
寫錯了會怎樣
只要有一行不對,整個 password.user.txt 都不採用,內附清單照常可用;Log 會出現一行
WARN,指出是第幾行、為什麼:
password: password.user.txt line 2: addr8 0x99 is odd (8-bit write address must be even)常見的錯:
| 寫法 | Log 的訊息 | 怎麼改 |
|---|---|---|
檔案裡有 serial 5 | 'serial' is not allowed in this file | 刪掉。serial 只屬於內附與下載的清單,你的檔不需要 |
w FF 55 99 | addr8 0x99 is odd (8-bit write address must be even) | addr8 是 8-bit 寫入位址,最後一位元是讀寫位,一定是偶數。照 datasheet 抄 8-bit 位址,不要自己右移成 7-bit |
w FF 55 98 # first | unknown line | 不支援行尾註解,註解要獨立一行 |
ww FF 55 98 | unknown line | 打錯字不會被略過,會整檔拒絕,避免序列少一筆卻看不出來 |
w FF 55 0x98 | unknown line | 數值不要加 0x |
| 中文註解 | non-ASCII byte in file | 整個檔案只能有英數字與符號,註解也一樣 |
[MyIC] 底下沒有任何 w | section 'MyIC' has no writes | 每段 1~32 筆寫入 |
[list] | reserved section name | list、reload、update 是指令用字,不能當段名 |
其他規則:
- 段名只能用英數字開頭,後面可接英數字、
_、.、-,最長 31 字元;同一個檔裡不能重複。 addr8換成 7-bit 後必須在0x08~0x77,也就是addr8在10~EE之間。- 每段最多 32 筆寫入。
成功不等於解鎖
password MyIC 回的 MyIC: 3/3 writes ACKed 只代表每一筆寫入都收到 ACK——IC 收到了,
不代表它真的解鎖了。要確認,讀一下受保護的暫存器看看。
失敗時會指出第幾筆、哪個位址沒回應,位址同時列出 8-bit 與 7-bit:
MyIC: write 1/3 failed (NACK @0x98(7b:0x4C) off 0xFF)第一筆就 NACK,多半是 addr8 抄錯,或板子上根本沒有這顆 IC。