本文总体介绍了Silicon Labs 产品编程烧录选择,对于一个空白器件最常用的编程方法主要有两种,系统编程和预编程,对于这两种方法的选择,主要考虑两方面,一方面看需编程的器件数量,另一方面考虑需编程的器件上是否预留调试引脚(JTAG或C2),一旦器件被编程一次,器件即可通过UART或其他接口升级固件。
% K* B$ ?2 t* \6 m5 \
4 l1 T6 k3 x( L0 {
编程需注意的关键点:
- o! }8 s6 J$ Y( a& ]
1)使用系统编程器件时,必须保证编程主机和编程器件共地,# S; r/ u5 ~. l# x
2)只要器件被编程一次,器件即可通过接口协议在线升级程序固件,
, l+ n4 p( b- H$ y* ?
3)Silicon Labs(EC2)串行调试器除了用于开发调试,也可用于产线上器件程序烧录。
: P# i6 F9 N6 W" \ d; {& q
7 i# I& O" H% }5 d; ]8 S; w
系统编程
在系统编程即将器件贴片安装到终端系统上后再编程器件,这种情况下,调试接口引脚(JTAG或C2接口)提供了目标器件和编程器的连接接口,编程器可使用Silicon Labs的串行调试器(EC2),定制编程器或JTAG编程器,Silicon Labs的器件支持JTAG编程。; z+ |# p% n6 d/ V/ l
V" m" @4 ]+ w1 v( G+ M
不管是使用Silicon Labs的串行调试器还是定制一个编程器,在系统编程都需要器件提供 (JTAG或C2)调试接口引脚。其中,JTAG编程接口引脚包括TCK、TMS、TDI、TDO和GND,并且编程器的地和目标器件的地必须连接到同一地。C2编程接口包括C2CK、C2D和GND。
i/ u5 Q8 v2 @( @4 Y1 k$ @
' R _; K0 E8 o0 }Silicon Labs(EC2) 串行调试器不但可以用于系统开发调试还可用于生产时器件的编程。
/ L" W6 Q+ Y! P! l* o! m' O1 e& O- Z
Y2 F! T" t, [ w$ I
如果利用EC2串行调试器编程器件,Silicon Labs 提供了一个命令行加载工具FlashUtilCL.exe,支持加载HEX文件到目标器件,这个工具也支持JTAG加载,这个命令行加载工具可从Silicon Labs网站的开发工具网页下载。命令行加载编程工具提供了Silicon Labs的DLL工具,这个DLL可用于编写定置软件(使用比如VISUAL Basic或Visual C++)并通过EC2串行调试器编程器件。 @; r8 y8 o- F9 b: p7 ~. i
4 H, }. I: H/ x: U2 H7 T: |. e; ?
预编程器件
预编程用于终端系统器件没有提供调试引脚,器件被贴片到终端系统上之前需预先编程好。预编程可利用Silicon Labs提供的出厂编程服务,或制作定制编程器,也可利用第三方编程器编程。
6 U$ c% c4 ~! `2 _) X) ?
9 C. h1 h. V5 ^; z& \+ d d
在产品订购时,Silicon Labs针对所有的C8051F系列器件提供了一个编程服务,客户可以直接将预编程好的器件贴片到最终系统上,不需要预留调试接口引脚。可联系Silicon Labs的代理商世强了解相关信息。也可选择通过定制编程器,在器件贴片安装到最终系统前编程器件,这类编程器一般都会有一个或多个编程卡座用来固定空白器件,用于编程器件。很多第三方编工具提供Silicon Labs器件编程选择,这些第三方供应商可从Silicon Labs网站找到,可联系这些供应商了解更多编程解决方案。
5 w8 E0 r" _* |4 \' F: N) t
: [' r, q5 e2 K5 c3 O5 k
升级固件
$ d' P5 y2 V6 h8 P5 x: Q# e3 `5 l0 m
所有的Silicon Labs 器件具有通过应用程序编程FLASH升级固件的功能,一旦一个空白器件被编程过一次,即可通过应用程序在线升级固件。固件的升级可通过应用程序接收升级数据,通信接口可以是任何通信外设,比如UART或I2C等等,具体可查看应用笔记AN112,通过串口UART升级固件的例子。