本帖最后由 rgwan 于 2023-7-25 12:12 編輯
眾所周知,Roland Fantom XR音源有一個壞毛病:屏幕損壞。其中屏幕損壞的主要原因是它排線的設計缺陷:使用碳膜排線,04年左右推出的音源在08年左右過保后開始大面積壞屏。以至于現在二手市場上幾乎見不到幾臺有完美屏的Roland Fantom XR(也因此Fantom XR的二手價格都非常的低)
而我恰好有一個幾乎20年歷史的Fantom XR。它也不負眾望的壞了屏。考慮到屏幕的排線<0.5mm間距,手動接排線這種事情我是實在不想干,浪費時間又不能完全解決問題,畢竟排線本身還是碳膜和銀漿做的,接好了不知道什么時候又壞掉了。
那么,是否有一種一勞永逸,完美解決問題的方法呢?答案是肯定的。Fantom XR的維修手冊上已經標明了屏幕接口的定義,用一個單片機做一下協議轉換,接上COG的代用屏幕,即可完美解決問題。
在開始之前,首先需要知道Fantom XR的LCD驅動時序長什么樣,于是需要用邏輯分析儀測出屏幕驅動的時序。如下圖所示:
其中對LCD最密集的訪問間隔為3.6微秒,選通脈沖寬度為160納秒,數據保持時間為320納秒。
經過一些簡單的分析,我完全理清楚了該屏幕的驅動時序,于是做出了屏幕在PC上的模擬器,成功在PC上重現了Fantom XR的啟動過程:
根據以上的時序分析(160ns的data holdtime),是絕對不可能直接使用單片機去直接響應總線的寫操作的:因為數據持續時間太短了。即使按照72MHz的M3來計算,機器周期為13ns,160ns也是12個周期。如果直接暴力響應中斷的話,NVIC固定12或者16個周期的延遲會導致CPU剛進入中斷后總線數據就消失。那么,除了CPLD或者FPGA這樣比較麻煩的方案,就沒有其他低成本的簡單方案了嗎?
也不盡然,樹莓派RP2040芯片內置PIO功能,能夠簡單對PIO外設編程一段最長32步的微碼,讓它處理總線時序,并轉成FIFO接口。這樣CPU就不需要直接硬扛270kHz的中斷了。也就解決了這個問題。
但是最后,我放棄了樹莓派RP2040芯片做協議轉換的方案。原因是因為是Fantom XR的LCD總線是5V電平的,而RP2040本身IO不支持5V容忍。因此考慮到總是需要74去做電平轉換的,不如干脆用74順手把電平轉換和總線時序都做掉了。這樣的話,有無數兼容芯片的STM32就成了首選,這樣也就不容易被芯片停產或者斷供影響。因為兼容片早已爛大街了。
然后我花了一天的業余時間設計了一塊轉接板,最終硬件如下:
顯示效果如下視頻所示:
如果有壇友有需要,可以在咸魚搜索“Fantom XR代用屏”聯系我獲取代用屏幕。
|