找回密码
 立即注册
查看: 268|回复: 8

想做一个自己的hid下载工具,有通信协议的说明文档吗?

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:283
  • 最近打卡:2025-05-02 12:47:12

11

主题

37

回帖

1048

积分

荣誉版主

积分
1048
发表于 2024-12-3 23:29:10 | 显示全部楼层 |阅读模式

现在可以在PDF中找到串口下载程序的通信协议 但找不到通过hid下载程序的协议 HID下载协议有说明文档吗?

image.png

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:283
  • 最近打卡:2025-05-02 12:47:12

11

主题

37

回帖

1048

积分

荣誉版主

积分
1048
发表于 2024-12-3 23:43:34 | 显示全部楼层

网上找到一个,还没测试

来自 github @robinkrens

# Example on how to use hid to write STC chip series: STC8H8K64U,STC32G12K128,STC32F12K54
# Opens USB HID device and programs flash. No error check. Use at own risk 
# Only tested on STC32F12K54

import hid
import time
import struct
from intelhex import IntelHex
from tqdm import tqdm

PACKET_START = bytes([0x46, 0xb9])
PACKET_END = bytes([0x16])
PACKET_MCU = bytes([0x68])
PACKET_HOST = bytes([0x6a])

h = hid.device()
h.open(0x34bf, 0x1001)
print(f'Found device: {h.get_product_string()}')
# h.set_nonblocking(1)

def send_packet(packet_data):
    packet = bytes()
    packet += PACKET_START
    packet += PACKET_HOST

    # packet length and payload
    packet += struct.pack(">H", len(packet_data) + 6)
    packet += packet_data

    # checksum and end code
    packet += struct.pack(">H", sum(packet[2:]) & 0xffff)
    packet += PACKET_END

    h.write(packet)
    if packet_data[0] != 0xFF: # do not read if reset package
            d = h.read(64) # every HID packet is 64 bytes: currently not read and discarded

## init and erase
send_packet(bytes([0x00, 0x00])) # start
send_packet(bytes([0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00])) # info
send_packet(bytes([0x05, 0x00, 0x00, 0x5a, 0xa5])) # unlock
send_packet(bytes([0x03, 0x00, 0x00, 0x5a, 0xa5])) # erase

ih = IntelHex()
ih.loadhex('led.hex')

for i in tqdm(range(ih.minaddr(), ih.maxaddr(), 0x80)):
    chunk = ih[i:i+0x80].tobinarray()
    packet = bytes()
    if i == ih.minaddr():
        packet += bytes([0x32]) # first package, diff number apperently
    else:
        packet += bytes([0x12])
    packet += bytes([i >> 8 & 0xff, i & 0xff])
    packet += bytes([0x5a, 0xa5])
    packet += bytes(chunk)
    send_packet(packet)

send_packet(bytes([0xFF])) # reset
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4850

回帖

8388

积分

超级版主

DebugLab

积分
8388
发表于 2024-12-3 23:51:29 | 显示全部楼层

这个的协议?
这个没开源
截图202412032350595780.jpg

点评

就是这个,没开源算了,我看网上有人逆向出来了一份  详情 回复 发表于 2024-12-4 00:04
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-04-19 16:12:35
已绑定手机

60

主题

777

回帖

4001

积分

论坛元老

自定义头衔

积分
4001
发表于 2024-12-3 23:56:19 | 显示全部楼层

官方有提供HID方式的用户ISP吗

联系我请点击左下角的【回复】按钮,否则我收不到消息提
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:283
  • 最近打卡:2025-05-02 12:47:12

11

主题

37

回帖

1048

积分

荣誉版主

积分
1048
发表于 2024-12-4 00:04:46 | 显示全部楼层
Debu*** 发表于 2024-12-3 23:51
这个的协议?
这个没开源

就是这个,没开源算了,我看网上有人逆向出来了一份
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:265
  • 最近打卡:2025-05-01 07:25:06

0

主题

206

回帖

1522

积分

金牌会员

积分
1522
发表于 2024-12-4 06:51:47 | 显示全部楼层

:smile:

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2024-12-4 08:16:15 | 显示全部楼层

别家都是藏着掖着的,好像是什么先进技术怕被人家盗版一样,没想到STC连这通讯协议都公开了。

顺便问一下,这帖子怎么只能使用markdown编辑器编辑?表情大拇指跑哪里了?

001.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:40:57
已绑定手机

15

主题

630

回帖

730

积分

高级会员

积分
730
发表于 2024-12-4 22:05:24 来自手机 | 显示全部楼层
xxkj2010 发表于 2024-12-4 08:16
[md]别家都是藏着掖着的,好像是什么先进技术怕被人家盗版一样,没想到STC连这通讯协议都公开了。

顺便问 ...

我咋没看见喃,在哪里哦
STC 666 888
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 昨天 09:59 | 显示全部楼层
Debu*** 发表于 2024-12-3 23:51
这个的协议?
这个没开源

那串口下载的协议有没有开放?

补充:哦,找到了
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 01:01 , Processed in 0.159026 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表