AT91SAM7

From SEGGER - Support Wiki
Jump to: navigation, search

This article describes device specifics of the Atmel AT91SAM7 series devices.

Reset strategy

The reset pin of the device is per default disabled. This means that the reset strategies which rely on the reset pin (low pulse on reset) do not work per default. For this reason a special reset strategy has been made available.

It is recommended to use this reset strategy. This special reset strategy resets the peripherals by writing to the RSTC_CR register. Resetting the peripherals puts all peripherals in the defined reset state. This includes memory mapping register, which means that after reset flash is mapped to address 0. It is also possible to achieve the same effect by writing 0x4 to the RSTC_CR register located at address 0xfffffd00.

This information is applicable to the following devices:

  • AT91SAM7S (all devices)
  • AT91SAM7SE (all devices)
  • AT91SAM7X (all devices)
  • AT91SAM7XC (all devices)
  • AT91SAM7A (all devices)

Memory mapping

Either flash or RAM can be mapped to address 0. After reset flash is mapped to address 0. In order to majlink_supported_devices.html RAM to address 0, a 1 can be written to the RSTC_CR register. Unfortunately, this remap register is a toggle register, which switches between RAM and flash every time bit zero is written.

In order to achieve a defined mapping, there are two options:

  1. Use the software reset described above.
  2. Test if RAM is located at 0 using multiple read/write operations and testing the results.

Clearly 1. is the easiest solution and is recommended.

This information is applicable to the following devices:

  • AT91SAM7S (all devices)
  • AT91SAM7SE (all devices)
  • AT91SAM7X (all devices)
  • AT91SAM7XC (all devices)
  • AT91SAM7A (all devices)

Recommended init sequence

In order to work with an ATMEL AT91SAM7 device, it has to be initialized. The following paragraph describes the steps of an init sequence. An example for different software tools, such as J-Link GDB Server, IAR Workbench and RDI, is given.

  • Set JTAG speed to 30kHz.
  • Reset target.
  • Perform peripheral reset.
  • Disable watchdog.
  • Initialize PLL.
  • Use full JTAG speed.