在这个时代,只要你有想法,就去做吧。没有“人”会阻拦你。
——沃兹·吉硕德(我自己说的)
注:本文为本人原创实践总结,未使用AI 生成正文内容。使用 AI 写文章,本身就失去了写它的意义。
一、为什么是NXP
我是从前年开始接触NXP的MCU的。说句很主观的话:MCUXpresso**是我用过体验最好的MCU**软件生态之一。
工程结构清晰、配置工具所见即所得、配置区和代码预览分离、常用外设驱动几乎即下即用——所有这些,都被统一进了一个IDE里。这种体验让我第一次觉得,嵌入式“写软件”这件事,可以是流畅、克制、甚至称得上sleek的。
但即便如此,我当时并没有立刻转向NXP,原因很现实,也很简单:
第一,当时的我还在专心于TouchGFX,我可以用极少的学习成本继续开发STM32做出非常优秀、界面丝滑流畅的产品,并且NXP的MCU产品似乎没有对标的GUI生态(软件上确实做到了依托LVGL,但是在MCU的设计上并没有特别照顾GUI应用);
其次,NXP官方配件定价偏高,超出个人可承受范围:例如一块3.5英寸显示屏Demo板售价便高达300余元,很多采用NXP MCU的工程师也倾向于自制低成本屏显方案。这大幅抬高了获取生态配套外设的成本,也使得在我个人项目中,不得不采用自制硬件方案。
为了充分拥抱NXP极具吸引力的软件开发生态,我计划自主设计硬件,开发一款美观、低成本且易用的LCD屏扩展板。该扩展板不仅可直接与NXP MCU开发板接插使用,还能兼容其他各类主流板卡。为此,我选用MIKROBUS 接口作为接插标准,实现跨平台通用。
于是我开始认真思考一件事:
能不能,为NXP**做一块“我自己愿意用”的屏扩展板?**
我的目标很明确:
- 外观简洁、美观
- 成本尽量低
- 即插即用
- 不绑定单一MCU平台
最终,我选择了MIKROBUS**接口**作为标准。它足够通用,可以插NXP,也可以插别的主流开发板,为未来留足空间。甚至在正式开始前,我就已经用 PS 画好了“理想成品”的效果图。

二、初 试
我没有什么做硬件的基础,更是连画原理图的PC软件都没用过。在开始之前我问过自己,万一失败了怎么办?出现bug就又陷入“到底是硬件问题还是软件问题”的经典博弈了。但是想了想,还是打算大胆尝试一下。为了能够实现这一目的,我想都没想,使用了Google Gemini 3.1。
在我的常识中,如果需要开始设计PCB,首先需要绘制原理图,再根据原理图出具PCB的设计文件。我首先下载了我有点印象的EDA软件(KiCad)。至于屏幕的选择,我选择了一块性价比极高的1.46寸裸屏(只要9块钱!),代价就是除了规格书以外没有任何资料。在这之后我将基本情况交代给了Gemini。


Gemini也是非常“乐于助人”:


管他对不对,先画了再说!(最后因为layout空间有限取消了所有的ESD,同时咨询了做硬件的老师傅有关于细节的修改问题,大差不差)


我觉得画得真是丑极了,好在能被系统正确识别并初始化layout。
到了layout这部分,我首先根据MIKROBUS的datasheet固定了几个焊盘位置,最后剩下的,我尝试使用了Quilter帮我做单面焊盘的layout。

在我看来,这看起来真是好极了!不过为了严谨,还是咨询了老师傅:

老师傅还得是老师傅。几个小时后,我收到了他的版本。

我非常感谢于能有人在我需要帮助时解决卡在技术盲区的问题(第一批成品出来后,第一片成功的样品第一时间送给了他)。带着老师傅的layout,成功打样并贴片:

剩下的就是解决软件的问题了(本人舒适区)。
三、当你觉得手搓驱动太烦
由于这块板子是自己做的,同时这块屏又没有任何现有的公共驱动资源(屏幕IC是NV3022,触摸驱动是CST08C),所以需要根据初始化代码手搓一些测试用的绘图函数(我好歹做GUI这块的,学计算机图形学的时候研究过各种划线函数AA函数,这块还是写得出的)。但是这种枯燥的工作我更想让AI试试帮我写。
我在MCUXpresso中配置好了所需要的引脚、外设和时钟(一个LPSPI和一个LPI2C),并将截图直接发给了Gemini。

