找回密码
 立即注册
查看: 135|回复: 23

stc32g12k128无线下载遇到的问题

[复制链接]

该用户从未签到

1

主题

28

回帖

71

积分

注册会员

积分
71
发表于 2024-4-12 22:04:15 | 显示全部楼层 |阅读模式
采用jdy33蓝牙模块作为无线通信模块,通信成功,能读取到芯片信息,但是下载的时候显示在重新握手的时候通信超时,不知道是什么原因?请各位大佬指点一下

截图202404122204036938.jpg
回复 送花

使用道具 举报

  • TA的每日心情
    开心
    前天 21:44
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    0

    主题

    24

    回帖

    140

    积分

    注册会员

    积分
    140
    发表于 2024-4-12 22:49:28 | 显示全部楼层
    最低波特率设置的太高了,最低波特率一般设置为2400就可以了
    握手时使用的是最低波特率进行通讯的
    所以将最低波特率调低一点再试试看
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 56 天

    [LV.5]常住居民I

    2

    主题

    525

    回帖

    675

    积分

    高级会员

    积分
    675
    发表于 2024-4-12 22:51:38 | 显示全部楼层
    波特率设置最低2400
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    28

    回帖

    71

    积分

    注册会员

    积分
    71
     楼主| 发表于 2024-4-13 09:30:02 | 显示全部楼层
    kaily 发表于 2024-4-12 22:49
    最低波特率设置的太高了,最低波特率一般设置为2400就可以了
    握手时使用的是最低波特率进行通讯的
    所以将最 ...

    感谢感谢,晚点我回去试试
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    28

    回帖

    71

    积分

    注册会员

    积分
    71
     楼主| 发表于 2024-4-13 09:30:13 | 显示全部楼层
    soma 发表于 2024-4-12 22:51
    波特率设置最低2400

    感谢感谢,晚点我回去试试
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    28

    回帖

    71

    积分

    注册会员

    积分
    71
     楼主| 发表于 2024-4-13 20:27:43 | 显示全部楼层
    soma 发表于 2024-4-12 22:51
    波特率设置最低2400

    结果还是一样,输出正在检测目标单片机 ...
      单片机型号: STC32G12K128
      软件协议, V4.0: 7.4.6U

    当前芯片的硬件选项为:
      . 系统ISP工作频率: 0.494MHz
      . 内部IRC振荡器的频率: 24.000MHz
      . 掉电唤醒定时器的频率: 33.600KHz
      . 振荡器放大增益使能
      . 用户EEPROM大小被设置为 128 K
      . P3.2和P3.3与下次下载无关
      . 上电复位时增加额外的复位延时
      . 复位引脚用作普通I/O口
      . 检测到低压时复位
      . 低压检测门槛电压 : 2.00 V
      . 上电复位时,硬件不启动内部看门狗
      . 上电自动启动内部看门狗时的预分频数为 : 256
      . 空闲状态时看门狗定时器停止计数
      . 下次下载用户程序时,将用户EEPROM区一并擦除
      . 下次下载用户程序时,没有相关的端口控制485
      . 下次下载时不需要校验下载口令
      . 内部参考电压: 1187 mV (参考范围: 1100~1300mV)

      单片机型号: STC32G12K128
      软件协议, V4.0: 7.4.6U


    正在重新握手 ...
    通信超时 !(2024-04-13 20:26:22)

    大佬有什么头绪吗?
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    28

    回帖

    71

    积分

    注册会员

    积分
    71
     楼主| 发表于 2024-4-13 20:28:04 | 显示全部楼层
    kaily 发表于 2024-4-12 22:49
    最低波特率设置的太高了,最低波特率一般设置为2400就可以了
    握手时使用的是最低波特率进行通讯的
    所以将最 ...

    结果还是一样,输出正在检测目标单片机 ...
      单片机型号: STC32G12K128
      软件协议, V4.0: 7.4.6U

    当前芯片的硬件选项为:
      . 系统ISP工作频率: 0.494MHz
      . 内部IRC振荡器的频率: 24.000MHz
      . 掉电唤醒定时器的频率: 33.600KHz
      . 振荡器放大增益使能
      . 用户EEPROM大小被设置为 128 K
      . P3.2和P3.3与下次下载无关
      . 上电复位时增加额外的复位延时
      . 复位引脚用作普通I/O口
      . 检测到低压时复位
      . 低压检测门槛电压 : 2.00 V
      . 上电复位时,硬件不启动内部看门狗
      . 上电自动启动内部看门狗时的预分频数为 : 256
      . 空闲状态时看门狗定时器停止计数
      . 下次下载用户程序时,将用户EEPROM区一并擦除
      . 下次下载用户程序时,没有相关的端口控制485
      . 下次下载时不需要校验下载口令
      . 内部参考电压: 1187 mV (参考范围: 1100~1300mV)

      单片机型号: STC32G12K128
      软件协议, V4.0: 7.4.6U


    正在重新握手 ...
    通信超时 !(2024-04-13 20:26:22)

    大佬有什么头绪吗?
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9238

    回帖

    1万

    积分

    管理员

    积分
    13957
    发表于 2024-4-13 20:45:29 | 显示全部楼层
    啥都没有,无法猜,你先将
    最低/最高波特率设置为相等,
    从2400bps 开始往上测试
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    28

    回帖

    71

    积分

    注册会员

    积分
    71
     楼主| 发表于 2024-4-13 20:57:57 | 显示全部楼层
    神农鼎 发表于 2024-4-13 20:45
    啥都没有,无法猜,你先将
    最低/最高波特率设置为相等,
    从2400bps 开始往上测试

    您好,您说的我都试过,波特率我已经把2400到115200全部试了一遍,仍然会卡在重新握手。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    28

    回帖

    71

    积分

    注册会员

    积分
    71
     楼主| 发表于 2024-4-13 21:00:27 | 显示全部楼层
    神农鼎 发表于 2024-4-13 20:45
    啥都没有,无法猜,你先将
    最低/最高波特率设置为相等,
    从2400bps 开始往上测试

    我在这个帖子   https://blog.csdn.net/fengyuzhe13/article/details/124563891  的最后面,见到作者写了这么一段话,“通过无线模块烧写STC程序,总共花费了我一个多星期的时间,甚是感慨。有人会问,为什么为了这么简单的东西花了这么长时间?答曰:走弯路了,而且还是大弯路。一月份的时候首次用STC15W408AS(无晶振)模块进行蓝牙模块下载,当时设定的蓝牙模块为无校验位,不管怎么重启和尝试就是不能下载,很是郁闷,折腾了一天放弃了(但也学会了如何绑定两个蓝牙模块和单片机软件复位)。现在疫情爆发,封闭到家里面,就开始再次研究这个问题。

    当时想着可能是内部IRC精度不高造成,毕竟用串口线给其烧写程序时,经常失败。所以我手动焊接了一块儿带外接晶振的STC15W408AS,结果还是不能通过蓝牙模块下载程序,又吃了一个闭门羹。然后我想起来之前有一块儿STC89的最小系统板,然后就拿过来测试。结果发现一键下载,异常的丝滑,让我顿时来了精神。我觉得89系列能下载,这说明蓝牙模块做无线下载应该没有问题。紧接着我又开始捣鼓STC15,当时从网上搜索“STC15无线下载”,但是没有得到有效的信息。此时,我就愈发对ISP协议感兴趣,从网上找了ISP一些协议来研究,并用三个USB转串口模块,来窃取STC15在烧写程序时的通讯数据。结果发现这些数据不恒定,当时还觉得ISP协议还是加密的,且跟烧写次数以及烧写时间有关,很是牛(现在知道了是因为,用无校验位的串口去窃取,其本身就不稳定)。而且还发现把某些通讯数据慢慢发送给STC-ISP也能触发其“检验MCU”,但是一旦发送的快了就不行。此时觉得应该是蓝牙模块数据阻塞的原因,蓝牙发送数据不是匀速,应该一个个数据包进行的,导致上位机采集不均匀(到此时,我还是没有察觉是校验位的问题)。之后用STM32进行数据的转送,以均匀的速度将数据一个个发送出去,但是其只能完成一小步烧写流程,到“重新握手”就卡死了。此后还尝试了wifi模块、超再生模块、脱机下载器等等一些方法。直到仔细查看STC15数据手册时,在其ISP脱机下载程序(“利用主控芯片对从芯片(限STC15系列)进行ISP下载”)中有一行: 串口数据模式必须为8位数据加一位偶校验。这是一语惊醒梦中人,但是其下面的TMOD=0x00;是明显的错误。尽管不能保证其一定是偶校验,但是数据手册上的利用主控芯片对从芯片(限STC15系列)进行ISP下载的程序绝对是有问题。之后将蓝牙模块加上偶校验,下载STC程序,一切正常。为了结束这么长时间的摸索,所以我又一口气焊接了STC8、STC12、STC11三款带晶振的最小系统板。并进行了测试,发现他们也得增加偶校验才能无线烧写程序,因而我觉得应该是STC公司将所有IRC芯片都设置了ISP偶校验通讯。之后,在网上搜索“STC无线下载”时,发现有用STC12成功的,其就是增加了偶校验。哎,如果当时能认真搜素且认真阅读每一个信息,就应该不会走这个大弯路了吧。
    ————————————————

    我感觉我现在的情况和这位博主很像,但是我设置为偶校验后,连芯片信息都读不出来,十分苦恼
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-30 16:21 , Processed in 0.072178 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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