Difference between revisions of "ArteryTek AT32"

From SEGGER Wiki
Jump to: navigation, search
(Device Table)
(Device Table)
 
(One intermediate revision by the same user not shown)
Line 78: Line 78:
 
| None/Low/High
 
| None/Low/High
 
|scope="col" style="text-align:center" | {{YES}}
 
|scope="col" style="text-align:center" | {{YES}}
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32F40x_Lock.jlink|AT32F40x_Lock.jlink]]
+
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32A40x_Lock.jlink|AT32AF40x_Lock.jlink]]
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32F40x_Lock.mot|AT32F0x_Lock.mot]]
+
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32A40x_Lock.mot|AT32A40x_Lock.mot]]
 
|-
 
|-
 
|[[ArteryTek_AT32F40x]]
 
|[[ArteryTek_AT32F40x]]
Line 102: Line 102:
 
| None/Low/High
 
| None/Low/High
 
|scope="col" style="text-align:center" | {{YES}}
 
|scope="col" style="text-align:center" | {{YES}}
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32F40x_Lock.jlink|AT32F40x_Lock.jlink]]
+
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32F41x_Lock.jlink|AT32F41x_Lock.jlink]]
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32F40x_Lock.mot|AT32F0x_Lock.mot]]
+
|scope="col" style="text-align:center" | [[:Media:ArteryTek_AT32F41x_Lock.mot|AT32F1x_Lock.mot]]
 
|-
 
|-
 
|[[ArteryTek_AT32F42x]]
 
|[[ArteryTek_AT32F42x]]

Latest revision as of 12:56, 18 March 2024

The AT32 contains several families of devices by Artery Tek.
The following article contains information which applies to all members of the product family (e.g. readout protection).
Information which is more specific to the respective sub-family(e.g. QSPI programming) is provided in family specific articles.

A list of all Artery Tek devices supported by SEGGER can be found here.
For further information regarding the product family, please refer to the website and documentation by Artery Tek.

Connect under reset

In case that J-Link fails to connect to the device (usually caused by a low-power state of the MCU), J-Link will try to connect to the device under reset to make debugging possible.

MCU Security

AT32 devices have 3 different protection level:

Level Description FAP value
None Full access to flash from the debugger. 0xA5
Low No access to flash or user data from the debugger.
User data is only eraseble.
Any value except
0xA5 or 0xCC
High No access to flash or user data from the debugger.
This state is not recoverable.
This Level is not present on all devices.
0xCC

nFAP has to be set to the complement value of FAP.

Checking MCU security

When a device is secured, the readout protection level can't be checked, because 0x00000000 is read from address 0x1FFFF800.

Disabling readout protection

J-Link Commander and J-Flash

J-Link Commander and J-Flash automatically detects secured AT32 devices and ask the user if it should be unlocked on connect.
This is called native unlock.
600px

Note:
  • It is possible to disable device access completely, by setting protection level to high. A connect will not be possible anymore afterwards and the security cannot be reset.
  • Unsecuring the device causes a mass erase of the flash.
  • It is possible to save the selection of the unlock dialog. To reset this, please refer to: Reset unlock message box.

Flasher standalone mode

In order to unlock a AT32 Artery Tek device in stand-alone mode, the unlock sequence is executed automatically if a secured device is detected.

Enabling readout protection

J-Link Commander

The below provided J-Link Commander command files set the protection level low (FAP = 0x11 / FAP_N = 0xEE).
On certain devices this is called "Under protection" in the reference manual.

J-Flash and Flasher standalone mode

There are two different ways, depending on the sub-family:

  • Use the *.mot hex files below for J-Flash and append to your application hex file.
    Take care of the adjustment of the other settings in option byte 0 area for your hardware.
  • Use the prepared .jflash project files which will lock the device after flashing the application (when using "F7" Production Programming).

All settings set protection level low.

How to set protection level high

In order to set protection level high, the value "0x11" needs to be changed to "0xCC" and "0xEE" to "0x33".
Please note that protection level high is permanent and can neither be reverted by SEGGER nor by Artery Tek.

Device Table

AT32 series overview
Family Sub-Family Core Protection Levels J-Link Commander and J-Flash:
native Unlock support
J-Link Commander:
Lock via command file
J-Flash Settings:
Lock via hex file
or
Lock via exit steps
ArteryTek_AT32A40x AT32A403A Cortex-M4 None/Low/High YES.png AT32AF40x_Lock.jlink AT32A40x_Lock.mot
ArteryTek_AT32F40x AT32F402
AT32F405
Cortex-M4 None/Low/High YES.png AT32F402_405_Lock.jlink AT32F0x_Lock.mot
ArteryTek_AT32F40x AT32F403A
AT32F407
Cortex-M4 None/Low/High YES.png AT32F40x_Lock.jlink AT32F0x_Lock.mot
ArteryTek_AT32F41x AT32F413
AT32F415
Cortex-M4 None/Low/High YES.png AT32F41x_Lock.jlink AT32F1x_Lock.mot
ArteryTek_AT32F42x AT32F421
AT32F425
Cortex-M4 None/Low/High YES.png AT32F42x_Lock.jlink AT32F42x_Lock.mot
ArteryTek_AT32F42x AT32F423 Cortex-M4 None/Low/High YES.png AT32F423_Lock.jlink AT32F42x_Lock.mot
ArteryTek_AT32F43x AT32F43x Cortex-M4 None/Low/High YES.png AT32F43x_Lock.jlink AT32F43x_Lock.mot
ArteryTek_AT32WB41x AT32WB41x Cortex-M4 None/Low/High YES.png AT32WB41x_Lock.jlink AT32WBF41x_Lock.mot