这个项目开始于一个需要建立一个简单的设备来监控CAN总线。我选择NUC140LC1CN 32K Cortex-M0微处理器Nuvoton主要原因是它有USB和CAN外设。
特征
示意图
启用NUC140与CAN总线通信的CAN外围设备需要CAN收发器。这个TJA1051TNXP的芯片解决了这个问题。这个NUC140该装置能够从5V电源供电,不需要额外的3.3V电压调节器。这种方便的组合使得实现CAN总线接口的任务变得简单。有三个状态指示灯:
D1是到主机的USB连接状态
D2显示CAN总线活动
D3表示CAN错误
这个NUC140没有内置的引导加载程序,唯一的编程方法是使用ARM串行线调试(SWD)接口(J2连接器)和Nuvoton ICP编程器。是的,如果bootloader已经被预先编程,它可以被激活。这就是JP1 jumper的目的。在接口通电之前连接JP1将触发引导加载程序。
引导加载程序
这个NUC140LC1号闪存分为两部分,一部分用于执行32K大小的用户程序代码(APROM),另一部分用于引导加载程序(LDROM)。LDROM的大小只有4K,这使得构建一个功能齐全的USB引导加载程序成为一个挑战。我使用了Nuvoton提供的大容量存储设备(MSD)引导加载程序。连接跨接线JP1将启动它。因此,在主机文件系统中应该可以看到大小为32KB的可移动驱动器。只需复制粘贴或拖放CAN-USB固件更新到引导加载程序驱动器。拔下USB电缆,拔下跳线并重新插入。新固件更新现在应该正在运行。
编程CAN-USB接口和NUTINY-SDK-140
编程NUC140处理器需要Nuvoton的Nu Link编程器和Nuvoton ICP编程应用. 我决定用NUC140演示板(NuTiny-SDK-140)可从Digi Key获得。它有两部分,一部分是NUC140芯片和Nu-Link编程器本身。该板甚至穿孔,以分离Nu-Link部分。实际上,你可以只围绕NuTiny-SDK-140演示板来构建这个设备,只需要额外的can收发器芯片。
连接Nu-Link后,NUC140的编程并不复杂。这里的关键问题是选择从LDROM加载而不是从APROM加载(在配置设置中),以获得USB引导加载程序功能。
软件
ICEL与USB协议兼容,与USB接口兼容。我用CAN-USB接口测试了两个应用程序:
CANHacker V2.00.02
这个CANHacker应用程序是免费软件。我找不到它的手册,但使用它是简单和直接的。
CAN监视器Pro V2.2
本申请由WGSoft公司. 网站上大部分是德语注释。
PCB设计
印刷电路板