Synergy

From SEGGER - Support Wiki
Jump to: navigation, search

This article describes device specifics of the Renesas Synergy microcontrollers.

Option byte programming

To program the option bytes starting at address 0x01010008, within Synergy device series, it is necessary to program the complete option byte sector starting from address 0x01010008 to address 0x01010033, also bytes that shall not get modified. In case of programming only parts of the option bytes, the flash algorithm also tries to erase the non-modified bytes within the option byte sector. Due to the fact that certain bits cannot be erased after being programmed once the subsequent verification of the option byte sector fails, when these bits remain '0'. In this case further programming of remaining sections is aborted.

Using SWO on Synergy Devices

In general, the J-Link DLL expects the trace clock to be equal to the CPU clock. As the Synergy device series allows to enable a pre-scaler which is valid for trace clock only, this assumption may be incorrect resulting in invalid SWO data are read. To make sure that the J-Link DLL behaves as expected, please make sure to not enter the actual CPU clock but the CPU clock multiplied with the ICKdivider configured in the System Clock Division Control Register (SCKDIVCR) divided by the trace clock divider configured in the Trace Clock Control Regigster (TRCKCR). Further information regarding this can be found in the two examples below.

Example (S3A7)

  • MOCO (8MHz)
  • System Clock Division Control Register (SCKDIVCR[ICK[2:0]]): 0x4 --> * 1 / 16
  • System Clock Source Control Register (SCKSCR[CKSEL[2:0]]): 0x1 --> MOCO selected as source for the ICLK (System Clock) and TRCLK (Trace Clock)
  • Trace Clock Control Register (TRCKCR[TRCK[3:0]]): 0x1 --> /2
  • ICLK = 8MHz * 1 / 16 = 500 kHz CPU clock
  • TRCLK = ICLK * 1 / 2 = 250 kHz Trace / SWO clock

CPU clock to be entered in the IDE project = ICLK * ICKdivider / TRCKdivider = 500 kHz * 16 / 2 = 4 MHz

Example (S7G2)

  • MOCO (8MHz)
  • System Clock Division Control Register (SCKDIVCR[ICK[2:0]]): 0x4 --> * 1 / 4
  • System Clock Source Control Register (SCKSCR[CKSEL[2:0]]): 0x1 --> MOCO selected as source for the ICLK (System Clock) and TRCLK (Trace Clock)
  • Trace Clock Control Register (TRCKCR[TRCK[3:0]]): 0x1 --> /2
  • ICLK = 8MHz * 1 / 4 = 2 MHz CPU clock
  • TRCLK = ICLK * 1 / 2 = 1 MHz Trace / SWO clock

CPU clock to be entered in the IDE project = ICLK * ICKdivider / TRCKdivider = 2 MHz * 4 / 2 = 4 MHz