# Atmel EDBG-based Tools Protocols
EDBG Control Protocol

Sidebar | Prev | Up | Next

## EDBGCTRL ID definitions

This sections includes the header file defining the different command and response IDs for the EDBGCTRL protocol. It also defines the different possible failure codes.

    enum EdbgCommands {
        //**********************************************************
        // Protocol commands
        //**********************************************************

        // Basics
        CMD_EDBG_QUERY                                      = 0x00,
        CMD_EDBG_SET                                        = 0x01,
        CMD_EDBG_GET                                        = 0x02,
    };

    enum EdbgResponses {
        //**********************************************************
        // Protocol responses
        //**********************************************************

        RSP_EDBG_OK                                         = 0x80,
        RSP_EDBG_LIST                                       = 0x81,
        RSP_EDBG_DATA                                       = 0x84,
        RSP_EDBG_FAILED                                     = 0xA0
    };

    enum EdbgFailureCodes {
        //**********************************************************
        // Failure response codes (RSP_FAILED)
        //**********************************************************

        EDBG_FAILED_OK                                      = 0x00,
        EDBG_FAILED_NOT_SUPPORTED                           = 0x01,
        EDBG_FAILED_ILLEGAL_GPIO_PIN                        = 0x10,
        EDBG_FAILED_ILLEGAL_GPIO_MODE                       = 0x11,
        EDBG_FAILED_ILLEGAL_VOLTAGE_RANGE                   = 0x12,
        EDBG_FAILED_ILLEGAL_INTERVAL                        = 0x13,
        EDBG_FAILED_ILLEGAL_MAX_THRESHOLD                   = 0x14,
        EDBG_FAILED_ILLEGAL_MIN_THRESHOLD                   = 0x15,
        EDBG_FAILED_ILLEGAL_ACTION                          = 0x16,
        EDBG_FAILED_ILLEGAL_FREQUENCY                       = 0x17,
        EDBG_FAILED_ILLEGAL_MODE                            = 0x18,
        EDBG_FAILED_ILLEGAL_FLAGS                           = 0x19,
        EDBG_FAILED_FLASH_WRITE                             = 0x20,
        EDBG_FAILED_OVERFLOW                                = 0x30,
        EDBG_FAILED_UNKNOWN                                 = 0xFF
    };

    enum EdbgConfigTypes {
        EDBG_CONFIGTYPE_CHAR                                = 0x00,
        EDBG_CONFIGTYPE_SHORT                               = 0x01,
        EDBG_CONFIGTYPE_WORD                                = 0x02,
        EDBG_CONFIGTYPE_BIT                                 = 0x03,
        EDBG_CONFIGTYPE_STRING                              = 0x10,
        EDBG_CONFIGTYPE_ARRAY                               = 0x20,
    };

    enum EdbgConfigTags {
        //**********************************************************
        // EDBG Configuration Tags
        //**********************************************************

        EDBG_CONFIG_VERSION                                 = 0x00,
        EDBG_CONFIG_SERIAL_NUMBER                           = 0x01,
        EDBG_CONFIG_BOARD_NAME                              = 0x02,
        EDBG_CONFIG_MANUFACTURER_NAME                       = 0x03,
        EDBG_CONFIG_TARGET_NAME                             = 0x04,
        EDBG_CONFIG_TARGET_SIGNATURE                        = 0x05,
        EDBG_CONFIG_TARGET_JTAGID                           = 0x06,
        EDBG_CONFIG_TARGET_CHIPID                           = 0x07,
        EDBG_CONFIG_INTERFACES                              = 0x08,
        EDBG_CONFIG_DGI_GPIO_MAP                            = 0x09,
        EDBG_CONFIG_EXTENSION_MAP                           = 0x0A,
        EDBG_CONFIG_EXTENSION_STATUS                        = 0x0B,
        EDBG_CONFIG_EXTENSION_MANUFACTURER                  = 0x0C,
        EDBG_CONFIG_EXTENSION_PRODUCT                       = 0x0D,
        EDBG_CONFIG_EXTENSION_REVISION                      = 0x0E,
        EDBG_CONFIG_EXTENSION_SERIAL                        = 0x0F,
        EDBG_CONFIG_EXTENSION_MIN_VOLTAGE                   = 0x10,
        EDBG_CONFIG_EXTENSION_MAX_VOLTAGE                   = 0x11,
        EDBG_CONFIG_EXTENSION_CURRENT                       = 0x12,
        EDBG_CONFIG_BOARD_TYPE                              = 0x13,
        EDBG_CONFIG_FAMILY_NAME                             = 0x14,
        EDBG_CONFIG_TVS                                     = 0x15,
        EDBG_CONFIG_VERSION_MINOR                           = 0x16,
        EDBG_CONFIG_USB_ID                                  = 0x17,
        EDBG_CONFIG_KIT_DATA                                = 0x20,
    };

    enum EdbgInterfaces {
        //**********************************************************
        // EDBG Configuration Tags
        //**********************************************************
        // GPIO, USART, UART, TWI, SPI, CDC
        // SWD, ARMJTAG, AVRJTAG, aW, dW, PDI, ISP, DBG_EN

        EDBG_IF_DBG_EN                                      = 15,
        EDBG_IF_DBG_ISP                                     = 14,
        EDBG_IF_DBG_PDI                                     = 13,
        EDBG_IF_DBG_DW                                      = 12,
        EDBG_IF_DBG_AW                                      = 11,
        EDBG_IF_DBG_AVRJTAG                                 = 10,
        EDBG_IF_DBG_ARMJTAG                                 = 9,
        EDBG_IF_DBG_SWD                                     = 8,

        EDBG_IF_DGI_SPI                                     = 0,
        EDBG_IF_DGI_TWI                                     = 1,
        EDBG_IF_DGI_UART                                    = 2,
        EDBG_IF_DGI_USART                                   = 3,
        EDBG_IF_DGI_GPIO                                    = 4,
        EDBG_IF_CDC                                         = 5,

        EDBG_IF_ERASE_PIN                                   = 7,
    };
    enum EDBGQueryContexts {
        // QUERY types on this protocol
        EDBG_QUERY_COMMANDS                                 = 0x00
    };

    enum EDBGSetGetContexts {
        EDBG_CONTEXT_CONTROL                                = 0x00,
        EDBG_CONTEXT_CONFIG0                                = 0x10,
        EDBG_CONTEXT_CONFIG1                                = 0x11,
    };

    enum EDBGControlContextParameters {
        EDBG_CONTROL_LED_USAGE                              = 0x00,
        EDBG_CONTROL_EXT_PROG                               = 0x01,
        EDBG_CONTROL_TARGET_POWER                           = 0x10
    };

    enum SerialTraceCommands {
        ST_SET_TRANSPORT_MODE                               = 0x00,
        ST_SET_CAPTURE_MODE                                 = 0x01,
        ST_SET_BAUD                                         = 0x02,
        ST_START                                            = 0x03,
        ST_STOP                                             = 0x04,
        ST_GET_DATA                                         = 0x08,
        ST_GET_STATUS                                       = 0x09,
        ST_GET_BUFFER_SIZE                                  = 0x0A,
        ST_SIGNON                                           = 0x0F
    };

    enum SerialTraceTransportModes {
        TRANSPORT_OFF                                       = 0x00,
        TRANSPORT_HID                                       = 0x01
    };

    enum SerialTraceTransportModes {
        CAPTURE_OFF                                         = 0x00,
        CAPTURE_UART                                        = 0x02
    };

    enum SerialTraceErrorBits {
        ERROR_OVERFLOW                                      = 15,
        ERROR_RECEIVER                                      = 14,
        RECEIVER_DISABLED                                   = 9
    };

Prev | Up | Next
| Home |