乘风飞扬 发表于 2024-8-26 11:41:22

芯LYS 发表于 2024-8-26 10:57
陈工你好帮忙看一下,客户提出的疑问是 :这个我们是主芯片和你们stc8A8K64D4交互,这个是握手阶段,看有 ...

8系列单片机,这几个FF参数是不影响下载的。
麻烦提供从握手开始,完整的收发数据,像上面提供的txt文件。

huangpingping 发表于 2024-8-26 14:18:23

查看附件,其中我们主芯片和8A8K64D4单片机的交互到第二个发送波特率的命令后,
就没有继续收到你们回的消息。而相同的逻辑,在8A8K64S4A12的单片机上一直都有
回复消息给我们这边主芯片。整个流程见附件,麻烦分析一下。

zhp 发表于 2024-8-27 10:57:17

huangpingping 发表于 2024-8-26 14:18
查看附件,其中我们主芯片和8A8K64D4单片机的交互到第二个发送波特率的命令后,
就没有继续收到你们回的消 ...
从你给出的数据看,前面的握手通信没问题
8A8K64D4目标芯片的ISP的工作频率也是24MHz
一旦通信波特率从2400转换为115200后通信就断掉了

可以从下面两点对问题进行排查:
1、用示波器看一看,最后发送的命令的波特率是否是115200
2、波特率从2400转为115200后,延时5~10ms再发送“46 B9 6A 00 0B 05 00 00 5A A5 01 79”

huangpingping 发表于 2024-8-27 16:02:57

现在在8A8K64D4上是修改成2400握手,然后切换到115200,再延时了10ms再发送“46 B9 6A 00 0B 05 00 00 5A A5 01 79”,现在有收到回应。然后下一步我们这边再发送“46 B9 6A 00 0B 03 00 00 5A A5 01 77”,就没有收到回应。
而在8a8k64s4a12上相同的操作发送“46 B9 6A 00 0B 03 00 00 5A A5 01 77”之后就收到回应。
查看最后发送的波特率确实是115200。
帮忙再分析一下

zhp 发表于 2024-8-28 18:00:02

huangpingping 发表于 2024-8-27 16:02
现在在8A8K64D4上是修改成2400握手,然后切换到115200,再延时了10ms再发送“46 B9 6A 00 0B 05 00 00 5A A ...

从你给定数据看,你发送命令好像都没有送命令结束标志16H


你按照我们的命令标准格式发送试试看

huangpingping 发表于 2024-8-28 18:08:20

是有带结束标志16H的,我那个打印没有打全
FUNC::uart_receive LINE::703 buf=46:b9:68:00:38 len::51
46 B9 68 00 38 50 01 51 06 20 24 20 01 FF FF BF
AF FF 27 11 F7 FE 74 55 00 F7 F4 03 8C A0 23 42
1C 20 1B 18 01 00 00 FE 04 A6 24 05 07 70 0F 01
74 A8 DF
FUNC::mddm_timer LINE::169 buf::7f
FUNC::mddm_timer LINE::176 g_handshake_count::276
FUNC::uart_receive LINE::645 len::55
46 B9 68 00 38 50 01 51 06 20 24 20 01 FF FF BF
AF FF 27 11 F7 FE 74 55 00 F7 F4 03 8C A0 23 42
1C 20 1B 18 01 00 00 FE 04 A6 24 05 07 70 0F 01
74 A8 DF 3F 51 6E A0


FUNC::uart_receive LINE::703 buf

huangpingping 发表于 2024-8-28 18:08:47

FUNC::uart_receive LINE::703 buf=46:b9:68:00:07 len::9
46 B9 68 00 07 05 00 74 16
uart_command: 46 B9 68 00 07 05 00 74 16
g_uart_state 2.

sleep 10ms
, sum 375.
03 00 00 5A A5

46 B9 6A 00 0B 03 00 00 5A A5 01 77 16

zhp 发表于 2024-8-29 09:00:48

huangpingping 发表于 2024-8-28 18:08
FUNC::uart_receive LINE::703 buf=46:b9:68:00:07 len::9
46 B9 68 00 07 05 00 74 16
uart_comman ...

如果命令是按照规范发送的,从你给出的数据就确实看不出问题
我这边也对比了8A8K64A12和8A8K64D4,两个芯片的通信协议真没有什么区别
如果你有逻辑分析仪,最好抓一下完整的串口波形,看看实际的串口接收情况是怎样的
另外,也可以试试将最高和最低波特率都设置为4800或9600看看
页: 1 [2]
查看完整版本: 8A8K64D4替换8A8K64S4A12 uart1烧录失败