随着电子产品的飞速发展,MCU的集成度越来越高,体积越来越少,封装形式越来越多。编程是产品上市前至关重要的一道工序,采用什么样的编程方式才适合产品生产呢,本文为您解惑。
工业技术的大幅度提高,用户对电子产品性能的需求增加,使得电子产品的设计也趋于模块化,高集成度,高配置,小体积。利用BGA,QNF等小体积封装的MCU搭配必要的外围电路,一块只有纽扣电池大的线路板,也可以实现丰富的功能。
芯片种类成千上万,芯片封装形式的多种多样,PCB板子的设计更是千变万化。选择什么样的烧录方式和生产工具,以及预留合适的烧录接口才能使生产更高效呢?
哪种编程方式才适合自己?
芯片的编程方式分两种,即离线编程和在线编程。
离线编程是指芯片(裸片)放到烧录夹具中,通过编程器烧写程序后再贴到PCB板子上;
在线编程是指芯片先贴板,然后通过PCB板上预留的仿真烧录接口烧写程序。
两种编程方式截然不同,也各有优缺点:
离线编程效率高,但烧录夹具是耗材,会增加一定的生产成本,并且编程完成后无法立即验证产品功能性;
在线编程不需要烧录夹具等耗材,可通过烧录工装直接对PCB板上的芯片编程,编程后即可对板子进行功能测试,但烧录效率相对于离线烧录来说就没那么高。
一般来说,对于Flash存储芯片,特别是大容量的NAND Flash,eMMC,此类芯片引脚较多,Flash存储容量比较大,编程时用到高速信号,此类芯片一般采用离线烧写,以保证烧录效率和稳定性。对于MCU,特别是BGA、QFN等小封装的MCU,本身体积小的特点不利于产线工人烧录,用到的精密烧录夹具价格也不菲,此类芯片适合贴板后再烧录,可减小生产成本;对于无线模块,蓝牙模块,智能家居产品等,这些产品都有个特点,即出货数量庞大,产品尺寸较小, 对烧录的良品率要求严格。此类产品适合在线编程的方式生产。
用户可根据自己的实际情况采用适合自己的编程方式。
哪种编程接口好?
在使用在线编程方式烧写芯片时,需要将编程接口引出,常用的有JTAG/SWD/SPI/UART/BDM/C2等,芯片的用户手册会介绍芯片相关的编程协议以及编程接口,用户只需根据手册设计相应的编程接口即可。
有些芯片支持多种编程协议,如ST厂家的ARM芯片就有很多支持JTAG/SWD/UART三种编程协议烧写,用户只需预留其中一种编程器支持的接口即可。有些MCU,如NXP的LPC的ARM7系列,既支持JTAG/SDW协议,也支持UART协议,但在加密后只能通过UART协议擦除。如果用户考虑加密,并且需要二次升级程序的,需要将两种接口都预留出。
哪种烧录工装的效率更高?
通过芯片手册可以知道该留出何种编程接口。问题来了,要以什么方式预留呢?
芯片原厂在评估板/开发板上一般都会预留出仿真接口,如ARM芯片的标准20P仿真接口;标准的仿真接口有利于研发工程师开发调试,但在实际产品中,为了节省器件成本和PCB板空间,一般不会将标准接口作为产品编程的预留接口,而是采用焊盘,排针,金手指等方式将编程接口引出,再通过烧录工装或其他专用的烧录夹具对PCB板子进行编程。
ZLG专注编程器行业多年,P800isp在线编程器支持JTAG/SWD/SPI/UART/BDM/C2等众多串行协议的在线编程,更有众多无线/蓝牙/汽车电子等智能硬件的成熟烧写案例。P800系列编程器支持在线,离线等多种烧写方式,是您的编程好伙伴。
总结
综上所述,编程的方式分为离线和在线,在线编程中编程接口的预留需要考虑MCU本身特性和生产需要。选择合适的编程方式,可以减少成本,提高效率。
-
mcu
+关注
关注
146文章
17404浏览量
353374 -
编程
+关注
关注
88文章
3647浏览量
94216
原文标题:【盘点】智能硬件编程正确打开方式
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
编程93AA46AE需要什么样的模块
请问什么样的MCU可以用来编程PSoC4芯片?
如何写c代码才能让程序的执行效率更高?
MCU的编程方式
FOC控制方式和六步换向方式哪个效率更高呢?
IT行业的未来是什么样?
什么样的编程方式才适合产品生产?
什么样的电池可以修复?什么样的电池不能修复?

什么是堆内存?存储方式是什么样的?

评论