Skip to Content
常見問題

常見問題

接不上硬體

先分清楚是「找不到」還是「被佔著」。

dongle 列出掃到的全部後端與狀態 dongle who 查出是誰正佔著裝置 dongle rescan 重新掃描 dongles/ 目錄

最常見的是另一個還開著的程式佔著它——包括本程式的另一個執行檔。視窗版和 終端機版不能同時跑。

換了 USB 孔?dongle rescan。啟動時沒插?插上去它會自己接上,不用重開。

讀出來全是 --

-- 的意思是還沒讀過,不是讀到 0。先 rd 一次,或開啟輪詢。

讀出來全是 FF

多半是位址不對,或是 IC 沒有回應。scan 掃一遍匯流排,看看實際上有誰在。

值不會動

檢查輪詢是不是關著(狀態列會顯示)。poll off 的時候監看清單停止更新、觸發條件 也不會被檢查——這是預期行為。

監看清單裡的值和暫存器表對不上

多半是 bank 不同。bank reg 設錯不會報錯,只會讓你讀到另外一頁。

暫存器定義面板一直顯示 NO DEFINITION

定義檔是逐 (裝置, 頁, 位移) 對應的,而且頁是用 8-bit 寫入位址宣告的—— 定義檔寫 0xB0,對應的是匯流排上的 7-bit 0x58。面板下方會印出它查了什麼, 拿那組值去對定義檔。換個位移試也沒用:對不上裝置的話,哪一格都查不到。

Plugin 掛上去了,面板卻說 no plugin mounted

plugin switch 要帶 @p<N>。 不帶的話它掛到別的面板上了,而且整個過程 不會有任何錯誤訊息。

同一個面板想換另一顆 Plugin

可以,但要先卸載、等它卸完、再掛新的:

plugin unload 卸載焦點面板上的 Plugin(先按 F6 移過去);焦點沒有時會列出別處的掛載 plugin unload @p<N> 卸載掛在面板 N 的 Plugin(不必先移焦點) plugin unload <name> 沒有面板的 Plugin 用名稱指定 p <新名稱> @p<N> 掛到同一個面板

卸載不是立刻完成的:指令只回 unloading ... (queued jobs will finish first), 要等 Log 出現 plugin '<名稱>' unloaded 才算空出來。太早掛新的會看到 this tab is still unloading,稍等再下一次就好;沒先卸載會看到 another plugin is mounted, run 'plugin unload' first——它不會直接蓋掉舊的。

這個面板設過的位址、dongle 會保留,新掛上的 Plugin 沿用。想把同一顆 Plugin 原地重新跑一遍(例如它載入失敗、或崩潰之後),用 plugin restart(可加 @p<N>,或寫名稱):它自己卸載、再把同一顆掛回同一個面板,不必記面板號;失敗時 Log 的最後一句就是該打的指令。

同一個 Tab 接好幾支 dongle

可以。dongle 是逐面板指定的:每個暫存器表各自決定走哪一支,每個 Log 面板 可以只看其中一支。

終端機版同一個 Tab 的四個面板:上方兩個暫存器表各讀一支 dongle,下方兩個 Log 各只顯示一支 dongle 的讀寫
左上讀 ui2c、右上讀 mock;下方兩格 Log 各看一條匯流排
dongle 列出掃到的 dongle 名稱 layout @p0 reg_table 把面板排好(這裡:上兩格暫存器表、下兩格 Log) layout @p1 reg_table layout @p2 i2c_log layout @p3 i2c_log mount 0x58 @p0 在 p0 掛一個裝置 dongle <名稱> @p0 p0 的裝置走這支 dongle mount 0x50 @p1 在 p1 掛另一個裝置(沒指定 dongle 就走預設那支) log bus <名稱> @p2 p2 的 Log 只顯示這支 dongle 的讀寫 log bus <名稱> @p3 log bus off @p2 取消,恢復顯示全部

幾個要注意的地方:

  • 名稱照 dongle 列出來的打。 同型號插兩支時會帶序號,例如 ui2c@c9739c。
  • 沒指定 dongle 的面板走預設那支——啟動時自動接上的,或 --dongle 指定的。
  • 預設已經在用的那支,不能再指給別的面板,會看到 already bound to another mount/bus。要嘛那個面板就不指定、直接用預設;要嘛先 dongle close 關掉預設,再逐一 dongle <名稱> @p<N>。
  • 指定完的對應會記在設定裡,下次開啟沿用。

圖中第二支用的是模擬後端 mock,所以它是用 --dongle mock 當成預設那支開起來的; 兩支都是實體 dongle 時,指令完全一樣,只是名稱換成實際的。

找不到某顆 Plugin

視窗版用 ☰ → Plugin → Rescan plugins/ folder 重新掃描 plugins/ 目錄;終端機版沒有對應的指令,重新啟動程式即可。

更新之後 Plugin 不見了

更新只更新程式本身,不會動 plugins/。

開啟時出現找不到 api-ms-win-crt-….dll

訊息類似「找不到 api-ms-win-crt-runtime-l1-1-0.dll」(或 ucrtbase.dll)。這表示 Windows 沒有 Microsoft 的 C 執行階段(UCRT)。Windows 10/11 內建,所以多半發生在 Windows 7 SP1 或 8.1。安裝檔與免安裝版都不再附帶它,請安裝 KB2999226(Update for Universal C Runtime), 依你的 Windows 版本與 32/64 位元選擇下載項目(32 位元的 Windows 選 x86, 64 位元的 Windows 選 x64)。

Windows 7 必須是 Service Pack 1;Windows 8.1 須先安裝 2014 年 4 月的更新彙總 (KB2919355)。

SmartScreen 擋住安裝檔

安裝檔未經數位簽章。點「更多資訊」→「仍要執行」。

logs/ 會被清掉嗎

不會。那是你的量測資料,更新不碰它,解除安裝也不刪它。

設定跑掉了

設定在 %USERPROFILE%\.config\nexus_tui\config.ini,兩個版本共用。 ☰ → File → Open config.ini 可以直接打開。

程式不會因為某個設定暫時讀不到就把它刪掉——但如果解析不了,它會保留原樣並記一筆 警告,那一行的值就不會生效。警告會出現在 Log 的 System 分頁,例如 config: [Tab1] poll_interval_ms='abc' invalid, using 50(哪個區段、哪個欄位、你寫了什麼、實際用了什麼); 打錯的欄位名稱也會提示,例如 unknown key 'dongel' (kept, ignored) - did you mean 'dongle'?。

32-bit 還是 64-bit

絕大多數人要 64-bit。 只有舊機器跑不動 64-bit 時才需要 32-bit。兩者功能相同。

沒有硬體可以先玩玩看嗎

可以。dongle mock 切到模擬後端,它在內部模擬一顆 256 位元組的裝置,讀寫都會真的 改變內容。想邊玩邊學著自動化,見 Lua 自動化——整份教學從頭到尾都用 mock,不需要接任何硬體。