AT91SAM7 Flash Programming Solutions

Download Report

Transcript AT91SAM7 Flash Programming Solutions

AT91SAM7 Flash Programming Solutions
 Introduction
• Flash Programming Terms, Definitions and Glossary
 Flash Programming During Debug Phase
• With ATMEL Evaluation Boards
• With Customer Board
 Flash Programming During Production Phase
• For Small Volume Programming (Manual Programming)
• For Medium and High Volume Programming (Automated/Gang
Programming)
ARM-Based Products Group
2
Introduction
Flash Programming Terms, Definitions and Glossary
ARM-Based Products Group
3
Flash Programming Terms and Definitions
ISP vs. IAP
 ISP (In-System Programming)
• Applicable to programmable logic and Non-Volatile Memory (NVM).
• MCU is off-line and/or not involved while memory is being
programmed.
• For Manufacturing (Blank Flash Memory)
 IAP (In-Application (re)-Programming)
• Applicable to programmable logic and Non-Volatile Memory (NVM).
• MCU is on-line and participates in programming the memory.
• For Field Updates (Firmware upgrade)
The term In-System Programming (ISP) is used in a general sense by the
industry.
ARM-Based Products Group
4
Flash Programming Terms and Definitions
 Engineering Programmers:
• Memory, PLD or MCU Programming Tool for Design Engineering.
• One device programmed at a time.
 Concurrent Programming Systems:
• Same as above but low to mid-volume production.
• Up to 6 Devices programmed at the same time.
 Automated/Gang Programming Systems:
• Same as above but for mid-volume to High-volume programming.
• Up to 5000 devices per hour
ARM-Based Products Group
5
Glossary
 JTAG (1) = Joint Test Action Group
 TAP = Test Access Port (JTAG Port)
 ICE (1) = In-circuit Emulator
 ATE = Automatic Test Equipment (Like Agilent 3070 Tester)
 BSDL = Boundary-Scan Description Language
 OBP = On-Board-Programming
 OFBP = Off-Board-Programming
(1):JTAG/ICE
IEEE Std 1149.1-2001 Standard
ARM-Based Products Group
6
Flash Programming During Debug Phase...
With ATMEL
Evaluation Boards
&
With Customer
Boards
ARM-Based Products Group
7
Debug Phase - Environment Setup
Development Tool with Flash Downloader + ICE Interface
Power
Supply
Or USB
Cable
Host PC +
Compiler/linker(1) +
Debugger(1)
JTAG/ICE
port
ICE Interface
From PC to ICE Interface
• USB,
• RS-232,
• Parallel Cable,
• Ethernet
From ICE Interface to
Target
• Standard 20-pins ARM
Connector
ARM-Based Products Group
AT91SAM7-EK or
Customer’s Board
8
Debug Phase – Development Tools
Most of today’s Development Tools like, IAR, KEIL and others,
integrate their own Flash Programming Tools.
The Flash Tool is started like any other function by one
“Download and Run” Button.
This is the simplest way to flash your application
during debug phase !
Advantages:
 Fast Programming
 All AT91SAM7 MCU supported.
 Updates maintained via patches from Tool Vendors.
ARM-Based Products Group
9
Debug Phase - SAM-BA
TM
SAM-BA allows on-board memory programming through USB,
DBGU (UART) or JTAG.
AT91SAM7-EK or Customer’s Board*
JTAG
DBGU
SAM-BA
USB
SAM-BA may be needed:
 In case of JTAG/ICE connection problems
 If no ICE interface is available for debug
 as a Demo Downloader
* For Customer Boards Design, See SAM-BA Hardware Constraints in the corresponding
product datasheet
ARM-Based Products Group
10
Debug Phase – Customizing SAM-BA
TM
 Customizing SAM-BA is possible by adding or modifying
TCL scripts files.
 Command Line Mode: allows memory programming without any
GUI interaction
Example: sam-ba.exe \usb\ARM0 programSAM7.tcl
ARM-Based Products Group
11
Debug Phase - SAM-PROG
SAM-PROG allows flash programming through USB or JTAG.
Major Features:
1
 File selector or Drag-n-Drop,
1
2
 I/O pin selection for user feedback
after programming
2
 User Feedback and Status
• Flash Programming Report,
• Number of connected boards
 Auto Mode for Drag-n-Program
6
3
4
5
3
4
 Security Bit set after programming
 JTAG Support Mode
5
6
ARM-Based Products Group
12
AT91-ISP:
Build your own Flash Programming GUI
Provides an open set of tools for programming the AT91SAM7
and AT91SAM9 ARM®-based microcontrollers.
The AT91ISP solution is not only based on 2 applications
(SAM-BA and SAM-PROG):
 AT91Boot_DLL.dll
SAM-BA
 SAM-PROG
 TCL script and Visual C++ projects examples
 Command line application using a TCL shell (AT91Boot_TCL.dll)
 SAM-BA Boot4CAN binaries (SAM7A3 and SAM7X)

ARM-Based Products Group
13
AT91 ISP:
Build your own Flash Programming GUI

Free and fully documented AT91Boot_DLL.dll



