ArteryTek AT32
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.
Contents
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
- 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
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_AT32F40x | AT32F402 AT32F405 |
Cortex-M4 | None/Low/High | AT32F402_405_Lock.jlink | AT32F0x_Lock.mot | |
ArteryTek_AT32F42x | AT32F421 AT32F425 |
Cortex-M4 | None/Low/High | AT32F2x_Lock.jlink | AT32F2x_Lock.mot | |
ArteryTek_AT32F42x | AT32F423 | Cortex-M4 | None/Low/High | AT32F23_Lock.jlink | AT32F2x_Lock.mot |