mrightt 发表于 2009-10-26 13:15:36

如何下载程序到m16,VISTA系统的USB转串口的下载线

RT
买的马老师的实验板,然后书上说的STK200/300是打印机的并口么?串口怎么下呢?
我是新手

little_Monkey 发表于 2009-10-26 13:17:26

AVR在没有bootloader的情况下都不能串口下载

mrightt 发表于 2009-10-26 13:19:07

1#,那么如何才能实现串口下载?

machao 发表于 2009-10-26 17:01:54

1楼概念不清楚,回答有问题。


AVR本身支持的串行下载ISP有3种类型的方式:通过SPI口下载,通过JTAG口下载,和单线debugWIRE。
1。SPI口方式使用4根线:MOSI、MISO、CLK、RESET。下载完成后,3个引脚可以直接作为I/O使用,缺点是不能在线仿真。
2。JTAG方式使用JTAG口,占用4个I/O口线(M16在PORTC上),还支持在线仿真,缺点是4个口线不能作为I/O使用了。
3。debugWIRE使用一根线,占用RESET脚,也支持在线仿真。缺点是需要在RESET和debugWIRE之间做转换,而且速度也比较慢。

引脚比较多的AVR,比如M16、M128等支持SPI、JTAG方式,而引脚比较少的芯片,如TINY,支持SPI和debugWIRE。

支持在线仿真的,不管是JTAG还是debugWIRE,都需要专用的设备:仿真下载器。这个DD还是比较贵的,通常需要几百元。
而简单支持SPI编程的,就只需要一个所谓的下载线就可以了。

不管是比较复杂的“仿真下载器”,还是简单的“下载线”都需要两端接口,一端同AVR芯片连接,就是上面提到的3种不同的口(根据使用的类型决定),而另一端是与PC连接的口,就是楼主提到的“串口RS232”、“并口”、“USB”口。

早期的仿真下载器是使用串口RS232与PC连接的,现在已经淘汰了,基本上都是采用USB口与PC理解。

由于“仿真下载器”还是比较贵的,所以最简单和常用的方法是使用一根简单的“下载线”,它的成本价格也就几元钱。


楼主位提到的STK200/300,实际是早期的一种简单的“下载线”,全称“并口ISP下载线”,它是指使用PC的打印口实现对AVR的ISP下载,AVR端为SPI口。

这个并口ISP下载线,尽管里面只使用了一片HC244做隔离驱动,但实际上速度快,非常方便,也非常稳定。而且在CVAVR、ICC、BASCOM-AVR的环境下都直接支持这个下载线(可惜的是,AVR STUDIO不支持,因为它不是AVR官方工具),国内双龙公司的免费SLISP软件也支持。但这个并口ISP线在笔记本上却不能使用,因为现在的笔记本已经不配备打印口了。

简单的替换方法,是使用M8完成模拟USB接口的USB-ISP下载线,这个原始设计是一个德国人的开源设计,它用了一片M8或M48模拟了USB的接口与PC的USP连接,实现对AVR的ISP编程,AVR端也是SPI口(不能仿真),这个下载线成本在10元左右。

USP-ISP的方案根据上位机支持软件的不同,还可分成USPASP和USBISP两种。我推荐的USBISP是在AVR STUDIO下支持的。而USBASP需要使用专门的上位机软件。国内有人自己改动了USPASP的固件,编写了专配的上位机软件,在淘宝上作为产品买,价格最便宜的为10元左右。

最后回答LZ问题,如果你的PC没有打印口,就无法使用并口的STK200/300下载线。串口不要考虑,因为已经淘汰了,没有串口232的“下载线”。早期有串口的仿真下载器:AVRISP,AVRISP mkII则同时支持串口和USB,不过因为是“仿真下载器”,所以比较贵。

建议你淘宝上搜一下,买一个类似的USB-ISP的下载线。

至于1楼提到的是错误概念:bootloader的技术与ISP下载是不同的概念(实际是ASP),而且也不仅仅是通过串口才能实现,通过I2C、SPI都能实现bootloader。做为LZ新手,目前先不要考虑什么bootloader。

mrightt 发表于 2009-10-26 21:16:00

to 3#马老师

谢谢了,恩,我是新手,我将勤奋学习。这就去看USB-ISP。

little_Monkey 发表于 2009-10-27 01:36:46

因为楼主提到usb转串口的下载线,我自然的理解为楼主希望通过m16的串口下载程序,而这是需要bootloader的,我不否认bootloader有其他的通讯方式实现更新程序,见笑了

mrightt 发表于 2009-10-27 17:55:10

呵呵,没事,谢谢了
页: [1]
查看完整版本: 如何下载程序到m16,VISTA系统的USB转串口的下载线