Offers a simple public API to build custom Flash programming GUI
Hides communication link complexity (USB, UART, JTAG, CAN… )
Integrates FLASH memory programming algorithms
AT91-ISP DLL
USB
SAM-BA Boot
SERIAL (DBGU)
USB
JTAG
SAM-ICE or J-Link
CAN
SAM-BA Boot4CAN
PC CAN adapter
* SAM-BA Boot4CAN is the dedicated
CAN
portGroup
of SAM-BA Boot
ARM-Based
Products
14
*
Flash Programming During Production
Phase
Small, Medium and High Volume Programming
ARM-Based Products Group
15
Introduction
How to choose between Manual and Automated
Programming?
(Data I/O Source)
by calculating the total cost of programming...
by adding the cost of:
 direct labor,
 direct materials,
 scrap/repair materials,
 capital expense equipment,
 indirect labor costs for automated programming versus manual
programming,
…and comparing the two scenarios.
ARM-Based Products Group
16
Small Production Flash Programming
(Manual Programming)
 Engineering Programmers:
• Memory, PLD or MCU Programming Tool for Design
Engineering.
• One device programmed at a time.
 Concurrent Programming Systems:
• Same as above but low to mid-volume production.
• Up to 6 Devices programmed at the same time.
All these Programming Systems use the Parallel Mode of Fast Flash
Programming Interface (FFPI).
See Appendix A for Programming Vendor Tools vs. Supported Devices
ARM-Based Products Group
17
Medium & High Production Flash Programming
(Automated)
When Medium and High Volume (1000 dev/hr) Flash Programming is
required, the cost efficient solution is to use Automated Programming
Methods.
Automated Programming can be split into two categories:
1) On-Board Flash Programming:
Automated Test Equipment
2) Off-Board Flash Programming:
 Automated High-Volume Gang Programmer
(BPMicro 4710)
ARM-Based Products Group
18
Medium & High Production Flash Programming
(Automated)
On-Board Programming
On-board Programming can be achieved via the Fast Flash
Programming Interface (FFPI)*.
FFPI Serial Access via the JTAG/ICE Port (5 pins).
 Small and High Density PCB (ex. Mobile Phone) where PCB
access points for bed-of-nails test equipments is not possible.
• FFPI Parallel Access via dedicated PIO pins (8 to 16 bit data bus + 11
control pins)
 PCB access points for bed-of-nails test equipments is possible,
 On-board FGPA for programming the AT91
* For Customer Boards Design, See FFPI Hardware Constraints in the corresponding product
datasheet
ARM-Based Products Group
19
Medium & High Production Flash Programming
(Automated)
Off-Board Programming
Off-board Programming is done on Automated High-Volume Gang
Programmers like the BPMicro 4710 Programming Station.
The BPMicro 4710 can handle up to 1200 devices per hour.
All programming tool vendors use the Parallel Mode of the Fast Flash
Programming Interface (FFPI).
Some distributors have programming centers equipped with
Concurrent and Automated
High-volume Gang Programmers and offer programming
solutions to customers for little extra fees per devices
programmed.
BPMicro 4710 Programming Station
ARM-Based Products Group
20
Appendix A
Programming Vendor Tools List
vs.
Supported Devices
http://www.bpmicro.com
Type
Supported AT91SAM7 P/N
Of
Equipment
supporting
Products
AT91
Auto Gang
Programmer
(Automated HiVolume)
Max speed
(devices/h)

44
-


11
1200



16
-




4
700





24
-






6
-







1
-







1
-
S64
S128
S256
X128
4710 / 4700






4600





3710 / 3700




3600



2710 / 2700


2600

1700 / 1710
1600
Gang Programmer
Engineering
Programmer
Number of
Sockets
S32
X256 X512
 : Supported * : Not yet Supported
ARM-Based Products Group
22
http://www.dataio.com
Type
Equipment
Of
Supporting
Products
AT91
Auto Gang
Programmer
Max speed
S32
S64
S128
S256
X128
X256
SE512
Number of
Sockets
PS288FC
*






16
-
PS300
*
*
*
*






16
-






-
5000
*
*
*
*
*
*
32
-






-
-
PS Infinity
Gang
Programmer
Supported AT91 P/N
Multisyte
Flash
Flash PAK
(devices/h)
 : Supported * : Not yet Supported
ARM-Based Products Group
23
http://www.sg.com.tw/Index_I_E.asp
Type
Equipment
Of
Supporting
Products
AT91
Auto Gang
Programmer
AP600
*
*
*
*
*
*
*
36 (4)
-
Gang
Programmer
T9600







24 (1)
-
Power Lab
*






1
-
Engineering
Programmer
Supported AT91 P/N
S32
S64
S128
S256
X128
Number
X256
SE512
Of
Sockets
Max speed
(devices/h)
 : Supported * : Not yet Supported
ARM-Based Products Group
24
http://www.xeltek.com
Supported AT91SAM7 P/N
Type
Equipment
Number
Of
Supporting
Of
Products
AT91
Auto Gang
Programmer
Programmer
S32
S321
S64
S128
S256
X128
X256
SE512
Sockets
Max speed
(devices/h)
Superpro
9000U








4
-
Superpro
3000U








1
-
 : Supported * : Not yet Supported
ARM-Based Products Group
25
http://www.hilosystems.com.tw/
Type
Equipment
Of
Supporting
Products
Auto Gang
Programmer
Gang
Programmer
Engineering
Programmer
Supported AT91SAM7 P/N
Number
Of
Max
speed
AT91
S32
S64
S128
S256
X128
X256
SE512
Sockets
(devices/
h)
AT3-300
*
*
*
*
*
*
*
32
1000
ALL-100 G4






4
-
ALL-GANG08P2
*
*
*
*
*
*
*
*
8
-
ALL-100







1
-
ALL-11P3





*
*
-

*
*
1

*
*
1
-
ALL-11C2

 : Supported * : Not yet Supported
ARM-Based Products Group
26