小蚊 发表于 2025-2-7 17:04:02

自制ISP下载之写硬件选项问题求解决

想通过自制ISP下载软件,现在在设置硬件选项的的频率中存在问题。



46 B9 6A 00 33 04 00 00 5A A5 FF FF FF 00 FF FF 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 FF 02 A3 00 00 98 30 01 FF FD FF FF 3E BF AF F7 FC 1F 92 16


这条命令是设置硬件选项,有4个字节不明白
98 30 01为内置频率,这个是怎么计算的?
3E是固定的?

分别烧录尝试出各频率的值,但是不会计算。求一下计算算法。

STC的频率
5.5296MHz:24 20 04
6.000MHz:46 20 04
11.0592MHz:24 20 02
12.000MHz:46 20 02
18.432MHz:52 30 02
20.000MHz:6F 30 02
22.1184MHz:24 20 01
24.000MHz:46 20 01
27.000MHz:78 20 01
30.000MHz:AE 20 01
33.1776MHz:E5 20 01
35.000MHz:40 30 01
36.864MHz:52 30 01
40.000MHz:6F 30 01
44.2368MHz:98 30 01
48.000MHz:C0 30 01


神农鼎 发表于 2025-2-7 17:44:46

AI8051U



DebugLab 发表于 2025-2-7 23:22:36

也可以使用用户自定义ISP,以用户自定义的协议下载
收到命令后从CHIPID寄存器(只读SFR)中读出IRC参数,然后写到IRCBAND和IRCTRIM寄存器实现主时钟频率设置
https://www.stcai.com/zxsj


VCC 发表于 2025-2-7 23:40:24

最后一个字节,一看就是分频系数

你觉得呢?

小蚊 发表于 2025-2-8 10:56:45

VCC 发表于 2025-2-7 23:40
最后一个字节,一看就是分频系数

你觉得呢?

对,以后的字节是 主时钟分频系数

小蚊 发表于 2025-2-8 10:58:14

神农鼎 发表于 2025-2-7 17:44
AI8051U

做烧录器没办法要求固件设置运行频率

神农鼎 发表于 2025-2-8 13:06:23

小蚊 发表于 2025-2-8 10:58
做烧录器没办法要求固件设置运行频率

用户在用户程序区自己设置

小蚊 发表于 2025-2-8 13:58:25

神农鼎 发表于 2025-2-8 13:06
用户在用户程序区自己设置

我知道的设置,但是不能要求用户写代码设置。所以需要再烧录的时候设好。

小蚊 发表于 2025-2-8 13:59:22

神农鼎 发表于 2025-2-8 13:06
用户在用户程序区自己设置

现在只能动态调节计算,但是会有一点误差,想直接用内置的频率

小蚊 发表于 2025-2-8 17:14:38

神农鼎 发表于 2025-2-8 13:06
用户在用户程序区自己设置

现在使用动态调整频率,误差在-0.260% 不知道影响有多大。 烧录工具用ESP32 S3制作的。

08 16:47:55 I/0 Target model:
08 16:47:55 I/0   Name: STC8H8K64U
08 16:47:55 I/0   Magic: F784
08 16:47:55 I/0   Code flash: 63.5 KB
08 16:47:55 I/0   EEPROM flash: 0.5 KB
08 16:47:55 I/0 Target frequency:
08 16:47:55 I/0 trim_divider: 99 30 01
08 16:47:55 I/0 Target 44.237 MHz
08 16:47:55 I/0 Adjusted frequency: 44.122 MHz(-0.260%)
页: [1] 2
查看完整版本: 自制ISP下载之写硬件选项问题求解决