- {
- /* Enable PDI programming mode with the attached target */
- XPROGTarget_EnableTargetPDI();
-
- /* Store the RESET key into the RESET PDI register to keep the XMEGA in reset */
- XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG);
- XPROGTarget_SendByte(PDI_RESET_KEY);
-
- /* Lower direction change guard time to 0 USART bits */
- XPROGTarget_SendByte(PDI_CMD_STCS | PDI_CTRL_REG);
- XPROGTarget_SendByte(0x07);
-
- /* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */
- XPROGTarget_SendByte(PDI_CMD_KEY);
- for (uint8_t i = sizeof(PDI_NVMENABLE_KEY); i > 0; i--)
- XPROGTarget_SendByte(PDI_NVMENABLE_KEY[i - 1]);
-
- /* Wait until the NVM bus becomes active */
- NVMBusEnabled = XMEGANVM_WaitWhileNVMBusBusy();
- }