现在的单片机开发有多爽?在VS Code、STM32CubeIDE或者Keil里敲完代码,点一下烧录按钮,通过一根SWD甚至普通的数据线,“唰”的一下,只要一两秒钟,程序就烧进去了。不仅能几十万次地随时重写,还能在线设断点单步调试。
但如果穿越回40多年前的上世纪80年代,去体验一下“上古时期”的单片机开发,可能直接会被逼疯。
让我们来一场“硅基考古”——看看老一辈工程师是怎么用“紫外线灯”给芯片强行洗脑、擦除数据的!
1、脑门上开着“天窗”的单片机
这是一颗上世纪的Intel D87C51FC-20单片机(大名鼎鼎的8051家族成员,型号里的D代表陶瓷封装DIP)。

拿到这颗芯片,最先注意到的绝对是它背上的那个透明玻璃窗。透过玻璃,甚至能直接用肉眼看到里面金闪闪的硅晶片(Die)和极细的打线!

为什么要在芯片上留个窗户?为了散热吗?
当然不是。这颗芯片内部存储代码使用的是UV-EPROM(紫外线可擦除可编程只读存储器)。
在那个年代,往芯片里写数据容易(加上高压电脉冲就能把电子强行打进去),但是想把数据清空却极度困难,因为不能通过电信号直接擦除。
唯一的办法,就是让高能量的紫外线直接照射内部的硅晶片,利用光电效应把电子“轰”出来。这个玻璃窗,就是专门留给紫外线照进去的物理通道。
这块玻璃有多厚?
如果好奇这块天窗玻璃的厚度和封装工艺,暴力砸开一颗带有同样天窗的AMD AM27C64存储芯片就会发现,这块纯石英玻璃的厚度大约是1毫米,并且被极其牢固地密封在陶瓷外壳上,以保证芯片内部的真空和纯净。如果是普通玻璃会大量吸收紫外线,只有高纯度石英玻璃才能让极短波长的紫外线畅通无阻。

2、微观物理学:光子与电子的“越狱之战”
到底为什么紫外线能擦除数据?这里面其实藏着非常硬核的物理原理。
首先,UV的全称是Ultraviolet(紫外线)。
EPROM芯片存数据的核心叫浮栅晶体管(Floating Gate)。可以把它想象成一个微小的多晶硅“孤岛”,四周被厚厚的二氧化硅(SiO₂)绝缘层死死包裹。烧录代码,就是把电子强行打进孤岛;一旦进去,电子就被永远“囚禁”了。
绝缘层就像一堵高墙,在物理学中这堵墙的势垒高度约为3.2eV(电子伏特)。电子自己是翻不过去的。
这时候,高能量紫外线(UVC,波长通常为254nm)出场了。根据量子物理公式,这种波长的紫外线,其携带的每一个光子能量大约是4.9eV!
当短波紫外线穿过石英玻璃打在电子上,电子吸收了光子,瞬间获得了4.9eV的能量(大于墙的高度3.2eV)。于是奇迹发生:电子如同插上了翅膀,直接跃过了绝缘层逃离了浮栅。
所有电子跑光,芯片内的数据就全部恢复到了FF的初始状态!
3、用紫外线给芯片洗脑(擦除数据)
想要彻底清空芯片里的数据,需要用紫外线照射。比如这样:

当然这颗大约5毫瓦的微型紫外LED功率太小,需要照射几个小时。
更常规的是使用这种紫外线灯箱,上面有一个定时的旋钮:

4、上古程序员的噩梦:改个Bug要花一整天?
这块Intel D87C51FC-20单片机的脑子洗干净了,接下来就是写代码。写好的代码用经典的MiniPro TL866编程器,把编译好的Hex文件给烧录进去。

能想象上古时代单片机工程师的调试日常吗?
改两行代码->从电路板拔下芯片插到烧录器->烧完拔下来插回电路板->发现有Bug->拔下芯片丢进紫外线灯箱烤10多分钟->等冷却后再插回烧录器……
循环往复!如果没有昂贵的硬件仿真器,当年为了不浪费时间等紫外线烤芯片,工程师通常会在手边备上十几片一模一样的芯片,轮流烤、轮流烧。
5、烧录完为什么必须“贴膏药”?
如果见过这种老芯片,会发现它们真正在机器里服役时,玻璃窗上无一例外都贴着一张不透光的贴纸。

为什么要贴住?因为要防阳光和日光灯!
虽然穿透大气的太阳光紫外线较弱,但如果芯片不贴贴纸暴露在直射阳光下几周,或者在室内的日光灯下照射几年,日积月累的微弱紫外线依然会给电子缓慢充能。只要有一个电子“越狱”导致数据位发生翻转(Bit Flip),哪怕只错了一个字节,整个程序就会瞬间崩溃死机!
同时,这张“防晒贴纸”也成了早期物理形态的“版本控制系统”。当时的工程师会在贴纸上手写VxWorks 5.1、sv40 3.0这样的字符。每次升级固件,就得撕下旧贴纸,烤完重写后,再郑重地贴上一张写着新版本号的新贴纸,满满的仪式感!
6、结语
看着现在的STM32、ESP32甚至各种原厂主推的现代化集成开发环境,不得不感叹电子技术的进步速度。当年那个脑门上开着天窗、需要用紫外线洗脑的浪漫时代,已经彻底变成了半导体博物馆里的回忆。
来源:电路啊