曾有几个人发布文章说,许多AVR芯片上都需要一个晶振才能编程。我却从未听说也没用PIC试过(尽管PIC编程需要在高电压下实现,而不是像许多atmega类型芯片通常采用的低压/ SPI方法)。
常用的Farnell芯片在安装在分接板或者初始原型游戏板上时都可以正常工作。但众所周知,分接板在引入外部晶振(用于修复芯片工作异常)前,其程序都已被设定。
我们使用的初始原型游戏板不含晶振,否则无法对板卡上的芯片编程。我们已经用最新版固件将其编程,游戏板能够正常工作,这在某种程度上说明不需要晶振。
但我们用相同的办法,却花了几乎一天时间辨别芯片的真假(诚然,检查芯片真伪耗时耗力,不过却很有必要!)。因为我们需要证明:问题不是因游戏板缺少晶振而起。
通过23+24引脚连接一16Mhz晶振后,我们再一次检查AVRDudess是否能识别芯片。结果与之前一致——未发现MCU。那么发现了哪个设备ID呢?
然而每次发送寻找设备请求时设备ID都不一致,这让我们着实费解。
这种错误也毫无规律可言。表面上看,每次按下“搜索设备”按钮时,出现的就是一段任意的数字;而其中的id地址以“0x666c61”和“0x656570”出现频率最高。
不过不管这是哪种芯片、或者芯片是否需要晶振,出现的问题至少证明:手中这块芯片与AVR atmega相距甚远。