弘毅 发表于 2016-4-3 11:06:24

使用带USB端口的Arduino做ALPHA 8F328D下载器

ALPHA系列的8F328D控制器出来后一直缺乏稳定可靠好用的下载方式,现在解决了。。。。这里介绍一下

8F328D芯片是两线下载方式,在你没有烧录过bootloader的情况下,只能使用这种方式。



如图:我们D12管脚接SWD,D13管脚接SWC,ALPHA 8F328D的5V管脚接Arduino板子的5V,GND接GND。RESET这部分可以不用接。

注意:SWD需要一个10K上拉,4.7K更好。如果没有接这个上拉会工作异常。

电路接好以后,我们下载LarduinoISP附件(附件在帖子尾部),解压缩后得到下图的文件。



下载OCROBOT最新版本的IDE,然后打开LarduinoISP.ino文件。选择好你带USB端口的Arduino控制器型号,端口。然后把打开的LarduinoISP.ino程序编译,下载进去。



OCROBOT IDE最新版下载地址:http://www.ocrobot.com/doku.php?id=zh:downloads

接下来就开始正式的给ALPHA 8F328D烧录程序了,我们首先要在IDE中,把控制器选择为ALPHA 8F328D。



编程器选择为Arduino as ISP



最后。。。在IDE中写入你的代码,比如Blink,在文件菜单中选择“使用编程器下载”。程序就下载进去了。



程序烧录进去以后,需要给8F328D断电重启,新的程序才会运行。


zjhyhky 发表于 2016-4-4 15:47:16

老大,请问普通的cp2102、ch430、431下载器行不行?

弘毅 发表于 2016-4-5 09:22:33

zjhyhky 发表于 2016-4-4 15:47 static/image/common/back.gif
老大,请问普通的cp2102、ch430、431下载器行不行?

这三款是USB转uart,需要烧录了bootloader后才能用。而且下载过程中如果cp2102等没有做好自动复位电路,那么就需要手工复位。比ISP下载方式麻烦不少。

zjhyhky 发表于 2016-4-5 17:09:28

弘毅 发表于 2016-4-5 09:22 static/image/common/back.gif
这三款是USB转uart,需要烧录了bootloader后才能用。而且下载过程中如果cp2102等没有做好自动复位电路,那 ...

谢谢老大答复!再请问:
1.我从ocrobot的淘宝店里买了几片8f328d,难道都是没有bootloader的吗?
2.我用swd给stm32下载过,那个swd下载器是不是可以用在这里?
本文介绍的方法我也去试试,总要找个方便的

弘毅 发表于 2016-4-5 19:50:18

zjhyhky 发表于 2016-4-5 17:09 static/image/common/back.gif
谢谢老大答复!再请问:
1.我从ocrobot的淘宝店里买了几片8f328d,难道都是没有bootloader的吗?
2.我用 ...

目前发货的是有bootloader的。。。。后期发货的就没有了。st的编程器是没法给LGT的使用的。这个帖子主要就是讲解如何使用一块带usb的Arduino板子变为一个LGT编程器~~~只要你手头有一个带USB的Arduino就可以了呀

弘毅 发表于 2016-4-5 20:21:06

弘毅 发表于 2016-4-5 19:50 static/image/common/back.gif
目前发货的是有bootloader的。。。。后期发货的就没有了。st的编程器是没法给LGT的使用的。这个帖子主要就 ...

专用烧写器逐步会推出。。。。。准备用8F88D做一个专用烧写器

zjhyhky 发表于 2016-4-5 22:08:47

谢老大指点,刚做了实验,总结如下,供大家参考:

1.我前几天在淘宝上ocrobot买的几片LGT是有bootloader的,因为用cp2102下载成功了。手动复位,当显示 下载中 时立即短接reset和gnd一下,就成功了。
2.把cp2102的dtr脚通过一个0.1uf的独石电容连接到lgt板的reset脚,直接下载成功,不用reset了,哦也!不知道板子上为什么不加上这个0.1uf电容?
3.本帖子的方法我还没有试过,因为不知道用LarduinoISP下载有何意义?我的理解,这种方法是用来下载bootloader的吧?否则直接像arduino mini一样用usb转ttl就行了,何必再用一块arduino板子、或者一个专用烧写器呢?这样理解不知道对不对,老大能否说说这样做的优势?

弘毅 发表于 2016-4-5 22:24:44

本帖最后由 弘毅 于 2016-4-5 22:27 编辑

zjhyhky 发表于 2016-4-5 22:08 static/image/common/back.gif
谢老大指点,刚做了实验,总结如下,供大家参考:

1.我前几天在淘宝上ocrobot买的几片LGT是有bootloader ...

这个是你没遇到不能下载的时候。。。现在天气温暖,内部RC温漂不大,所以你用uart可以下载成功,当天气寒冷的时候,内部RC温漂大于2%,这时候异步通信就会出现问题。没有晶振的板子,通过uart下载就容易出现问题。而ISP下载方式不存在RC温漂大了通信失败问题。

而且烧录bootloader要增加一道工序,成本更高。为了降低售价,只能把bootloader烧录环节也省掉。

所有的Arduino板子运行于16M,都是带晶振的,所以你不会遇到通过bootloader烧录程序出现问题。而8F328D内有有16M的RC,可以脱离晶振运行。为了发挥这个特长,ISP下载方式是最优的。

zjhyhky 发表于 2016-4-5 22:27:21

弘毅 发表于 2016-4-5 22:24 static/image/common/back.gif
这个是你没遇到不能下载的时候。。。现在天气温暖,内部RC温漂不大,所以你用uart可以下载成功,当天气 ...

是这样啊,明白了,谢谢!

弘毅 发表于 2016-4-5 22:47:08

zjhyhky 发表于 2016-4-5 22:27 static/image/common/back.gif
是这样啊,明白了,谢谢!

其实还有一个重要原因,就是整体产品规划上,还会有一款ALPHA 8F88D,flash只有8k,如果烧录bootloader后,可用空间就不到7k。如果通过isp方式,8k就是完全可用的。对于小空间方案这个意义重大。

弘毅 发表于 2016-4-5 22:58:36

zjhyhky 发表于 2016-4-5 22:08 static/image/common/back.gif
谢老大指点,刚做了实验,总结如下,供大家参考:

1.我前几天在淘宝上ocrobot买的几片LGT是有bootloader ...

不加100nf的原因呢,在alpha的硬件标准中,自动复位功能是在usb转uart端实现的,alpha标准管脚中只提供了reset管脚,reset管脚如果在核心板上接了0.1uf,那么就会造成你的按键复位电路工作异常,或者和下载器等通信异常。mini板子是提供了一个专用的dtr管脚。这个管脚除了自动复位没任何作用。。。。对于这种没啥用又占用空间的管脚,alpha设计中是不会放入通用接口的。

Ansifa 发表于 2016-4-30 20:11:53

这个好,终于可以用上LGT了,参数还不错,和STM有的一拼:lol

弘毅 发表于 2016-5-1 09:57:43

Ansifa 发表于 2016-4-30 20:11 static/image/common/back.gif
这个好,终于可以用上LGT了,参数还不错,和STM有的一拼

328板子只要6元哦。。。。88D只要4.5元哦。。。

原野动力 发表于 2016-5-9 17:07:21

哈搞深入啊,支持一下

popopupa 发表于 2016-5-15 22:05:39

好厉害的样子!只是用内部rc振荡影响串口稳定性,串口也是个重要功能啊
页: [1] 2
查看完整版本: 使用带USB端口的Arduino做ALPHA 8F328D下载器