jjkk1314T 发表于 2020-2-8 20:55:02

自己制作的 arduino 2560 上电后大约8-9秒才开始执行程序?

因为没有原版的 也不知道原版上电后多久开始,执行,刷官方的 LED blinks 程序,如果不断电,会立即闪烁,如果拔了,USB线缆再插进去 就需要8-9秒才开始闪烁,请教下大家有遇到过么?

linhao1581 发表于 2020-2-8 21:11:12

换个固件试试

jjkk1314T 发表于 2020-2-8 21:30:36

我烧录的是 stk500v2 那个 我试试别的

jjkk1314T 发表于 2020-2-8 21:35:28

stk500v5 文件夹里的 两个都不行 都是这个问题 我

rf_smart 发表于 2020-2-8 22:21:55

ide里面有个boards.txt,详细说明了哪个板子烧录哪个固件及固件路径,熔丝位,通信参数

jjkk1314T 发表于 2020-2-8 22:32:59

rf_smart 发表于 2020-2-8 22:21
ide里面有个boards.txt,详细说明了哪个板子烧录哪个固件及固件路径,熔丝位,通信参数 ...

谢谢 已经查看了 并且按照上面的烧写了 目前除了 断电重新上电后 需要8-9秒 才执行程序一切正常,不知道是不是原版就是这样的

Momo 发表于 2020-2-8 22:41:03

usb转串口芯片在枚举时反复反正dtr引脚,导致芯片反复复位,只能换串口芯片。

Momo 发表于 2020-2-8 22:42:04

反复反正---反复翻转

jjkk1314T 发表于 2020-2-8 22:43:45

Momo 发表于 2020-2-8 22:41
usb转串口芯片在枚举时反复反正dtr引脚,导致芯片反复复位,只能换串口芯片。 ...

usb转串口芯片是 atmega16u2 就是原装用的那个可以烧写 fireworks 那个,是他的原因?现在是不知道原版 也是这样 要8-9秒 才能启动么? 还是我自己的原因

jcrorxp 发表于 2020-2-8 22:51:09

bootloader的原因,为了防止你烧录了占用串口或者死循环程序导致无法下载代码,
你看这段话
0
我们为Pro Micro提供了Arduino Leonardo引导加载程序的修改版本,并进行了一项重大改进。 当Leonardo(或使用“标准”自举程序的任何设备)从外部复位时,它将返回自举程序……并在那里等待八秒钟,然后才开始运行草图。 对于某些嵌入式项目,不允许在程序运行之前等待八秒钟,因此我们修改了引导加载程序的运行时间。


jjkk1314T 发表于 2020-2-8 22:55:23

jcrorxp 发表于 2020-2-8 22:51
bootloader的原因,为了防止你烧录了占用串口或者死循环程序导致无法下载代码,
你看这段话
0


这句话是在哪儿看到的? 我想去看看 有办法改进它么

jcrorxp 发表于 2020-2-8 23:04:02

jjkk1314T 发表于 2020-2-8 22:55
这句话是在哪儿看到的? 我想去看看 有办法改进它么

你只要找到这个bootloader的代码,然后把时间改一下 重新编译一遍再烧录去你的2560就好了。
因为是开源的 应该也能找到的,不过要花点时间了。
注意下面链接可能需要科学地去局域网才能打开,
https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/all

brother_yan 发表于 2020-2-8 23:35:21

这个等待时间包含2部分,一个是USB转串口的枚举,另一个是bootloader上电后要等几秒看有没有固件传过来

jjkk1314T 发表于 2020-2-8 23:50:10

brother_yan 发表于 2020-2-8 23:35
这个等待时间包含2部分,一个是USB转串口的枚举,另一个是bootloader上电后要等几秒看有没有固件传过来 ...

怎么 uno r3 没有这个时间呢?很奇怪

brother_yan 发表于 2020-2-8 23:55:13

jjkk1314T 发表于 2020-2-8 23:50
怎么 uno r3 没有这个时间呢?很奇怪

我自己做的nano有,大概1.5s?你可以试试把rst接到vcc然后再插拔,就知道是哪一部分的时间了,因为USB枚举就是不停rst单片机

weavr 发表于 2023-7-24 17:33:51

我也遇到这个情况,是X宝买的成品板,研究的原因应该是这样:插入USB后会复位,复位后是从boot区启动,16U2枚举的过程中,TX上出现跳变电平,让bootloader误以为有串口程序需要上传,因为并没有程序上传,所以8-9秒钟超时后跳转到用户程序运行。
其实就是一个小bug,如果在枚举完成等待TX电平稳定后再让DTR执行一次复位,就不需要等这么久。


weavr 发表于 2023-7-25 12:31:07

试着将16U2的USB转串口程序在上电后稍等一会复位一下2560,可以避免这个问题,供大家测试

weavr 发表于 2023-7-25 16:46:50

有坛友知道arduino mega 2560是怎么判断是否有用户程序的吗,在用户程序全为0xFF只有bootloader的时候,复位后会一直在boot区等待,在有用户程序的时候,复位后bootloader检测一会儿没有上传数据就跳去用户程序区运行用户程序。
页: [1]
查看完整版本: 自己制作的 arduino 2560 上电后大约8-9秒才开始执行程序?