专栏/检测STC单片机原理及数据分析

检测STC单片机原理及数据分析

2019年12月29日 01:34--浏览 · --点赞 · --评论
粉丝:3.0万文章:58

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主个人分析

上图为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

 

 

 

 

 

 

 

 

 


投诉或建议