本帖最后由 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代用屏”联系我获取代用屏幕。
|