快速掌握ATEML ARM7系列文章(1) 使用SAM-BA对AT91SAM7S编程

 
   一.原理

     AT91SAM7S64内部“隐藏”着一段程序叫SAM-BA BOOT, 它是在出厂时被固化的,不会被擦除,也不会被重写。由于ATMEL没有说明
    这段程序在哪里所以叫“隐藏”,哈哈
      在特定的条件下它会被复制到内部FLASH首部,这个复制的过程叫恢复系统程序(System Recovery Procedure)
      系统程序恢复后下一次上电或手动复位时SAM-BA BOOT 就会得到运行, 它使用片上集成的USB或DBGU(其实就是UART)与上位机通信
    实现自编程。

   二.恢复系统程序

     1.TST PA0 PA1 PA1 四个引脚保持高的状态下复位并等待10秒,要注意的是复位时TST引脚内部下拉,为此要通过外部电路将此引脚拉高
    在设计电路时这个引脚上通常外接一个跳线(请参考AT91SAM7S-EK板),PA0,PA1,PA2复位时内部上拉,为些这三个引脚可以悬空,外部电
    路要保证不会在复位时将此三个引脚拉低。
      2.再次复位系统,系统就会运行SAM-BA BOOT,即你的上位机SAM-BA才会与之成功连接。

   三.ERASE引脚

      要注意的是恢复系统程序的过程是在ERASE引脚悬空或拉低的情况下进行的,ERASE引脚内部有一下拉电阻为此可以悬空,在任意时刻上
    电状态下外部拉高ERASE引脚会擦除片内FLASH和NVM位,并且会在很短的时间内完成。
      当你使用SAM-BA对器件编程后执行了Enable Security Bit脚本,即编程了FLASH安全位,那么下一次恢复系统程序前必须拉高引脚ERASE
    擦除这个安全位,不然恢复系统程序不会成功。

   四.SAM-BA软件使用简介

     1.连接  USB连接需要一个USB驱动程序,但这已经在安装SAM-BA时已经安装到了系统,但第一次USB连接时还是会提示安装驱动,这时只需
              要系统自动查找并安装即可,如果你运行SAM-BA 2.5时看到如下图的界面说明你已经做好了所有准备工作,如果年不到原因可能
              有以下几点:
              (1)恢复系统程序未成功
              (2)硬件连接存在问题
              (3)USB驱动程序未被指定

     

      2.使用SAM-BA

     

     (1) AT91SAM7xxx Memory Display
         这是查看器件内FLASH或RAM内容的区域,指定开始地址(Start Address)查看区域的大小(Size in byte)后按Refresh即可从下
      边列表中看到器件内部数据
     (2) Download/Uploade File
         这是我们主要使用栏,在Send File Name中选择要写入的程序文件,要注意的是这是个二进制格式,而不是HEX或其它格式,写入前
      还要注意的是写入的开始地址,即要正确填写Address输入框,由于内部Flash从0x100000地址处开始的,所以应真此值。
         Size输入框与从器件读取数据到文件相关,写入时可不用理会。
     (3)Scripts
         通过这个栏可以设置一些器件的NVM位。

芯艺设计室(http://www.chipart.cn) 2007.8.1 转载请注明出处!

 

芯艺设计室    蒙ICP备06005492号

Copyright© 2004-2011 ChipArt Design House All Rights Reserved