契机
最近莫名对墨水屏产生了很强的兴趣,特别是那种类似纸张般的显示效果,让我十分着迷。但是众所周知,墨水屏的价格远超同等分辨率下的 LCD 屏幕,所以也一直没有真正入手过。但是最近一个偶然的契机,让我发现了一个很便宜的墨水屏渠道,那就是电子价签(Electronic Shelf Label,简称 ESL)。ESL 其实如果从厂家购买还是挺贵的,特别是由于商业原因,哪怕买了 ESL 也不能自己让它显示所想显示的内容,还需要中控设备、整套库存管理系统等等。但是在二手市场上,ESL 可以做到非常便宜,几块钱就可以买一个 2 英寸左右的,4.2 英寸的也只要不超过 30 元。对于我这种想玩玩墨水屏但又不想花太多钱的人来说,简直是个福音。
虽然说本来我只是想要一个墨水屏,但是既然买了 ESL,当然也想看看它的内部结构,而且希望能够直接复用内部电路,通过刷入自己想要的固件实现自定义显示。本身作为第一次尝试,为了避免各种意外,我选择了一款成色很好的型号,就是本文的主角 LG REBE-TZ42B。这款 ESL 的屏幕尺寸为 4.2 英寸,分辨率为 400x300,我所购买的价格大约在 30 元左右,但后来发现其实之前有一段时间这个只卖 9 块。不管怎么说,现在这个价格也算是不亏。
拆解

拿到手之后,很庆幸的发现这款不是胶水或者超声波焊接的,而是直接用螺丝固定的,这让我能完美打开外壳。打开之后,发现内部 MCU 是一颗 TI 的 CC2630F128。除此之外,还有 NFC 模组以及一个 Flash 存储芯片。而其中的墨水屏则是威峰科技生产的。稍微搜了一下相关资料,发现墨水屏资料还算详细,所以就先没管它,而是把注意力集中在了 MCU 上。
研究 MCU
本身我对 TI 的 MCU 并不算熟悉,再加上偷懒不想看 datasheet,于是我就去询问了 Claude 关于这颗芯片该如何调试。在 Claude 的指导下,我先后使用了手上有的 STLink-V3MINIE 和刷入了 SWD 调试固件 的树莓派 Pico,测试了很多 OpenOCD 的配置,最终都没有成功连接到 MCU。我甚至一度以为这颗芯片的调试接口被锁住了,后来阅读 datasheet 才发现,这颗芯片使用的是 cJTAG 调试协议,并且更坏的消息是,这个协议没有开源的固件,所以摆在我面前的是一个选择难题:要么放弃这颗 MCU,要么购买价格不菲的官方调试器 XDS110,并且还不一定能成功连接。
就在这时,我突然受高人指点。谁说官方调试器 XDS110 只能单独买,TI 还推出了很多评估板,上面就自带有 XDS110 调试器。尤其是 LP-MSPM0C1104 这块评估板,官方价格只需要 USD$5.99,相较于官方价 USD$135.00 的 XDS110 调试器,这简直是免费送甚至倒贴钱给我啊。虽然由于目前我物理位置不在美国,官方下单需要支付一笔不小的国际运费,只得加价在立创商城上买了一个现货。
经过几天的等待,终于收到了这块评估板。拿到手之后,我迫不及待地连接了电脑,安装了 TI 的 UniFlash,连接好了线路。Voilà!成功连接,甚至还可以读取到 MCU 的内存(Memory)。感觉眼前的路瞬间明朗了,只要鞭打 Claude 让它帮我写软件部分就成功了!
但是人生啊,从来都不会一帆风顺。为了测试,我先是写了一个 UART echo 程序,烧录进去之后确实可以 echo,但是奇怪的是 echo 的内容卡卡的。为了防止是 MCU echo 过程中处理速度的问题,我又写了一个让它不停 UART 打印的程序,并且烧录了进去。就在这时,灵异的事情发生了,我确信我烧录成功了,CRC 验证也是通过的,但是 UART 收不到任何东西,倒是如果我主动发送消息,它就会偶尔 echo 出来。我不信邪,前前后后换了 TTL 转 USB 模块,换了线,做了无数次断电重启,结果都是一样的。在确认不是我的问题之后,我觉得,大抵这颗 MCU 是废了。不管是他本身有问题也好,还是我不小心把 VCC 接入了 5V 而不是 3.3V 导致的也好,总之,我的最初计划就此告吹了。
结语
没什么好总结的,最后那块板子被我扔进垃圾桶进行它的下一段旅程了。临走之前,我将那块板子的 Flash 里写满了一些话,就此告别。:)