STC-ISP软件检测单片机50个数据的含义

作者bilibili-UP主:--电子工作室--
(特别说明:本文内容以检测STC8单片机为基础进行分析,STC15,STC12等其他型号对数据可能不适应)
本文内容:STC-ISP软件检测MCU的全过程,及单片机通过串口回复给软件数据的含义
本文相关视频请在评论区查看
1,检测原理
1,软件发送0X7F
STC-ISP软件,点击检测MCU按钮后,会发送0X7F数据,以最低波特率(软件左上方自行设置),每12ms发送一次(测量的)。
2,单片机复位
单片机复位后,会使系统从ISP监控程序区开始执行程序,检测到合法的ISP下载命令流,单片机会回复50个数据(以电脑检测的波特率回复)
3,电脑回复
电脑发送46 B9 6A等几个数据,结束检测
如果电脑回复:46 B9 6A 00 0C 00 02 00 00 80 00 00 F8 16 FE FE FE FE
单片机会接着回复,进行频率调节,之后擦除数据,写入代码
(对单片机下载过程,暂时不进行分析,但是对单片机下载的第一步,就是对单片机进行检测)
2,50个数据的含义
单片机回复50个数据,这些数据,有些是固定的,有些是校验码,以下分析均为个人推测,大部分正确,可能存在错误,欢迎和作者进行交流。
1-6位,是固定值,可能是代表STC8单片机系列+部分固定值
7,8,9,11位就是单片机内部IRC的频率了,如果使用外部晶振,这个就不清楚了
用32位二进制表示单片机内部晶振,最高位一般是1或者0,
15,16,17,21位代表单片机设置,也就是下载代码时,进行的硬件设置
19,20位,这个可以计算检测波特率(软件发送0X7F的波特率)
这两位的数值,×检测波特率=24M
22,27,37,38,40,46位,和单片机型号有关,具体什么关系,我也搞明白(数据量不够),其中,第27位,好像直接影响单片机信息,我在调戏STC-ISP软件时,改变27位数值,就能让软件直接识别成其他型号
29,30位,两位代表单片机掉电唤醒定时器的频率,
43,44,45位代表单片机测试的年,月,日
如0x18,0x10,0x19,就表示2018年10月19日进行内部测试
48,49位,是校验位,对前47位数据进行累加,
(SUM/256)-1=(48位数值)
(SUM%256)+1=(49位数值)
就是上边这个关系,当然,这个是推理出来
剩下很多数据,我没有分析,很多是固定码,也有可能是杂乱码(每个单片机都不同,可能和单片机序列号有关)

上图为UP主个人分析,如果有兴趣,可以加入QQ群进行交流,群号见主页
STC-ISP检测单片机信息实例
正在检测目标单片机 ...
单片机型号: STC8F2K16S2
固件版本号: 7.3.10U
当前芯片的硬件选项为:
. 内部IRC振荡器的频率: 24.000MHz
. 掉电唤醒定时器的频率: 34.600KHz
. 振荡器放大增益使能
. P3.2和P3.3与下次下载无关
. 上电复位时增加额外的复位延时
. 复位引脚用作普通I/O口
. 检测到低压时复位
. 低压检测门槛电压 : 2.20 V
. 上电复位时,硬件不启动内部看门狗
. 上电自动启动内部看门狗时的预分频数为 : 256
. 空闲状态时看门狗定时器停止计数
. 启动看门狗后,软件可以修改分频数,但不能关闭看门狗
. 下次下载用户程序时,将用户EEPROM区一并擦除
. 下次下载用户程序时,没有相关的端口控制485
. 下次下载时不需要校验下载口令
. TXD与RXD为相互独立的IO
. 芯片复位后,TXD脚为弱上拉双向口
. 芯片复位后,P2.0输出高电平
. 内部安排测试时间: 2018年10月22日
单片机型号: STC8F2K16S2
固件版本号: 7.3.10U