第一次接触新唐NUC980系列芯片时,我正为一个工业物联网网关项目选型。当时市面上常见的STM32和ESP32在性能和外设支持上总差那么点意思,直到发现了这颗搭载ARM926EJ-S内核的NUC980DK61YC。它的128引脚LQFP封装对DIY非常友好,内置64MB DDR2内存的设计更是省去了高频布线烦恼。
官方NuMaker-IIoT-NUC980开发板要价近千元,而且板载的多数功能我的项目根本用不上。这促使我决定自己设计开发板,既能节省成本,又能按需定制。实测下来,用KiCad从零设计一块基础功能板的总成本可以控制在200元以内,这对小批量试产特别友好。
工欲善其事必先利其器,我选择KiCad 6.0作为主要设计工具。相比商业EDA软件,KiCad的开源特性意味着所有设计文件都能被同行无障碍查看和修改。安装时记得勾选3D模型库,这对后期检查结构干涉很有帮助。
官方提供的设计资源包一定要下载,特别是:
根据项目需求,我确定了开发板的核心功能模块:
相比官方评估板,去掉了CAN总线、NAND Flash等工业专用接口,增加了更通用的GPIO扩展区域。这种"够用就好"的设计哲学,让PCB尺寸控制在10x6cm以内。
NUC980需要1.2V内核电压和3.3V IO电压。我选用MP2307DN作为DC-DC降压芯片生成3.3V,再通过TPS76912 LDO得到1.2V。这种组合方案实测效率达到85%,比纯LDO方案发热量降低60%。
关键设计要点:
kicad复制POWER Section:
Vin 5V ---[MP2307DN]--- 3.3V ---[TPS76912]--- 1.2V
│
└── 3.3V_PERIPHERALS
ARM926EJ-S核心的布线要特别注意时钟信号完整性。我采用的四层板结构中,专门用中间层作为完整地平面。外部12MHz晶体的负载电容要根据实际晶振参数调整,我的方案是22pF+10pF可调电容并联。
DDR2内存是芯片内置的,但还是要遵循官方Layout Guide:
选用常用的LAN8720A作为PHY芯片,通过RMII接口连接。这个设计有个坑要注意:NUC980的REF_CLK输出默认是50MHz,而LAN8720A需要25MHz。我最初没注意这个细节,导致网络始终无法连通。解决方法是在软件配置中将时钟分频。
开发板的USB_OTG接口特别容易在热插拔时损坏。我的解决方案是:
实测这套防护方案经受住了2000次插拔测试,比官方评估板的防护更可靠。
四层板采用经典结构:
这种布局使得高速信号都有完整参考平面,实测EMI测试比双面板改善15dB以上。
USB差分对要严格等长(误差<50mil),我采用蛇形走线补偿。以太网TX/RX对则要注意100Ω阻抗控制,有条件的话最好做板厂阻抗测试。
一个实用技巧:在KiCad中设置设计规则检查(DRC)时,把高速信号线的间距规则设为3W原则(线间距≥3倍线宽),能有效减少串扰。
焊接完第一块样板后,建议按这个顺序测试:
我制作了一个简单的测试治具,通过排针连接开发板,可以快速完成前四项基础测试。
遇到无法启动的情况时,先检查:
有个隐蔽的坑:NUC980的nRESET引脚内部有弱上拉,如果外部上拉电阻过小(如4.7kΩ),可能导致复位信号无法拉低。建议使用10kΩ以上电阻。
把设计文件开源到GitHub后,收到了不少开发者的改进建议。维护这类硬件开源项目有几个心得:
项目开源半年后,有三位开发者基于我的设计做出了变种版本,有的增加了LoRa模块,有的优化了电源设计。这种协作进化正是开源硬件的魅力所在。