
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
从两者之间的定义就可以看得出:串口是个物理接口,端口是个逻辑窗口。怎么理解呢?以我们经常用的电脑为例—我们电脑有很多串口,比如RS232,RS485等等,这些就是串口,本身就在一种接口。那逻辑窗口是什么呢?请大家回忆一下学习51单片机的时候(或者stm32时候用FlyMC)下载程序的时候,是不是要选一个COM?这个COM不是固定的,你插上它就有,不插就没有,这就是它为什么是一个逻辑值的原因。通俗的说,端口只是串口的一个标识ID而已,不同的ID对应着不同的连接口。任何一个芯片都要在有电的时候去工作,那么它必然就有一个VCC,一个GND,这个VCC和GND就是两个引脚,除了这些,还有一些其他的引脚,比如RST,普通的IO都是引脚。AVR系列单片机烧录程序的方法大概有以下三种:使用ISP编程器对芯片进行在线烧录、专业高压编程器烧录、通过JTAG接口使用JTAG仿真器烧录。但是它们都有一个共同的特点:但是总是要借助于其他设备或者编程器,下载稍嫌麻烦,本文笔者给大家介绍如果通过PC机的普通串口给AVR芯片烧录程序,本文以ATMega16为例。
相信大家都用过STC系列的51单片机,STC系列的单片机烧录程序都很简单,只需要通过串口就可以实现程序的烧录。于是就想让AVR的芯片也能实现通过串口就能下载的功能,这样就可以省去购买UsbAsp下载
图1线或者高压编程器的费用,而且使用更加方便。仔细研究AVR的芯片手册,就会发现常用的一些AVR芯片如:ATMega16、ATMega32等都是带有BootLoader功能的,这个BootLoader功能可以读写芯片的整个FLASH存储区,甚至可以改写BootLoader区,而且还有另外一个特点:如果BootLoader功能开启以后,每次复位都会从BootLoader 启动。
于是就有一个大概的思路了,可以给AVR的芯片写一个BootLoader的串口通信程序,每次复位以后BootLoader 区的程序就会得到运行,运行以后首先检测是否有烧录请求,如果有就更新FLASH中的程序,如果没有烧录请求,则执行FLASH中原有的程序。经过几天的努力这个通过串口给ATMega16烧录程序的固件和上位机终于完成了。
哪个芯片烧不进去啊?FPGA还是EPC2啊?
先确定FPGA是否正常,通过JTAG口给FPGA烧写,看看程序能不能烧进去!如果芯片好的,电路也没问题用JTAG烧写时,不管PS方式还是AS方式都能烧得进去的!!
如果FPGA能正常烧写的话,接下来看看EPC2能不能烧,对EPC2进行烧写的时候,如果EPC2的相应的引脚都连到了JTAG口相应的脚的话,可以通过JTAG对EPC2进行烧写,而且注意必须在Program Device(Open Programmer)开打的烧写界面上选择AS方式才行。你选择的PS方式肯定是烧不进去的。如果EPC2的引脚都没有连到JTAG口上而是都连到了FPGA配置那块的引脚上了那必须得先给FPGA烧一个AFL模块,这样就通过FPGA建立了JTAG口和EPC2之间的连接,之后再不断电的情况下,通过JTAG给EPC2烧写,具体的烧写设置参考Altera的资料,上面很详细。
如果FPGA和EPC2都能正常烧写,那么说明两块芯片都是好的。如果重新上电,FPGA不能正常通过EPC2来配置自己的话,这时候请查看Quartus下Settings→Device→Device and Pin Options→Configuration菜单下的Configuration Scheme是否选择了Active Serial(默认设置是Passive Serial),上电的时候你用EPC2专用配置芯片来配置FPGA的话,这个要记得改成Active Serial的。
如果FPGA和EPC2各自能正常烧写,Quartus下设置也改了,但是FPGA还是起不来,试着在芯片的配置电源VCCPGM加几个电容滤下波试试。
还是不行,我也没辙了。呵呵
以上就是关于avr单片机的烧录口和串口引脚共用,怎么区分全部的内容,包括:avr单片机的烧录口和串口引脚共用,怎么区分、FPGA程序烧写问题。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)