一、单片机型号:STC89C58RD+(不带内部RC时钟),
下载软件:STC-ISP(V6.8B),
下载器:USB转TTL,
外部晶振:14.7456MHz
实验步骤:
1.单片机中已经存在用外部晶振的程序,打开STC-ISP软件,点击,结果能检测到MCU,如图1
2.去掉晶振,点击,结果检测不到单片机,如下图2
3.结论:STC89C58RD+程序下载引导程序用的晶振是外接晶振。又因为没有内部时钟源,所以若没有外部时钟,该型号单片机一定下载不进程序。
二、单片机:Atmea128A
下载软件:AVRStudio 4.19,
下载器: AVRJTAG仿真器,
外部晶振:14.7456MHz
实验步骤:
1.外接晶振,烧写熔丝位为外部时钟图3,选择JTAGmode,点击flash下载程序按钮,
结果可以下载,如图5
2.把外部晶振去掉,烧写熔丝选择内部时钟,如图6,烧录程序,可以烧录,如图7
3.把外部晶振去掉,烧录熔丝位选择外部时钟,如图8。烧写程序,如图9,均可以完成
4.结论,从以上实验得出,在JTAG方式下载程序时,无论外部晶振是否存在,ATMEGA128A都可以下载进程序。所以ATMEGA128A烧录程序的引导程序用的时钟源不是外部时钟源,至于是JTAG引入的时钟源,还是片内自带的时钟源,我目前还没找到方法辨别。
三、单片机型号:STM32F101CBT6
下载软件:Flash Loader DemonstratorV2.6.0
下载器:USB转TTL,串口下载方式
外部晶振:12M
1.新搭建最小系统,不外接12M晶振,打开Flash Loader Demonstrator如图10,软件点击NEXT按钮,得图11。最后能下载进程序,如图12
2.外接上12M晶振。也能如图10,图11,图12下载进程序
3.去掉12M晶振。也能如图10,图11,图12下载进程序
4.结论:STM32F101CBT6的下载程序引导程序用的时钟源是片内时钟源,与片外时钟源无关。无论外部晶振接否,都不影响程序下载。
四.单片机型号:STC12C5410AD
下载软件:STC-ISP(V6.8B),
下载器:U8-5V Programmer/编程器
外部晶振:22.1184MHz
实验步骤:
1.搭建最小系统,未下载过程序的单片机,把“选择使用内部IRC时钟”去掉,不接外部晶体,点击“下载/编程”,结果如图13可以下载进程序。
2.在步骤1的基础上,不使用内部IRC时钟,不接外部晶体,点击“下载/编程”,结果如图14,不能下载程序。
3.在步骤1的基础上,使用内部IRC时钟,不接外部晶体,点击“下载/编程”,结果如图15,不能下载程序。
4.在步骤1的基础上,不使用内部IRC时钟,接外部晶体,点击“下载/编程”,结果如图16,可以下载程序。
5.在步骤4的基础上,使用内部IRC时钟,接外部晶体,点击“下载/编程”,结果如图17,可以下载程序。
6.结论:STC12C5410AD单片机的下载引导程序用的时钟源取决于上一次烧录程序所选择的时钟源,初次下载程序默认使用内部IRC时钟源。也就是说,若之前烧录程序时选择用外部时钟,但再烧录程序时,晶体坏了,那么下载引导程序无时钟源,不运行,下载不进程序。