28.6.14 Synchronization

Due to asynchronicity between the main clock domain and the peripheral clock domains, some registers need to be synchronized when written or read.

When executing an operation that requires synchronization, the Synchronization Busy bit in the Status register (STATUS.SYNCBUSY) will be set immediately, and cleared when synchronization is complete. The Synchronization Ready interrupt can be used to signal when synchronization is complete.

If an operation that requires synchronization is executed while STATUS.SYNCBUSY=1, the bus will be stalled. All operations will complete successfully, but the CPU will be stalled and interrupts will be pending as long as the bus is stalled.

The following bits are synchronized when written:

  • Software Reset bit in the Control A register (CTRLA.SWRST)
  • Enable bit in the Control A register (CTRLA.ENABLE)

The following registers are synchronized when written:

  • Control B (CTRLB)
  • Software Trigger (SWTRIG)
  • Window Monitor Control (WINCTRL)
  • Input Control (INPUTCTRL)
  • Window Upper/Lower Threshold (WINUT/WINLT)

Required write-synchronization is denoted by the "Write-Synchronized" property in the register description.

The following registers are synchronized when read:

  • Software Trigger (SWTRIG)
  • Input Control (INPUTCTRL)

Required read-synchronization is denoted by the "Read-Synchronized" property in the register description.