常见的芯片封装技术

两边出pin的封装

1、DIP封装
DIP封装(Dual In-line Package),也叫双列直插式封装技术,指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路均采用这种封装形式,其引脚数一般不超过100。DIP封装的CPU芯片有两排引脚,需要插入到具有DIP结构的芯片插座上。当然,也可以直接插在有相同焊孔数和几何排列的电路板上进行焊接。DIP封装的芯片在从芯片插座上插拔时应特别小心,以免损坏管脚。DIP封装结构形式有:多层陶瓷双列直插式DIP,单层陶瓷双列直插式DIP,引线框架式DIP(含玻璃陶瓷封接式,塑料包封结构式,陶瓷低熔玻璃封装式)等。

在这里插入图片描述
DIP封装具有以下特点:

  • 适合在PCB(印刷电路板)上穿孔焊接,操作方便;
  • 芯片面积与封装面积之间的比值较大,故体积也较大;

DIP是最普及的插装型封装,应用范围包括标准逻辑IC,存储器和微机电路等。最早的4004、8008、8086、8088等CPU都采用了DIP封装,通过其上的两排引脚可插到主板上的插槽或焊接在主板上。

2、SOP封装
SOP封装(Small Out-Line Package,小外形封装),也是一种非常常见的表面贴装型封装技术。引脚从封装两侧引出呈海鸥翼状(L 字形),材料有塑料和陶瓷两种。后来,由SOP衍生出了SOJ(J型引脚小外形封装)、TSOP(薄小外形封装)、VSOP(甚小外形封装)、SSOP(缩小型SOP)、TSSOP(薄的缩小型SOP)及SOT(小外形晶体管)、SOIC(小外形集成电路)等。

在这里插入图片描述

该类型的封装的典型特点就是在封装芯片的周围做出很多引脚,封装操作方便,可靠性比较高,是目前的主流封装方式之一,属于真正的系统级封装。目前比较常见的是应用于一些存储器类型的IC。

四边出pin脚的封装

3、QFP封装
QFP封装,中文含义叫方型扁平式封装技术(Quad Flat Package),该技术实现的CPU芯片引脚之间距离很小,管脚很细,一般大规模或超大规模集成电路采用这种封装形式,其引脚数一般都在100以上。用这种形式封装的芯片必须采用SMD(表面安装设备技术)将芯片与主板焊接起来。采用SMD安装的芯片不必在主板上打孔,一般在主板表面上有设计好的相应管脚的焊点。将芯片各脚对准相应的焊点,即可实现与主板的焊接。

在这里插入图片描述

QFP封装具有以下特点:

  • 该技术封装CPU时操作方便,可靠性高;
  • 其封装外形尺寸较小,寄生参数减小,适合高频应用;
  • 该技术主要适合用SMT表面安装技术在PCB上安装布线;

目前QFP/PFP封装应用非常广泛,很多MCU芯片都采用了该封装。

4、QFN封装
QFN(Quad Flat No-leadPackage,方形扁平无引脚封装),是一种无引线四方扁平封装技术。它是具有外设终端垫以及一个用于机械和热量完整性暴露的芯片垫的无铅封装。

在这里插入图片描述

该封装可为正方形或长方形。封装四侧配置有电极触点,由于无引脚,贴装占有面积比QFP小,高度比QFP低。

以下是pin脚隐藏的封装

QFN封装的特点:

  • 表面贴装封装,无引脚设计;
  • 无引脚焊盘设计占有更小的PCB面积;
  • 组件非常薄(<1mm),可满足对空间有严格要求的应用;
  • 非常低的阻抗、自感,可满足高速或者微波的应用;
  • 具有优异的热性能,主要是因为底部有大面积散热焊盘;
  • 重量轻,适合便携式应用。

QFN封装的小外形特点,可用于笔记本电脑、数码相机、个人数字助理(PDA)、移动电话和MP3等便携式消费电子产品。从市场的角度而言,QFN封装越来越多地受到用户的关注,考虑到成本、体积各方面的因素,QFN封装将会是未来几年的一个增长点,发展前景极为乐观。

5、BGA封装
BGA技术(Ball Grid Array Package),球栅阵列封装技术。该技术的出现便成为CPU、主板南、北桥芯片等高密度、高性能、多引脚封装的最佳选择。但BGA封装占用基板的面积比较大。虽然该技术的I/O引脚数增多,但引脚之间的距离远大于QFP,从而提高了组装成品率。而且该技术采用了可控塌陷芯片法焊接,从而可以改善它的电热性能。另外该技术的组装可用共面焊接,从而能大大提高封装的可靠性;并且由该技术实现的封装CPU信号传输延迟小,适应频率可以提高很大。

在这里插入图片描述

BGA封装具有以下特点:

  • I/O引脚数虽然增多,但引脚之间的距离远大于QFP封装方式,提高了成品率;
  • 虽然BGA的功耗增加,但由于采用的是可控塌陷芯片法焊接,从而可以改善电热性能;
  • 信号传输延迟小,适应频率大大提高;
  • 组装可用共面焊接,可靠性大大提高;
以下是用51单片机连接共阴极8位数码管显示数字时钟的基本代码,仅供参考: ```c #include <reg51.h> #define uchar unsigned char #define uint unsigned int uchar code table[] = { // 共阴极8位数码管显示0~9的编码值 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; uchar hour = 0; // 小时数 uchar minute = 0; // 分钟数 uchar second = 0; // 秒数 void delay(uint t) { // 延时函数 uint i, j; for (i = t; i > 0; i--) for (j = 110; j > 0; j--); } void display(uchar *p) { // 数码管显示函数 uchar i; for (i = 0; i < 8; i++) { // 8位数码管循环显示 P2 = 0xff; // 关闭数码管 P0 = p[i]; // 设置要显示的数字 P2 = ~(1 << i); // 打开对应的数码管 delay(1); // 延时1ms } } void main() { TMOD = 0x01; // 定时器0工作方式1,16位计数器模式 TH0 = 0x4c; // 定时器初值,1ms定时 TL0 = 0x00; EA = 1; // 开启总中断 ET0 = 1; // 开启定时器0中断 TR0 = 1; // 开启定时器0 while (1) { // 主循环 uchar p[8]; p[0] = table[hour / 10]; // 显示小时的十位数字 p[1] = table[hour % 10]; // 显示小时的个位数字 p[2] = 0x40; // 显示冒号 p[3] = table[minute / 10]; // 显示分钟的十位数字 p[4] = table[minute % 10]; // 显示分钟的个位数字 p[5] = 0x40; // 显示冒号 p[6] = table[second / 10]; // 显示秒的十位数字 p[7] = table[second % 10]; // 显示秒的个位数字 display(p); // 数码管显示 } } void timer0() interrupt 1 { // 定时器0中断服务函数 TH0 = 0x4c; TL0 = 0x00; second++; // 秒数加1 if (second == 60) { // 如果秒数达到60 second = 0; // 秒数清零 minute++; // 分钟数加1 if (minute == 60) { // 如果分钟数达到60 minute = 0; // 分钟数清零 hour++; // 小时数加1 if (hour == 24) // 如果小时数达到24 hour = 0; // 小时数清零 } } } ``` 注意:以上代码仅供参考,具体实现方式可能因人而异。同时,为了保证代码的正确性和可靠性,建议在编写代码时仔细思考和测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值