Gemini给出的驱动完全可以运行!
接下来是触摸IC的驱动了,没有资料的触摸IC的解法就是扫I2C地址读寄存器用来确定触摸点位,这波让AI直接通过老一辈打法攻克就行,这样就可以节省时间。
最后让AI在主函数里写好测试功能,完成全部驱动编写和功能验证工程!

四、投入使用
AI成功将一块“三无产品”变成了有基础驱动的一个成品板卡,直接将所有的基础工作打通。现在该我们“人工队”上了。
回到一开始制作这块屏幕的初衷,我希望有一个合适的配件能够帮我做数据可视化和小型GUI,于是我就根据MCUXpresso MCXA156 SDK中的i3c_master_read_sensor_p3t1755示例工程进行了修改移植。这个demo实现了MCXA156的I3C leader模式读取FRDM-MCXA156板卡上的p3t1755传感器以获取环境温度值并通过UART发送的功能,我要做的就是将这一值显示到这块屏幕上。
想要实现也非常简单,只需要配置好I3C的leader模式和接口时钟源、引入p3t1755的驱动(在MCUXpresso中可直接下载,是fsl_p3t1755.c/.h,会自动归入component文件夹)、写好I3C读写函数、分配传感器动态地址等函数就可以很方便地解决。
为了显示字符和图片,需要添加字库(网上找就行)和图像数组(用image2lcd转一下就行),并写好显示字符和图像的函数(已经N年没有写过这么基础的程序了,颇有种怀旧风)。
写好后,编译、debug。
有AI和朋友的帮助,这样一个小制作不到一周便从想法到落地实现。熟悉我文章的朋友们肯定知道我一般会放代码进来的,不过为了压缩文章的长度,最后决定不放,有需要的请访问我的代码仓库。我在Github仓库里上传了两个demo工程和该板卡的设计文件,需要的朋友可以根据我写的README搞清楚这个仓库里有什么。https://github.com/Nathan-Xi/NX_146_SPI_MKB-MIKROBUS-Graphics-Expansion

五、后 记
有关于这个小硬件的制作过程,我思考了很久。
我开发过很多类型的人工智能的应用(机器学习、深度学习、简单的AI agent等)。我曾经是一个生成式人工智能的抵制者,认为使用它会消灭人的意志,同时可能会派生出一系列安全问题。所以当社会刚刚开始痴迷于OpenClaw的时候,我便意识到了这会存在严重的安全威胁(为什么会有人把自己PC的admin权限给一个可能胡作非为的大模型?)。从2023年起直到现在,我将我的AI使用限定在了免费的chat软件上(我不指望AI能代替我干什么,而且更不希望AI侵入我的生活)。
不过在2025年,我的态度发生了改变。一切源于我的家人被网上“deepseek本地部署”的一个deepseek虚假网站骗了几百块钱,我接过家人的电脑,与骗子斗智斗勇,最后成功将钱款索回。我问他,为什么如此痴迷于AI。家人告诉我,AI能帮他学到很多:有些问题,你问AI,它可以帮你指一条路。
这么一想,AI确实能帮我解决部分问题:即便它给出的信息存在偏差,或者AI幻觉,但至少能帮我摸清学习一项技能的基本规律与路径。也正因如此,我逐渐形成了如今 “半依赖” AI的使用习惯 —— 借助AI梳理整体框架与规律,再通过人工对细节进行严谨求证与修正,从而避开AI可能带来的认知误区。
这一模式让我从被动受AI支配,转向借助AI加速自身素养的形成,并最终沉淀为属于自己的能力。它既能克制过度依赖,又能高效助力技能学习:我只是以AI的建议为参考,最终的思考、判断与实践,依然落回到自己身上。
这不是一个“伟大”的项目,但它让我第一次完整走完:想法 → 设计 → 打样 → 驱动→ 实际使用的全过程。
如果这篇文章,能让你多一点“我也可以试试”的勇气,那它就已经完成使命了。
评论区
登录后即可参与讨论
立即登录