AVR Studio是ATMEL指定用于开发AVR MCU的官方软件,其编程功能最为强大。下面介绍使用AVRStudio烧写程序及熔丝快速入门。
●
使用AVRISP方式烧写程序及配置熔丝位
对软硬件进行初始配置,并正确设备连接,就可使用AVRISP进行联机了。
打开AVRStudio,点击主窗口中的图标前面标有Con的那个图标。出现如下图画面:
(点击图片放大)
在左边,选择“STK500 or AVRISP”,在右边,选择“Auto”(或具体的COM口),点击“Connect”进行联机。
正常联机后,将弹出如下窗口:
(1)程序编程面板:
(点击图片放大)
● Device里面选择好对应的芯片类型,后面的Erase Device可以擦除芯片。
● Programming mode编程模式:注意这里必须是ISP mod,表示用的ISP编程模式;Erase Device Before 选项:编程前先擦除芯片,建议选上,如果不选芯片内部残留的程序可能会对新的程序造成干扰。Verity Device After Program:下载完毕后校验程序内容,建议选上。
● Flash 下载区:Input HEX File,找到要写的hex文件格式为*.hex、*.e90。Program,编程点此按钮,将会把Input HEX File对应文件下载到芯片中去,如果路径有错误或者文件格式不正确会有提示报警。Verify 校验命令,用于检测芯片内程序是否和文件中的一致。Read读命令,此命令可以读出未加密芯片内的程序,自动弹出一个对话框提示保存。
● EEPROM下载区,和Flash 下载区类似,格式为.hex、.e90和.eep,此功能用于下载比较多的需要存在EEPROM中的内容时使用。Program、Verify、Read于Flash下载区有对应EEPROM的同样的功能,不在赘述。
● 状态指示区,这里显示目前的操作状态。
(2)熔丝位设置面板:
(点击图片放大)
● 配置熔丝位有一定的危险性,可能锁死芯片,在不知道具体在做什么操作之前,请不要急于动手。
● 熔丝位状态显示框,显示芯片的各个熔丝位的详细状况,AVR的熔丝位打勾表示0,表示启用该选项;取消表示1,表示不启用该选项,需要注意。
● Auto Verity 选项选中时,程序会自己进行校验,建议选中。Smart Warning选项选中时,在对一些特殊的具有一定危险性的熔丝位进行编程时会弹出警告信息,建议选中。
● Program、Verify和Read分别对应编程、校验和读取,正确的配置熔丝的方法是先读取,先后修改需要修改的地方,再编程写回。在Auto Verity选项选中时无需再点Verify按钮进行校验。
● 为了安全起见,在ISP模式下,SPEEN熔丝是不允许编程的。
● 芯片锁死的主要原因是设错熔丝位,主要有两种情况:
(1)JTAGEN和SPIEN两个熔丝位都为1(不打勾),不能再进行编程,此时只能用高压并行编程或者有源晶振恢复。
(2)将熔丝位选择了外部晶振或外部RC振荡,而没有接外部晶振或外部RC振荡,或者外接的振荡频率不匹配,导致芯片不能工作,这种情况,需要外挂相应晶体才能再次操作芯片,用户应尽量记起当时设错熔丝的情况,比如错误设置成了外部3-8M晶振,那么外挂一个3-8M晶振即可进行相应操作。
当然还有其它方面的原因导致芯片锁死,在此处不再一一赘述。
下面以ATmega16为例,对其熔丝位进行简单描述:
(点击图片放大)
(3)锁定位设置面板:
(点击图片放大)
● 通过编程锁定位,允许用户对AVR芯片内数据进行加密,不同的锁定位对应不同的加密保护程度,加密位共有三位,每位的数越大加密程度越高,否则越低。
● 被加密后的芯片依然可以读出熔丝位和加密位的情况,一旦试图对加密位进行修改,芯片内的程序将会被修改或擦除,不能再使用。
● 加密位可以通过编程界面的芯片擦除功能擦除到初始状态,使得芯片可以重复使用。
● 锁定位编程界面有与熔丝位编程界面相同的选项和操作按钮,功能类似,不再赘述。
● 锁定位编程应该在熔丝位编程之后进行,通常编程锁定位是生产过程中写芯片环节的最后一步。
下面以ATmega16为例,对其所定位进行简单描述:
(点击图片放大)
(4)高级设置面板:
(点击图片放大)
● Signature Bytes,芯片型号标识位,点右边的Read读按钮可以读出芯片内的ID。如果在编程面板里面选的芯片型号与读出的芯片型号对应,下面会提示Signature matches selected device,如果不匹配会出现WARNING: Signature does not match selected device!
● Oscillator Calibration byte,内部RC振荡校准。这里选择不同的频率,点Read Cal. Byte ,可以读出对应的频率下的校准值,然后将这个值复制到Write区,选择将校准值写到Flash还是EEPROM,点击Write to Memory写按钮,即可完成对应频率下的内部RC振荡校准。
● 写入到flash区域的校准字芯片启动时自动读取并校准RC振荡,如果写到EEPROM中,需要程序中进行处理。
● Communication Settings串行通讯设定。
(5)对目标板控制面板:
(点击图片放大)
● Voltages 通过本面板可以查看目标板的电压和写参考电压,参考电压需要实际测得,再写入,可以帮助仿真器准确读取目标板电压值以供参考。本功能在ISP编程模式下不可用,需要在JTAG模式下使用。
● Oscillator and ISP Clock 读写速率设定,这里可以读写仿真器内ISP编程的速率,ISP模式下STK500选项为灰色。注意速率一定要小于芯片时钟频率的1/4,否则无法正确下载。
● Revision 版本号及升级,这里显示当前hex文件的版本号,如果AVR studio内的软件版本高于仿真器的版本,右边的Upgrade会可用,如果匹配则该按钮为灰色。
● 当Upgrade按钮为可用状态时,可以点击它进入自动升级,在此之前请确认仿真器是否支持自动升级,以免造成麻烦。
(5)自动烧写面板:
(点击图片放大)
● 自动烧写面板在生产的时候非常管用,程序会记录上次进行批处理的各个选项,一旦设置好之后,可以连续进行烧写。
● 请慎用本功能,在不知情的情况下使用本功能,锁死芯片的几率将大大增加。
● 自动处理:擦除芯片、检测芯片ID号、写flash、写EEPROM、写熔丝位、写锁定位以及他们对应的校验,一次完成,状态栏会显示正在进行的操作。
● 所有的操作需要在前面对应的面板设置好,比如选择好下载的HEX及EEPROM文件,选好熔丝位,选好锁定位,写好内部RC校正位等。请一定确保各个选项正确,特别是熔丝需要格外小心,可以先在每个面板里面进行操作确认没有问题再进行批处理操作。
● 在进行批处理之前,请先在高级选项里面设置好通讯速率,确保速率小于晶振的四分之一,否则会出错。
● 可以选中右边的Log to file选项从而记录操作日志。
● 使用JTAG方式烧写程序及熔丝位
对软硬件进行初始配置,并正确设备连接,就可使用JTAG进行联机了。
打开AVRStudio,点击主窗口中的图标前面标有Con的那个图标。出现如下图画面:
(点击图片放大)
在左边,选择“JTAG ICE”,在右边,选择“Auto”(或具体的COM口),点击“Connect”进行联机。
详细的烧写介绍请参考:“使用AVRISP方式烧写程序及熔丝”。
● 使用JTAG ICE mk2方式烧写程序及熔丝位
对软硬件进行初始配置,并正确设备连接,就可使用JTAGICE mk2进行联机了。
打开AVRStudio,点击主窗口中的图标前面标有Con的那个图标。出现如下图画面:
(点击图片放大)
在左边,选择“JTAGICE mkII”,在右边,选择“Auto”(或具体的COM口),点击“Connect”进行联机。
详细的烧写介绍请参考:“使用AVRISP方式烧写程序及熔丝”。
提示:由于AVRStudio会记忆用户使用的设备是STK500或JTAG并且同时会记忆用户使用的COM号,如果下次和上次使用的是相同的设备并且没有更换COM口,那么下次使用的时候直接点击右边标有“AVR”的那个图标即快速进入联机状态;