Arduino的DTR引脚原理猜测(2016-07-21 01:06:54)

Arudino烧录的时候,可以通过连接下载器的DTR引脚做到自动重启烧录。引脚图如下:


Arduino的DTR引脚原理猜测(2016-07-21 01:06:54)_第1张图片
原理图

以前不太懂,不知道C2这个电容是做什么用的。现在用学会点皮毛来分析下。

在未下载程序的时候,DTR端的电压是高电平。而Reset这端被电阻R2拉高了电压。因此认为C2两边的电势差为0。

在IDE里面点击了下载程序按钮,DTR这端就会将电压置为低。而电容两端的电压无法跳变。因此RESET这端也变为低电平。然后VCC通过R2缓慢给他充电。R2比较大,C2也比较大,所以充电时间长能保持RESET这端在一段时间内都是低电平。这个时间应该需要大于100ms,这样Arduino才能重启开始烧录程序。

但是为什么不直接将DTR和RESET接在一起,然后用DTR的高低电平来控制RESET呢。

我测了下DTR接烧录器这边的电压,大约是3.4V。所以最有可能的是,这个引脚的高电平电压不能让Arduino认为是高(烧录器电平和Arduino的电平不同。这是我猜的,没有依据)。所以加上了R2这个上拉电阻。

那么当DTR降为0V的时候,RESET这边还有大约5-3.4=1.6V电压。电容C2从1.6V升到Arduino认为的最小高电平电压值的时候,充电结束。这个时间需要>100ms。所以能算出电容C2的值。

以上的过程纯粹是个人猜测,没有实验和数据的依据。

你可能感兴趣的:(Arduino的DTR引脚原理猜测(2016-07-21 01:06:54))