commit 85e6a114484a9183e8e5fe1fb19b2d9152c0db18 Author: Villuton Date: Mon Oct 27 15:58:17 2025 +0300 Init diff --git a/Config/DAP_config.h b/Config/DAP_config.h new file mode 100644 index 0000000..62412f3 --- /dev/null +++ b/Config/DAP_config.h @@ -0,0 +1,561 @@ +/* + * Copyright (c) 2013-2021 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 16. June 2021 + * $Revision: V2.1.0 + * + * Project: CMSIS-DAP Configuration + * Title: DAP_config.h CMSIS-DAP Configuration File (Template) + * + *---------------------------------------------------------------------------*/ + +#ifndef __DAP_CONFIG_H__ +#define __DAP_CONFIG_H__ + + +//************************************************************************************************** +/** +\defgroup DAP_Config_Debug_gr CMSIS-DAP Debug Unit Information +\ingroup DAP_ConfigIO_gr +@{ +Provides definitions about the hardware and configuration of the Debug Unit. + +This information includes: + - Definition of Cortex-M processor parameters used in CMSIS-DAP Debug Unit. + - Debug Unit Identification strings (Vendor, Product, Serial Number). + - Debug Unit communication packet size. + - Debug Access Port supported modes and settings (JTAG/SWD and SWO). + - Optional information about a connected Target Device (for Evaluation Boards). +*/ + +#ifdef _RTE_ +#include "RTE_Components.h" +#include CMSIS_device_header +#else +#include "device.h" // Debug Unit Cortex-M Processor Header File +#endif + +/// Processor Clock of the Cortex-M MCU used in the Debug Unit. +/// This value is used to calculate the SWD/JTAG clock speed. +#define CPU_CLOCK 100000000U ///< Specifies the CPU Clock in Hz. + +/// Number of processor cycles for I/O Port write operations. +/// This value is used to calculate the SWD/JTAG clock speed that is generated with I/O +/// Port write operations in the Debug Unit by a Cortex-M MCU. Most Cortex-M processors +/// require 2 processor cycles for a I/O Port Write operation. If the Debug Unit uses +/// a Cortex-M0+ processor with high-speed peripheral I/O only 1 processor cycle might be +/// required. +#define IO_PORT_WRITE_CYCLES 2U ///< I/O Cycles: 2=default, 1=Cortex-M0+ fast I/0. + +/// Indicate that Serial Wire Debug (SWD) communication mode is available at the Debug Access Port. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define DAP_SWD 1 ///< SWD Mode: 1 = available, 0 = not available. + +/// Indicate that JTAG communication mode is available at the Debug Port. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define DAP_JTAG 1 ///< JTAG Mode: 1 = available, 0 = not available. + +/// Configure maximum number of JTAG devices on the scan chain connected to the Debug Access Port. +/// This setting impacts the RAM requirements of the Debug Unit. Valid range is 1 .. 255. +#define DAP_JTAG_DEV_CNT 8U ///< Maximum number of JTAG devices on scan chain. + +/// Default communication mode on the Debug Access Port. +/// Used for the command \ref DAP_Connect when Port Default mode is selected. +#define DAP_DEFAULT_PORT 1U ///< Default JTAG/SWJ Port Mode: 1 = SWD, 2 = JTAG. + +/// Default communication speed on the Debug Access Port for SWD and JTAG mode. +/// Used to initialize the default SWD/JTAG clock frequency. +/// The command \ref DAP_SWJ_Clock can be used to overwrite this default setting. +#define DAP_DEFAULT_SWJ_CLOCK 1000000U ///< Default SWD/JTAG clock frequency in Hz. + +/// Maximum Package Size for Command and Response data. +/// This configuration settings is used to optimize the communication performance with the +/// debugger and depends on the USB peripheral. Typical vales are 64 for Full-speed USB HID or WinUSB, +/// 1024 for High-speed USB HID and 512 for High-speed USB WinUSB. +#define DAP_PACKET_SIZE 512U ///< Specifies Packet Size in bytes. + +/// Maximum Package Buffers for Command and Response data. +/// This configuration settings is used to optimize the communication performance with the +/// debugger and depends on the USB peripheral. For devices with limited RAM or USB buffer the +/// setting can be reduced (valid range is 1 .. 255). +#define DAP_PACKET_COUNT 8U ///< Specifies number of packets buffered. + +/// Indicate that UART Serial Wire Output (SWO) trace is available. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define SWO_UART 1 ///< SWO UART: 1 = available, 0 = not available. + +/// USART Driver instance number for the UART SWO. +#define SWO_UART_DRIVER 0 ///< USART Driver instance number (Driver_USART#). + +/// Maximum SWO UART Baudrate. +#define SWO_UART_MAX_BAUDRATE 10000000U ///< SWO UART Maximum Baudrate in Hz. + +/// Indicate that Manchester Serial Wire Output (SWO) trace is available. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define SWO_MANCHESTER 0 ///< SWO Manchester: 1 = available, 0 = not available. + +/// SWO Trace Buffer Size. +#define SWO_BUFFER_SIZE 4096U ///< SWO Trace Buffer Size in bytes (must be 2^n). + +/// SWO Streaming Trace. +#define SWO_STREAM 0 ///< SWO Streaming Trace: 1 = available, 0 = not available. + +/// Clock frequency of the Test Domain Timer. Timer value is returned with \ref TIMESTAMP_GET. +#define TIMESTAMP_CLOCK 100000000U ///< Timestamp clock in Hz (0 = timestamps not supported). + +/// Indicate that UART Communication Port is available. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define DAP_UART 1 ///< DAP UART: 1 = available, 0 = not available. + +/// USART Driver instance number for the UART Communication Port. +#define DAP_UART_DRIVER 1 ///< USART Driver instance number (Driver_USART#). + +/// UART Receive Buffer Size. +#define DAP_UART_RX_BUFFER_SIZE 1024U ///< Uart Receive Buffer Size in bytes (must be 2^n). + +/// UART Transmit Buffer Size. +#define DAP_UART_TX_BUFFER_SIZE 1024U ///< Uart Transmit Buffer Size in bytes (must be 2^n). + +/// Indicate that UART Communication via USB COM Port is available. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define DAP_UART_USB_COM_PORT 1 ///< USB COM Port: 1 = available, 0 = not available. + +/// Debug Unit is connected to fixed Target Device. +/// The Debug Unit may be part of an evaluation board and always connected to a fixed +/// known device. In this case a Device Vendor, Device Name, Board Vendor and Board Name strings +/// are stored and may be used by the debugger or IDE to configure device parameters. +#define TARGET_FIXED 0 ///< Target: 1 = known, 0 = unknown; + +#define TARGET_DEVICE_VENDOR "Arm" ///< String indicating the Silicon Vendor +#define TARGET_DEVICE_NAME "Cortex-M" ///< String indicating the Target Device +#define TARGET_BOARD_VENDOR "Arm" ///< String indicating the Board Vendor +#define TARGET_BOARD_NAME "Arm board" ///< String indicating the Board Name + +#if TARGET_FIXED != 0 +#include +static const char TargetDeviceVendor [] = TARGET_DEVICE_VENDOR; +static const char TargetDeviceName [] = TARGET_DEVICE_NAME; +static const char TargetBoardVendor [] = TARGET_BOARD_VENDOR; +static const char TargetBoardName [] = TARGET_BOARD_NAME; +#endif + +/** Get Vendor Name string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetVendorString (char *str) { + (void)str; + return (0U); +} + +/** Get Product Name string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetProductString (char *str) { + (void)str; + return (0U); +} + +/** Get Serial Number string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetSerNumString (char *str) { + (void)str; + return (0U); +} + +/** Get Target Device Vendor string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetDeviceVendorString (char *str) { +#if TARGET_FIXED != 0 + uint8_t len; + + strcpy(str, TargetDeviceVendor); + len = (uint8_t)(strlen(TargetDeviceVendor) + 1U); + return (len); +#else + (void)str; + return (0U); +#endif +} + +/** Get Target Device Name string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetDeviceNameString (char *str) { +#if TARGET_FIXED != 0 + uint8_t len; + + strcpy(str, TargetDeviceName); + len = (uint8_t)(strlen(TargetDeviceName) + 1U); + return (len); +#else + (void)str; + return (0U); +#endif +} + +/** Get Target Board Vendor string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetBoardVendorString (char *str) { +#if TARGET_FIXED != 0 + uint8_t len; + + strcpy(str, TargetBoardVendor); + len = (uint8_t)(strlen(TargetBoardVendor) + 1U); + return (len); +#else + (void)str; + return (0U); +#endif +} + +/** Get Target Board Name string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetBoardNameString (char *str) { +#if TARGET_FIXED != 0 + uint8_t len; + + strcpy(str, TargetBoardName); + len = (uint8_t)(strlen(TargetBoardName) + 1U); + return (len); +#else + (void)str; + return (0U); +#endif +} + +/** Get Product Firmware Version string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetProductFirmwareVersionString (char *str) { + (void)str; + return (0U); +} + +///@} + + +//************************************************************************************************** +/** +\defgroup DAP_Config_PortIO_gr CMSIS-DAP Hardware I/O Pin Access +\ingroup DAP_ConfigIO_gr +@{ + +Standard I/O Pins of the CMSIS-DAP Hardware Debug Port support standard JTAG mode +and Serial Wire Debug (SWD) mode. In SWD mode only 2 pins are required to implement the debug +interface of a device. The following I/O Pins are provided: + +JTAG I/O Pin | SWD I/O Pin | CMSIS-DAP Hardware pin mode +---------------------------- | -------------------- | --------------------------------------------- +TCK: Test Clock | SWCLK: Clock | Output Push/Pull +TMS: Test Mode Select | SWDIO: Data I/O | Output Push/Pull; Input (for receiving data) +TDI: Test Data Input | | Output Push/Pull +TDO: Test Data Output | | Input +nTRST: Test Reset (optional) | | Output Open Drain with pull-up resistor +nRESET: Device Reset | nRESET: Device Reset | Output Open Drain with pull-up resistor + + +DAP Hardware I/O Pin Access Functions +------------------------------------- +The various I/O Pins are accessed by functions that implement the Read, Write, Set, or Clear to +these I/O Pins. + +For the SWDIO I/O Pin there are additional functions that are called in SWD I/O mode only. +This functions are provided to achieve faster I/O that is possible with some advanced GPIO +peripherals that can independently write/read a single I/O pin without affecting any other pins +of the same I/O port. The following SWDIO I/O Pin functions are provided: + - \ref PIN_SWDIO_OUT_ENABLE to enable the output mode from the DAP hardware. + - \ref PIN_SWDIO_OUT_DISABLE to enable the input mode to the DAP hardware. + - \ref PIN_SWDIO_IN to read from the SWDIO I/O pin with utmost possible speed. + - \ref PIN_SWDIO_OUT to write to the SWDIO I/O pin with utmost possible speed. +*/ + + +// Configure DAP I/O pins ------------------------------ + +/** Setup JTAG I/O pins: TCK, TMS, TDI, TDO, nTRST, and nRESET. +Configures the DAP Hardware I/O pins for JTAG mode: + - TCK, TMS, TDI, nTRST, nRESET to output mode and set to high level. + - TDO to input mode. +*/ +__STATIC_INLINE void PORT_JTAG_SETUP (void) { + ; +} + +/** Setup SWD I/O pins: SWCLK, SWDIO, and nRESET. +Configures the DAP Hardware I/O pins for Serial Wire Debug (SWD) mode: + - SWCLK, SWDIO, nRESET to output mode and set to default high level. + - TDI, nTRST to HighZ mode (pins are unused in SWD mode). +*/ +__STATIC_INLINE void PORT_SWD_SETUP (void) { + ; +} + +/** Disable JTAG/SWD I/O Pins. +Disables the DAP Hardware I/O pins which configures: + - TCK/SWCLK, TMS/SWDIO, TDI, TDO, nTRST, nRESET to High-Z mode. +*/ +__STATIC_INLINE void PORT_OFF (void) { + ; +} + + +// SWCLK/TCK I/O pin ------------------------------------- + +/** SWCLK/TCK I/O pin: Get Input. +\return Current status of the SWCLK/TCK DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_SWCLK_TCK_IN (void) { + return (0U); +} + +/** SWCLK/TCK I/O pin: Set Output to High. +Set the SWCLK/TCK DAP hardware I/O pin to high level. +*/ +__STATIC_FORCEINLINE void PIN_SWCLK_TCK_SET (void) { + ; +} + +/** SWCLK/TCK I/O pin: Set Output to Low. +Set the SWCLK/TCK DAP hardware I/O pin to low level. +*/ +__STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR (void) { + ; +} + + +// SWDIO/TMS Pin I/O -------------------------------------- + +/** SWDIO/TMS I/O pin: Get Input. +\return Current status of the SWDIO/TMS DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_SWDIO_TMS_IN (void) { + return (0U); +} + +/** SWDIO/TMS I/O pin: Set Output to High. +Set the SWDIO/TMS DAP hardware I/O pin to high level. +*/ +__STATIC_FORCEINLINE void PIN_SWDIO_TMS_SET (void) { + ; +} + +/** SWDIO/TMS I/O pin: Set Output to Low. +Set the SWDIO/TMS DAP hardware I/O pin to low level. +*/ +__STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR (void) { + ; +} + +/** SWDIO I/O pin: Get Input (used in SWD mode only). +\return Current status of the SWDIO DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN (void) { + return (0U); +} + +/** SWDIO I/O pin: Set Output (used in SWD mode only). +\param bit Output value for the SWDIO DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE void PIN_SWDIO_OUT (uint32_t bit) { + ; +} + +/** SWDIO I/O pin: Switch to Output mode (used in SWD mode only). +Configure the SWDIO DAP hardware I/O pin to output mode. This function is +called prior \ref PIN_SWDIO_OUT function calls. +*/ +__STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE (void) { + ; +} + +/** SWDIO I/O pin: Switch to Input mode (used in SWD mode only). +Configure the SWDIO DAP hardware I/O pin to input mode. This function is +called prior \ref PIN_SWDIO_IN function calls. +*/ +__STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void) { + ; +} + + +// TDI Pin I/O --------------------------------------------- + +/** TDI I/O pin: Get Input. +\return Current status of the TDI DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_TDI_IN (void) { + return (0U); +} + +/** TDI I/O pin: Set Output. +\param bit Output value for the TDI DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE void PIN_TDI_OUT (uint32_t bit) { + ; +} + + +// TDO Pin I/O --------------------------------------------- + +/** TDO I/O pin: Get Input. +\return Current status of the TDO DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_TDO_IN (void) { + return (0U); +} + + +// nTRST Pin I/O ------------------------------------------- + +/** nTRST I/O pin: Get Input. +\return Current status of the nTRST DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_nTRST_IN (void) { + return (0U); +} + +/** nTRST I/O pin: Set Output. +\param bit JTAG TRST Test Reset pin status: + - 0: issue a JTAG TRST Test Reset. + - 1: release JTAG TRST Test Reset. +*/ +__STATIC_FORCEINLINE void PIN_nTRST_OUT (uint32_t bit) { + ; +} + +// nRESET Pin I/O------------------------------------------ + +/** nRESET I/O pin: Get Input. +\return Current status of the nRESET DAP hardware I/O pin. +*/ +__STATIC_FORCEINLINE uint32_t PIN_nRESET_IN (void) { + return (0U); +} + +/** nRESET I/O pin: Set Output. +\param bit target device hardware reset pin status: + - 0: issue a device hardware reset. + - 1: release device hardware reset. +*/ +__STATIC_FORCEINLINE void PIN_nRESET_OUT (uint32_t bit) { + ; +} + +///@} + + +//************************************************************************************************** +/** +\defgroup DAP_Config_LEDs_gr CMSIS-DAP Hardware Status LEDs +\ingroup DAP_ConfigIO_gr +@{ + +CMSIS-DAP Hardware may provide LEDs that indicate the status of the CMSIS-DAP Debug Unit. + +It is recommended to provide the following LEDs for status indication: + - Connect LED: is active when the DAP hardware is connected to a debugger. + - Running LED: is active when the debugger has put the target device into running state. +*/ + +/** Debug Unit: Set status of Connected LED. +\param bit status of the Connect LED. + - 1: Connect LED ON: debugger is connected to CMSIS-DAP Debug Unit. + - 0: Connect LED OFF: debugger is not connected to CMSIS-DAP Debug Unit. +*/ +__STATIC_INLINE void LED_CONNECTED_OUT (uint32_t bit) {} + +/** Debug Unit: Set status Target Running LED. +\param bit status of the Target Running LED. + - 1: Target Running LED ON: program execution in target started. + - 0: Target Running LED OFF: program execution in target stopped. +*/ +__STATIC_INLINE void LED_RUNNING_OUT (uint32_t bit) {} + +///@} + + +//************************************************************************************************** +/** +\defgroup DAP_Config_Timestamp_gr CMSIS-DAP Timestamp +\ingroup DAP_ConfigIO_gr +@{ +Access function for Test Domain Timer. + +The value of the Test Domain Timer in the Debug Unit is returned by the function \ref TIMESTAMP_GET. By +default, the DWT timer is used. The frequency of this timer is configured with \ref TIMESTAMP_CLOCK. + +*/ + +/** Get timestamp of Test Domain Timer. +\return Current timestamp value. +*/ +__STATIC_INLINE uint32_t TIMESTAMP_GET (void) { + return (DWT->CYCCNT); +} + +///@} + + +//************************************************************************************************** +/** +\defgroup DAP_Config_Initialization_gr CMSIS-DAP Initialization +\ingroup DAP_ConfigIO_gr +@{ + +CMSIS-DAP Hardware I/O and LED Pins are initialized with the function \ref DAP_SETUP. +*/ + +/** Setup of the Debug Unit I/O pins and LEDs (called when Debug Unit is initialized). +This function performs the initialization of the CMSIS-DAP Hardware I/O Pins and the +Status LEDs. In detail the operation of Hardware I/O and LED pins are enabled and set: + - I/O clock system enabled. + - all I/O pins: input buffer enabled, output pins are set to HighZ mode. + - for nTRST, nRESET a weak pull-up (if available) is enabled. + - LED output pins are enabled and LEDs are turned off. +*/ +__STATIC_INLINE void DAP_SETUP (void) { + ; +} + +/** Reset Target Device with custom specific I/O pin or command sequence. +This function allows the optional implementation of a device specific reset sequence. +It is called when the command \ref DAP_ResetTarget and is for example required +when a device needs a time-critical unlock sequence that enables the debug port. +\return 0 = no device specific reset sequence is implemented.\n + 1 = a device specific reset sequence is implemented. +*/ +__STATIC_INLINE uint8_t RESET_TARGET (void) { + return (0U); // change to '1' when a device reset sequence is implemented +} + +///@} + + +#endif /* __DAP_CONFIG_H__ */ diff --git a/Doc/DAPLink-HS.eprj b/Doc/DAPLink-HS.eprj new file mode 100644 index 0000000..be72930 Binary files /dev/null and b/Doc/DAPLink-HS.eprj differ diff --git a/Doc/DAPLink-HS.pdf b/Doc/DAPLink-HS.pdf new file mode 100644 index 0000000..40f9a9c --- /dev/null +++ b/Doc/DAPLink-HS.pdf @@ -0,0 +1,9291 @@ +%PDF-1.4 +%ºß¬à +3 0 obj +<> +endobj +4 0 obj +<< +/Length 93514 +>> +stream +0.14 w +0 G +q +2 J +0 j +72 M +1.00 g +[] 0 d +0.00 599.76 848.16 -599.76 re +f +0.60 g +148.32 535.68 m 148.32 536.48 147.68 537.12 146.88 537.12 c +146.08 537.12 145.44 536.48 145.44 535.68 c +145.44 534.88 146.08 534.24 146.88 534.24 c +147.68 534.24 148.32 534.88 148.32 535.68 c +f +0.60 g +148.32 528.48 m 148.32 529.28 147.68 529.92 146.88 529.92 c +146.08 529.92 145.44 529.28 145.44 528.48 c +145.44 527.68 146.08 527.04 146.88 527.04 c +147.68 527.04 148.32 527.68 148.32 528.48 c +f +0.60 g +220.32 434.88 m 220.32 435.68 219.68 436.32 218.88 436.32 c +218.08 436.32 217.44 435.68 217.44 434.88 c +217.44 434.08 218.08 433.44 218.88 433.44 c +219.68 433.44 220.32 434.08 220.32 434.88 c +f +0.60 g +436.32 413.28 m 436.32 414.08 435.68 414.72 434.88 414.72 c +434.08 414.72 433.44 414.08 433.44 413.28 c +433.44 412.48 434.08 411.84 434.88 411.84 c +435.68 411.84 436.32 412.48 436.32 413.28 c +f +0.60 g +436.32 406.08 m 436.32 406.88 435.68 407.52 434.88 407.52 c +434.08 407.52 433.44 406.88 433.44 406.08 c +433.44 405.28 434.08 404.64 434.88 404.64 c +435.68 404.64 436.32 405.28 436.32 406.08 c +f +0.60 g +436.32 398.88 m 436.32 399.68 435.68 400.32 434.88 400.32 c +434.08 400.32 433.44 399.68 433.44 398.88 c +433.44 398.08 434.08 397.44 434.88 397.44 c +435.68 397.44 436.32 398.08 436.32 398.88 c +f +0.60 g +580.32 420.48 m 580.32 421.28 579.68 421.92 578.88 421.92 c +578.08 421.92 577.44 421.28 577.44 420.48 c +577.44 419.68 578.08 419.04 578.88 419.04 c +579.68 419.04 580.32 419.68 580.32 420.48 c +f +0.60 g +580.32 413.28 m 580.32 414.08 579.68 414.72 578.88 414.72 c +578.08 414.72 577.44 414.08 577.44 413.28 c +577.44 412.48 578.08 411.84 578.88 411.84 c +579.68 411.84 580.32 412.48 580.32 413.28 c +f +0.60 g +724.32 427.68 m 724.32 428.48 723.68 429.12 722.88 429.12 c +722.08 429.12 721.44 428.48 721.44 427.68 c +721.44 426.88 722.08 426.24 722.88 426.24 c +723.68 426.24 724.32 426.88 724.32 427.68 c +f +0.60 g +724.32 420.48 m 724.32 421.28 723.68 421.92 722.88 421.92 c +722.08 421.92 721.44 421.28 721.44 420.48 c +721.44 419.68 722.08 419.04 722.88 419.04 c +723.68 419.04 724.32 419.68 724.32 420.48 c +f +0.60 g +724.32 413.28 m 724.32 414.08 723.68 414.72 722.88 414.72 c +722.08 414.72 721.44 414.08 721.44 413.28 c +721.44 412.48 722.08 411.84 722.88 411.84 c +723.68 411.84 724.32 412.48 724.32 413.28 c +f +0.60 g +724.32 406.08 m 724.32 406.88 723.68 407.52 722.88 407.52 c +722.08 407.52 721.44 406.88 721.44 406.08 c +721.44 405.28 722.08 404.64 722.88 404.64 c +723.68 404.64 724.32 405.28 724.32 406.08 c +f +0.60 g +724.32 398.88 m 724.32 399.68 723.68 400.32 722.88 400.32 c +722.08 400.32 721.44 399.68 721.44 398.88 c +721.44 398.08 722.08 397.44 722.88 397.44 c +723.68 397.44 724.32 398.08 724.32 398.88 c +f +0.60 g +580.32 406.08 m 580.32 406.88 579.68 407.52 578.88 407.52 c +578.08 407.52 577.44 406.88 577.44 406.08 c +577.44 405.28 578.08 404.64 578.88 404.64 c +579.68 404.64 580.32 405.28 580.32 406.08 c +f +0.60 g +580.32 398.88 m 580.32 399.68 579.68 400.32 578.88 400.32 c +578.08 400.32 577.44 399.68 577.44 398.88 c +577.44 398.08 578.08 397.44 578.88 397.44 c +579.68 397.44 580.32 398.08 580.32 398.88 c +f +0.60 g +270.72 262.08 m 270.72 262.88 270.08 263.52 269.28 263.52 c +268.48 263.52 267.84 262.88 267.84 262.08 c +267.84 261.28 268.48 260.64 269.28 260.64 c +270.08 260.64 270.72 261.28 270.72 262.08 c +f +0.60 g +472.32 218.88 m 472.32 219.68 471.68 220.32 470.88 220.32 c +470.08 220.32 469.44 219.68 469.44 218.88 c +469.44 218.08 470.08 217.44 470.88 217.44 c +471.68 217.44 472.32 218.08 472.32 218.88 c +f +0.60 g +526.32 218.88 m 526.32 219.68 525.68 220.32 524.88 220.32 c +524.08 220.32 523.44 219.68 523.44 218.88 c +523.44 218.08 524.08 217.44 524.88 217.44 c +525.68 217.44 526.32 218.08 526.32 218.88 c +f +0.60 g +436.32 384.48 m 436.32 385.28 435.68 385.92 434.88 385.92 c +434.08 385.92 433.44 385.28 433.44 384.48 c +433.44 383.68 434.08 383.04 434.88 383.04 c +435.68 383.04 436.32 383.68 436.32 384.48 c +f +0.60 g +220.32 420.48 m 220.32 421.28 219.68 421.92 218.88 421.92 c +218.08 421.92 217.44 421.28 217.44 420.48 c +217.44 419.68 218.08 419.04 218.88 419.04 c +219.68 419.04 220.32 419.68 220.32 420.48 c +f +0.60 g +220.32 413.28 m 220.32 414.08 219.68 414.72 218.88 414.72 c +218.08 414.72 217.44 414.08 217.44 413.28 c +217.44 412.48 218.08 411.84 218.88 411.84 c +219.68 411.84 220.32 412.48 220.32 413.28 c +f +0.60 g +220.32 406.08 m 220.32 406.88 219.68 407.52 218.88 407.52 c +218.08 407.52 217.44 406.88 217.44 406.08 c +217.44 405.28 218.08 404.64 218.88 404.64 c +219.68 404.64 220.32 405.28 220.32 406.08 c +f +0.60 g +220.32 398.88 m 220.32 399.68 219.68 400.32 218.88 400.32 c +218.08 400.32 217.44 399.68 217.44 398.88 c +217.44 398.08 218.08 397.44 218.88 397.44 c +219.68 397.44 220.32 398.08 220.32 398.88 c +f +0.60 g +220.32 391.68 m 220.32 392.48 219.68 393.12 218.88 393.12 c +218.08 393.12 217.44 392.48 217.44 391.68 c +217.44 390.88 218.08 390.24 218.88 390.24 c +219.68 390.24 220.32 390.88 220.32 391.68 c +f +0.60 g +220.32 384.48 m 220.32 385.28 219.68 385.92 218.88 385.92 c +218.08 385.92 217.44 385.28 217.44 384.48 c +217.44 383.68 218.08 383.04 218.88 383.04 c +219.68 383.04 220.32 383.68 220.32 384.48 c +f +0.60 g +436.32 427.68 m 436.32 428.48 435.68 429.12 434.88 429.12 c +434.08 429.12 433.44 428.48 433.44 427.68 c +433.44 426.88 434.08 426.24 434.88 426.24 c +435.68 426.24 436.32 426.88 436.32 427.68 c +f +0.60 g +436.32 434.88 m 436.32 435.68 435.68 436.32 434.88 436.32 c +434.08 436.32 433.44 435.68 433.44 434.88 c +433.44 434.08 434.08 433.44 434.88 433.44 c +435.68 433.44 436.32 434.08 436.32 434.88 c +f +0.60 g +303.12 326.88 m 303.12 327.68 302.48 328.32 301.68 328.32 c +300.88 328.32 300.24 327.68 300.24 326.88 c +300.24 326.08 300.88 325.44 301.68 325.44 c +302.48 325.44 303.12 326.08 303.12 326.88 c +f +0.60 g +353.52 326.88 m 353.52 327.68 352.88 328.32 352.08 328.32 c +351.28 328.32 350.64 327.68 350.64 326.88 c +350.64 326.08 351.28 325.44 352.08 325.44 c +352.88 325.44 353.52 326.08 353.52 326.88 c +f +0.60 g +220.32 370.08 m 220.32 370.88 219.68 371.52 218.88 371.52 c +218.08 371.52 217.44 370.88 217.44 370.08 c +217.44 369.28 218.08 368.64 218.88 368.64 c +219.68 368.64 220.32 369.28 220.32 370.08 c +f +0.60 g +436.32 370.08 m 436.32 370.88 435.68 371.52 434.88 371.52 c +434.08 371.52 433.44 370.88 433.44 370.08 c +433.44 369.28 434.08 368.64 434.88 368.64 c +435.68 368.64 436.32 369.28 436.32 370.08 c +f +0.60 g +580.32 362.88 m 580.32 363.68 579.68 364.32 578.88 364.32 c +578.08 364.32 577.44 363.68 577.44 362.88 c +577.44 362.08 578.08 361.44 578.88 361.44 c +579.68 361.44 580.32 362.08 580.32 362.88 c +f +0.60 g +580.32 355.68 m 580.32 356.48 579.68 357.12 578.88 357.12 c +578.08 357.12 577.44 356.48 577.44 355.68 c +577.44 354.88 578.08 354.24 578.88 354.24 c +579.68 354.24 580.32 354.88 580.32 355.68 c +f +0.60 g +580.32 348.48 m 580.32 349.28 579.68 349.92 578.88 349.92 c +578.08 349.92 577.44 349.28 577.44 348.48 c +577.44 347.68 578.08 347.04 578.88 347.04 c +579.68 347.04 580.32 347.68 580.32 348.48 c +f +0.60 g +580.32 341.28 m 580.32 342.08 579.68 342.72 578.88 342.72 c +578.08 342.72 577.44 342.08 577.44 341.28 c +577.44 340.48 578.08 339.84 578.88 339.84 c +579.68 339.84 580.32 340.48 580.32 341.28 c +f +0.60 g +724.32 362.88 m 724.32 363.68 723.68 364.32 722.88 364.32 c +722.08 364.32 721.44 363.68 721.44 362.88 c +721.44 362.08 722.08 361.44 722.88 361.44 c +723.68 361.44 724.32 362.08 724.32 362.88 c +f +0.60 g +724.32 355.68 m 724.32 356.48 723.68 357.12 722.88 357.12 c +722.08 357.12 721.44 356.48 721.44 355.68 c +721.44 354.88 722.08 354.24 722.88 354.24 c +723.68 354.24 724.32 354.88 724.32 355.68 c +f +0.60 g +724.32 348.48 m 724.32 349.28 723.68 349.92 722.88 349.92 c +722.08 349.92 721.44 349.28 721.44 348.48 c +721.44 347.68 722.08 347.04 722.88 347.04 c +723.68 347.04 724.32 347.68 724.32 348.48 c +f +0.60 g +724.32 341.28 m 724.32 342.08 723.68 342.72 722.88 342.72 c +722.08 342.72 721.44 342.08 721.44 341.28 c +721.44 340.48 722.08 339.84 722.88 339.84 c +723.68 339.84 724.32 340.48 724.32 341.28 c +f +0.60 g +400.32 326.88 m 400.32 327.68 399.68 328.32 398.88 328.32 c +398.08 328.32 397.44 327.68 397.44 326.88 c +397.44 326.08 398.08 325.44 398.88 325.44 c +399.68 325.44 400.32 326.08 400.32 326.88 c +f +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +2.88 596.88 842.40 -594.00 re +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +10.08 589.68 828.00 -579.60 re +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +150.480 596.880 m +150.480 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +150.480 10.080 m +150.480 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +290.880 596.880 m +290.880 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +290.880 10.080 m +290.880 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +431.280 596.880 m +431.280 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +431.280 10.080 m +431.280 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +571.680 596.880 m +571.680 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +571.680 10.080 m +571.680 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +712.080 596.880 m +712.080 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +712.080 10.080 m +712.080 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +2.880 441.180 m +10.080 441.180 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 441.180 m +845.280 441.180 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +2.880 292.680 m +10.080 292.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 292.680 m +845.280 292.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +2.880 144.180 m +10.080 144.180 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 144.180 m +845.280 144.180 l +S +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +78.48 590.64 Td +<0031> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +78.48 3.84 Td +<0031> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +218.88 590.64 Td +<0032> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +218.88 3.84 Td +<0032> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +359.28 590.64 Td +<0033> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +359.28 3.84 Td +<0033> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +499.68 590.64 Td +<0034> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +499.68 3.84 Td +<0034> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +640.08 590.64 Td +<0035> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +640.08 3.84 Td +<0035> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +780.48 590.64 Td +<0036> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +780.48 3.84 Td +<0036> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 512.79 Td +<0041> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 512.79 Td +<0041> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 364.29 Td +<0042> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 364.29 Td +<0042> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 215.79 Td +<0043> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 215.79 Td +<0043> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 67.29 Td +<0044> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 67.29 Td +<0044> Tj +ET +7.20 w +BT +14.40 TL +0.000 0.000 0.502 rg +689.32 19.82 Td +/F3 12.705881640160413 Tf +<56097acb521b> Tj +/F2 12.705881640160413 Tf +(EDA) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +510.04 20.99 Td +(V1.0) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +573.05 20.99 Td +(A4) Tj +ET +7.20 w +BT +/F2 12.705881640160413 Tf +14.40 TL +0.000 0.000 0.502 rg +629.63 70.22 Td +(DAPLink-HS) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +793.67 43.31 Td +(1) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +730.08 128.99 Td +(2025-05-06) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +730.08 114.59 Td +(2023-05-25) Tj +ET +7.20 w +BT +/F2 12.705881640160413 Tf +14.40 TL +0.000 0.000 0.502 rg +492.83 120.62 Td +(DAPLink-HS) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +709.43 43.31 Td +(1) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +518.15 100.19 Td +(Core) Tj +ET +q +1 0 0 1 0 0 cm +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +339.84 70.92 Td +<00520065007600690065007700650064> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +339.84 85.32 Td +<004400720061007700650064> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +511.74 42.12 Td +<005600450052> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 114.12 Td +<00430072006500610074006500200044006100740065> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 99.72 Td +<00500061007200740020004e0075006d006200650072> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 42.84 Td +<0050004100470045> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +745.92 42.84 Td +<004f0046> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +339.84 121.32 Td +<0053006300680065006d0061007400690063> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 128.52 Td +<00550070006400610074006500200044006100740065> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +566.64 42.12 Td +<00530049005a0045> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +341.28 99.72 Td +<0050006100670065> Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +332.64 139.68 505.44 -129.60 re +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +548.640 10.080 m +548.640 53.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 38.880 m +398.880 139.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +649.440 139.680 m +649.440 96.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +721.440 96.480 m +721.440 139.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +491.040 96.480 m +491.040 10.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +491.040 82.080 m +332.640 82.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 125.280 m +649.440 125.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 38.880 m +332.640 38.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 96.480 m +332.640 96.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 53.280 m +332.640 53.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +491.040 67.680 m +332.640 67.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 110.880 m +332.640 110.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +606.240 53.280 m +606.240 10.080 l +S +q +0.33 0.53 1.00 rg +[] 0 d +448.048 32.040 m +448.027 32.040 439.829 32.040 439.829 32.040 c +437.744 18.234 l +446.339 18.234 l +446.339 18.234 l +447.062 18.246 447.645 18.781 447.645 19.436 c +447.645 20.103 447.048 20.638 446.318 20.638 c +446.290 20.638 440.989 20.632 440.989 20.632 c +441.552 24.290 l +441.552 24.290 446.992 24.284 447.041 24.284 c +447.784 24.284 448.389 24.831 448.389 25.505 c +448.389 26.109 447.902 26.613 447.263 26.708 c +441.920 26.708 l +442.358 29.572 l +442.358 29.572 448.020 29.578 448.055 29.578 c +448.799 29.578 449.403 30.126 449.403 30.800 c +449.396 31.492 448.792 32.040 448.048 32.040 c +448.048 32.040 l +f +0.33 0.53 1.00 rg +[] 0 d +462.945 25.423 m +462.945 26.783 462.597 27.979 461.910 29.018 c +461.222 30.057 460.318 30.819 459.214 31.303 c +458.109 31.788 456.428 32.027 454.162 32.027 c +451.752 32.027 l +449.667 18.221 l +454.406 18.221 l +456.393 18.221 457.942 18.492 459.061 19.027 c +460.179 19.562 461.110 20.412 461.840 21.577 c +462.583 22.754 462.945 24.038 462.945 25.423 c +462.945 25.423 l +459.200 22.578 m +458.651 21.816 457.921 21.281 457.004 20.972 c +456.358 20.758 455.309 20.638 453.857 20.638 c +452.912 20.638 l +454.253 29.597 l +454.968 29.597 l +456.143 29.597 457.081 29.434 457.789 29.094 c +458.491 28.754 459.040 28.281 459.429 27.664 c +459.818 27.048 460.013 26.279 460.013 25.367 c +460.027 24.265 459.749 23.333 459.200 22.578 c +459.200 22.578 l +f +0.33 0.53 1.00 rg +[] 0 d +473.923 25.574 m +472.255 24.743 l +472.116 23.654 471.095 22.798 469.851 22.798 c +468.517 22.798 467.433 23.780 467.433 24.989 c +467.433 26.198 468.517 27.180 469.851 27.180 c +470.365 27.180 470.845 27.035 471.234 26.783 c +473.304 27.816 l +472.186 31.889 l +469.823 31.889 l +461.757 18.359 l +464.779 18.359 l +466.474 21.237 l +472.401 21.237 l +473.193 18.359 l +475.917 18.359 l +473.923 25.574 l +473.923 25.574 l +f +0.33 0.53 1.00 rg +[] 0 d +171.714 -1492.614 m +171.714 -1493.083 171.293 -1493.464 170.776 -1493.464 c +170.258 -1493.464 169.838 -1493.083 169.838 -1492.614 c +169.838 -1492.145 170.258 -1491.764 170.776 -1491.764 c +171.293 -1491.764 171.714 -1492.145 171.714 -1492.614 c +f +0.33 0.53 1.00 rg +[] 0 d +430.053 21.111 m +430.227 20.934 430.491 20.821 430.755 20.821 c +430.789 20.821 l +431.317 20.821 431.762 21.180 431.832 21.652 c +433.242 30.693 l +431.213 30.693 l +429.817 21.778 l +429.796 21.545 429.872 21.293 430.053 21.111 c +430.053 21.111 l +f +0.33 0.53 1.00 rg +[] 0 d +432.471 20.097 m +432.450 19.959 432.367 19.807 432.235 19.682 c +432.110 19.574 431.978 19.524 431.811 19.524 c +430.428 19.524 l +429.914 19.524 429.455 19.159 429.386 18.693 c +429.379 18.662 l +429.344 18.410 429.428 18.171 429.601 17.988 c +429.775 17.812 430.039 17.698 430.303 17.698 c +431.686 17.698 l +432.061 17.698 432.394 17.761 432.707 17.900 c +433.666 18.259 434.319 19.020 434.451 19.959 c +436.195 32.147 l +434.187 32.147 l +432.471 20.097 l +432.471 20.097 l +f +0.33 0.53 1.00 rg +[] 0 d +429.442 27.557 m +429.692 27.557 429.900 27.740 429.900 27.973 c +429.900 28.017 429.893 28.055 429.879 28.093 c +429.879 28.093 429.879 28.093 429.886 28.093 c +429.045 30.737 l +429.039 30.749 l +428.830 31.259 428.552 31.650 428.212 31.889 c +428.177 31.914 l +427.781 32.141 427.267 32.260 426.600 32.260 c +424.335 32.260 l +423.696 32.260 423.161 32.141 422.751 31.908 c +422.313 31.656 421.945 31.297 421.653 30.838 c +421.653 30.838 420.492 29.075 419.888 28.168 c +419.895 28.162 l +419.860 28.105 419.839 28.042 419.839 27.973 c +419.839 27.746 420.041 27.557 420.298 27.557 c +420.305 27.557 420.312 27.557 420.312 27.557 c +421.750 27.557 l +421.861 27.727 421.979 27.897 422.097 28.067 c +422.132 28.118 l +422.507 28.703 422.980 29.427 423.348 29.975 c +423.355 29.988 l +423.452 30.139 423.584 30.271 423.730 30.353 c +423.841 30.416 424.015 30.447 424.224 30.447 c +426.489 30.447 l +426.676 30.447 426.822 30.422 426.892 30.378 c +426.989 30.309 427.072 30.202 427.114 30.082 c +427.913 27.564 l +429.379 27.564 l +429.379 27.570 l +429.400 27.557 429.421 27.557 429.442 27.557 c +429.442 27.557 l +f +0.33 0.53 1.00 rg +[] 0 d +427.100 26.997 m +422.869 26.997 l +422.285 26.997 421.694 26.789 421.208 26.412 c +420.736 26.046 420.423 25.555 420.312 25.033 c +419.311 20.078 l +419.249 19.757 419.263 19.449 419.346 19.172 c +419.499 18.592 419.909 18.145 420.486 17.912 c +420.763 17.774 421.076 17.705 421.458 17.705 c +427.308 17.705 l +427.830 17.705 428.288 18.057 428.378 18.529 c +428.385 18.561 l +428.434 18.813 428.365 19.052 428.198 19.235 c +428.031 19.411 427.788 19.518 427.510 19.518 c +421.660 19.518 l +421.535 19.518 421.430 19.562 421.347 19.644 c +421.333 19.656 l +421.292 19.700 421.236 19.776 421.271 19.952 c +422.278 24.913 l +422.299 25.008 422.327 25.052 422.410 25.108 c +422.445 25.134 l +422.494 25.178 422.542 25.197 422.667 25.197 c +426.899 25.197 l +426.954 25.197 426.982 25.190 426.982 25.190 c +427.003 25.165 l +427.017 25.146 427.038 25.127 427.017 25.039 c +426.489 22.949 l +426.454 22.779 426.315 22.659 426.134 22.659 c +424.251 22.659 l +423.737 22.659 423.265 22.294 423.181 21.835 c +423.174 21.791 l +423.133 21.558 423.195 21.318 423.362 21.142 c +423.529 20.960 423.786 20.853 424.050 20.853 c +425.940 20.853 l +425.995 20.853 426.044 20.853 426.100 20.859 c +426.141 20.859 426.183 20.853 426.225 20.853 c +427.371 20.853 428.219 21.514 428.330 22.370 c +428.399 22.603 429.004 24.907 429.004 24.907 c +429.059 25.184 429.045 25.455 428.962 25.694 c +428.740 26.487 428.017 26.997 427.100 26.997 c +427.100 26.997 l +f +0.33 0.53 1.00 rg +[] 0 d +416.400 19.537 m +402.150 19.537 l +402.004 18.126 l +402.004 18.126 402.004 18.126 402.011 18.126 c +402.011 18.120 l +402.011 17.894 402.212 17.698 402.476 17.698 c +402.476 17.698 l +402.476 17.698 l +416.282 17.698 l +416.789 17.698 417.241 18.064 417.310 18.529 c +417.317 18.573 l +417.352 18.825 417.269 19.071 417.095 19.253 c +416.907 19.430 416.664 19.537 416.400 19.537 c +416.400 19.537 l +f +0.33 0.53 1.00 rg +[] 0 d +412.224 19.933 m +412.329 19.908 l +412.412 19.889 412.495 19.877 412.579 19.877 c +412.579 19.877 l +412.975 19.877 413.343 20.091 413.524 20.424 c +414.608 22.533 415.434 25.845 416.317 28.496 c +416.324 28.514 l +416.331 28.533 416.331 28.546 416.338 28.565 c +414.253 28.565 l +413.426 26.091 412.676 22.980 411.703 21.092 c +411.592 20.865 411.592 20.607 411.703 20.380 c +411.801 20.179 411.981 20.015 412.224 19.933 c +412.224 19.933 l +f +0.33 0.53 1.00 rg +[] 0 d +406.173 20.771 m +406.242 20.361 406.617 20.084 407.083 20.084 c +407.152 20.084 407.222 20.091 407.291 20.103 c +407.312 20.110 l +407.805 20.229 408.139 20.638 408.090 21.079 c +407.250 28.420 l +405.283 28.420 l +405.283 28.414 l +406.173 20.802 l +406.173 20.771 l +406.173 20.771 l +f +0.33 0.53 1.00 rg +[] 0 d +417.074 30.982 m +412.037 30.982 l +412.301 32.569 l +410.724 32.569 l +410.724 32.569 l +410.717 32.569 410.710 32.569 410.696 32.569 c +410.467 32.569 410.272 32.411 410.244 32.197 c +410.244 32.197 l +410.015 30.982 l +410.015 30.982 403.908 30.982 403.873 30.976 c +403.741 29.685 l +403.734 29.660 403.734 29.635 403.734 29.604 c +403.734 29.377 403.935 29.188 404.192 29.182 c +404.192 29.175 l +406.603 29.169 416.963 29.175 416.963 29.175 c +417.491 29.175 417.936 29.528 418.005 29.994 c +418.005 30.006 l +418.040 30.265 417.963 30.504 417.790 30.686 c +417.616 30.882 417.359 30.982 417.074 30.982 c +417.074 30.982 l +f +0.33 0.53 1.00 rg +[] 0 d +388.532 21.350 m +390.178 21.350 l +391.200 21.350 391.603 20.909 391.422 19.977 c +391.200 18.806 l +391.109 17.881 390.574 17.554 389.372 17.516 c +387.288 17.516 l +387.288 18.725 l +388.580 18.725 l +389.115 18.725 389.338 18.888 389.428 19.128 c +389.518 19.493 l +389.609 19.814 389.386 19.977 388.851 19.977 c +387.962 19.977 l +387.114 18.769 385.829 18.082 383.647 17.478 c +383.112 18.687 l +384.537 19.090 385.113 19.291 385.919 19.940 c +383.786 19.940 l +384.009 21.312 l +386.635 21.312 l +386.635 21.350 386.677 21.514 386.767 21.715 c +386.809 21.879 386.989 21.998 387.170 21.998 c +388.726 21.998 l +388.532 21.350 l +388.532 21.350 l +f +0.33 0.53 1.00 rg +[] 0 d +385.377 30.504 m +385.558 31.429 l +392.409 31.429 l +392.499 32.071 l +392.541 32.273 392.721 32.393 392.902 32.393 c +394.722 32.393 l +394.542 31.423 l +400.684 31.423 l +401.128 31.423 401.483 31.058 401.441 30.617 c +401.441 30.617 l +401.399 30.296 401.087 30.051 400.684 30.051 c +394.361 30.051 l +394.229 29.364 l +399.350 29.364 l +399.753 29.364 400.058 29.043 399.975 28.678 c +399.975 28.678 l +399.933 28.395 399.662 28.193 399.350 28.193 c +386.531 28.193 l +386.267 28.193 386.086 28.395 386.128 28.634 c +386.260 29.358 l +392.047 29.358 l +392.179 30.044 l +385.815 30.044 l +385.551 30.057 385.329 30.302 385.377 30.504 c +385.377 30.504 l +f +0.33 0.53 1.00 rg +[] 0 d +399.572 23.610 m +396.279 23.610 l +396.320 23.648 396.411 23.730 396.459 23.812 c +396.591 24.051 396.723 24.214 396.772 24.378 c +397.439 24.378 l +398.599 24.378 399.266 24.819 399.398 25.669 c +399.530 26.437 l +399.662 27.243 399.266 27.646 398.238 27.646 c +387.288 27.646 l +386.399 27.646 385.864 27.205 385.683 26.355 c +385.551 25.587 l +385.419 24.781 385.815 24.378 386.843 24.378 c +387.510 24.378 l +387.552 24.139 387.601 23.975 387.642 23.812 c +387.684 23.730 387.733 23.648 387.774 23.610 c +383.995 23.610 l +383.863 22.842 l +383.821 22.603 384.043 22.401 384.266 22.401 c +399.530 22.401 l +399.843 22.401 400.156 22.603 400.197 22.924 c +400.329 23.245 399.975 23.610 399.572 23.610 c +399.572 23.610 l +387.510 25.908 m +387.552 26.191 l +387.594 26.431 387.774 26.512 388.038 26.512 c +397.119 26.512 l +397.432 26.512 397.564 26.393 397.522 26.191 c +397.481 25.908 l +397.439 25.587 397.258 25.423 396.946 25.423 c +387.865 25.423 l +387.601 25.423 387.469 25.581 387.510 25.908 c +387.510 25.908 l +394.229 23.812 m +394.187 23.730 394.097 23.648 394.048 23.610 c +389.998 23.610 l +389.956 23.648 389.907 23.730 389.866 23.812 c +389.824 24.051 389.775 24.214 389.734 24.378 c +394.542 24.378 l +394.410 24.089 394.319 23.931 394.229 23.812 c +394.229 23.812 l +f +0.33 0.53 1.00 rg +[] 0 d +398.370 21.589 m +394.451 21.589 l +393.430 21.589 392.846 21.148 392.714 20.299 c +392.450 18.725 l +392.228 17.875 392.631 17.516 393.743 17.516 c +397.522 17.516 l +398.634 17.554 399.169 17.919 399.350 18.806 c +399.614 20.261 l +399.704 21.148 399.308 21.589 398.370 21.589 c +398.370 21.589 l +397.439 19.820 m +397.349 19.253 l +397.307 18.888 397.085 18.687 396.723 18.687 c +394.986 18.687 l +394.500 18.687 394.278 18.850 394.410 19.172 c +394.500 19.738 l +394.542 20.103 394.813 20.305 395.209 20.305 c +397.036 20.305 l +397.349 20.299 397.522 20.141 397.439 19.820 c +397.439 19.820 l +f +0.33 0.53 1.00 rg +[] 0 d +375.789 28.219 m +375.282 29.421 374.469 30.523 373.385 31.398 c +371.724 32.751 369.584 33.494 367.347 33.494 c +365.409 33.494 363.568 32.947 362.011 31.914 c +361.261 31.417 360.608 30.825 360.066 30.158 c +359.725 30.202 359.385 30.221 359.037 30.221 c +357.106 30.221 355.292 29.541 353.938 28.300 c +352.576 27.066 351.818 25.423 351.818 23.679 c +351.818 22.055 352.479 20.500 353.681 19.291 c +354.639 18.334 355.869 17.667 357.224 17.346 c +357.815 15.753 359.482 14.601 361.434 14.601 c +363.880 14.601 365.874 16.408 365.874 18.624 c +365.874 18.750 365.867 18.888 365.853 19.014 c +372.086 21.979 l +370.724 24.120 l +364.763 21.281 l +363.950 22.118 362.755 22.653 361.428 22.653 c +359.496 22.653 357.856 21.539 357.238 19.984 c +355.668 20.607 354.570 22.024 354.570 23.679 c +354.570 25.902 356.564 27.715 359.024 27.715 c +359.892 27.715 360.698 27.494 361.386 27.104 c +362.213 29.364 364.561 30.989 367.326 30.989 c +370.543 30.989 373.197 28.791 373.545 25.958 c +373.656 25.971 373.767 25.971 373.885 25.971 c +375.817 25.971 377.373 24.554 377.373 22.810 c +377.373 21.161 375.970 19.801 374.184 19.663 c +372.183 19.663 l +372.093 19.682 372.002 19.688 371.905 19.688 c +371.141 19.688 370.509 19.121 370.509 18.422 c +370.509 17.761 371.071 17.220 371.787 17.163 c +371.787 17.151 l +374.163 17.151 l +374.281 17.151 l +374.399 17.157 l +375.956 17.277 377.394 17.919 378.457 18.964 c +379.527 20.015 380.118 21.381 380.118 22.810 c +380.166 25.354 378.318 27.501 375.789 28.219 c +375.789 28.219 l +361.448 20.191 m +362.393 20.191 363.165 19.499 363.165 18.636 c +363.165 17.780 362.400 17.081 361.448 17.081 c +360.503 17.081 359.732 17.774 359.732 18.636 c +359.732 19.493 360.503 20.191 361.448 20.191 c +361.448 20.191 l +f +Q +Q +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +38.88 578.88 43.20 -93.60 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 490.21 Td +(4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 493.09 Td +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 492.480 m +38.880 492.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 497.41 Td +(3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 500.29 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 499.680 m +38.880 499.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 562.21 Td +(2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 565.09 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 564.480 m +38.880 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 569.41 Td +(1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 572.29 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 571.680 m +38.880 571.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +65.30 489.49 Td +(GND) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 493.09 Td +(A1B12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 492.480 m +82.080 492.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 532.69 Td +(DN1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 536.29 Td +(A7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 535.680 m +82.080 535.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +65.30 568.69 Td +(GND) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 572.29 Td +(B1A12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 571.680 m +82.080 571.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.12 561.49 Td +(VBUS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 565.09 Td +(B4A9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 564.480 m +82.080 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 554.29 Td +(CC2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 557.89 Td +(B5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 557.280 m +82.080 557.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.82 503.89 Td +(SBU2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 507.49 Td +(B8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 506.880 m +82.080 506.880 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +86.400 509.760 m +92.160 504.000 l +86.400 504.000 m +92.160 509.760 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.12 496.69 Td +(VBUS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 500.29 Td +(A4B9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 499.680 m +82.080 499.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 511.09 Td +(CC1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 514.69 Td +(A5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 514.080 m +82.080 514.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.82 547.09 Td +(SBU1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 550.69 Td +(A8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 550.080 m +82.080 550.080 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +86.400 552.960 m +92.160 547.200 l +86.400 547.200 m +92.160 552.960 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 518.29 Td +(DN2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 521.89 Td +(B7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 521.280 m +82.080 521.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +67.06 525.49 Td +(DP1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 529.09 Td +(A6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 528.480 m +82.080 528.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +67.06 539.89 Td +(DP2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 543.49 Td +(B6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 542.880 m +82.080 542.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +[] 0 d +79.56 488.88 m 79.56 489.48 79.08 489.96 78.48 489.96 c +77.88 489.96 77.40 489.48 77.40 488.88 c +77.40 488.28 77.88 487.80 78.48 487.80 c +79.08 487.80 79.56 488.28 79.56 488.88 c +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +38.88 581.64 Td +(USB) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +24.480 488.880 m +24.480 481.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +17.280 481.680 m +31.680 481.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +23.760 475.200 m +25.200 475.200 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +21.600 477.360 m +27.360 477.360 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +19.440 479.520 m +29.520 479.520 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 492.480 m +139.680 492.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 485.280 m +139.680 499.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 491.760 m +146.160 493.200 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 489.600 m +144.000 495.360 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 487.440 m +141.840 497.520 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 571.680 m +139.680 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 564.480 m +139.680 578.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 570.960 m +146.160 572.400 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 568.800 m +144.000 574.560 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 566.640 m +141.840 576.720 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 557.280 m +139.680 557.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 550.080 m +139.680 564.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 556.560 m +146.160 558.000 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 554.400 m +144.000 560.160 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 552.240 m +141.840 562.320 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 514.080 m +139.680 514.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 506.880 m +139.680 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 513.360 m +146.160 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 511.200 m +144.000 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 509.040 m +141.840 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 514.080 m +103.680 514.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 514.080 m +103.680 514.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 557.280 m +103.680 557.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 557.280 m +103.680 557.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 571.680 m +132.480 571.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 571.680 m +132.480 571.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 492.480 m +132.480 492.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 492.480 m +132.480 492.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +103.680 499.680 m +107.280 499.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +110.880 503.280 m +110.880 496.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +110.880 499.680 m +107.280 499.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +113.03 497.35 Td +(VBUS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 499.680 m +103.680 499.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 499.680 m +103.680 499.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +24.480 571.680 m +31.680 571.680 l +S +31.680 564.480 m +24.480 564.480 l +S +31.680 499.680 m +24.480 499.680 l +S +31.680 492.480 m +24.480 492.480 l +S +24.480 564.480 m +24.480 571.680 l +S +24.480 499.680 m +24.480 564.480 l +S +24.480 492.480 m +24.480 499.680 l +S +24.480 488.880 m +24.480 492.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +24.480 571.680 m +31.680 571.680 l +S +31.680 564.480 m +24.480 564.480 l +S +31.680 499.680 m +24.480 499.680 l +S +31.680 492.480 m +24.480 492.480 l +S +24.480 564.480 m +24.480 571.680 l +S +24.480 499.680 m +24.480 564.480 l +S +24.480 492.480 m +24.480 499.680 l +S +24.480 488.880 m +24.480 492.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 536.95 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +96.480 521.280 m +96.480 535.680 l +S +89.280 535.680 m +96.480 535.680 l +S +89.280 521.280 m +96.480 521.280 l +S +96.480 535.680 m +146.880 535.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 536.95 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +96.480 521.280 m +96.480 535.680 l +S +89.280 535.680 m +96.480 535.680 l +S +89.280 521.280 m +96.480 521.280 l +S +96.480 535.680 m +146.880 535.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 529.75 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +103.680 542.880 m +103.680 528.480 l +S +89.280 528.480 m +103.680 528.480 l +S +89.280 542.880 m +103.680 542.880 l +S +103.680 528.480 m +146.880 528.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 529.75 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +103.680 542.880 m +103.680 528.480 l +S +89.280 528.480 m +103.680 528.480 l +S +89.280 542.880 m +103.680 542.880 l +S +103.680 528.480 m +146.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 532.080 m +254.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 560.880 m +254.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +260.640 545.040 m +249.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.880 553.680 m +254.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +249.120 547.920 m +260.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.880 545.040 m +254.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +262.08 547.75 Td +(C0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +262.08 540.55 Td +(2.2uF) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 532.080 m +398.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 560.880 m +398.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +404.640 545.040 m +393.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 553.680 m +398.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.120 547.920 m +404.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 545.040 m +398.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 547.75 Td +(C1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 540.55 Td +(2.2uF) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 560.880 m +254.880 564.480 l +S +290.880 564.480 m +254.880 564.480 l +S +240.480 564.480 m +254.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 560.880 m +254.880 564.480 l +S +290.880 564.480 m +254.880 564.480 l +S +240.480 564.480 m +254.880 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +326.880 528.480 m +326.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +319.680 521.280 m +334.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +326.160 514.800 m +327.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +324.000 516.960 m +329.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +321.840 519.120 m +331.920 519.120 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 528.480 m +254.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +247.680 521.280 m +262.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.160 514.800 m +255.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +252.000 516.960 m +257.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +249.840 519.120 m +259.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 532.080 m +254.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 532.080 m +254.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 528.480 m +398.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +391.680 521.280 m +406.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.160 514.800 m +399.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +396.000 516.960 m +401.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.840 519.120 m +403.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 532.080 m +398.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 532.080 m +398.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 532.080 m +434.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 560.880 m +434.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +440.640 545.040 m +429.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.880 553.680 m +434.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +429.120 547.920 m +440.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.880 545.040 m +434.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 547.75 Td +(C2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 540.55 Td +(0.1uF) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +470.880 532.080 m +470.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +470.880 560.880 m +470.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +476.640 545.040 m +465.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +470.880 553.680 m +470.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +465.120 547.920 m +476.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +470.880 545.040 m +470.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +478.08 547.75 Td +(C3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +478.08 540.55 Td +(0.1uF) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +506.88 567.36 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +528.480 564.480 m +521.280 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +499.680 564.480 m +506.880 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +506.88 570.09 Td +(R0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +506.88 554.97 Td +(1k) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 532.080 m +542.880 542.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 560.880 m +542.880 550.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +537.840 542.880 m +547.920 542.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +1.00 0.00 0.00 rg +[] 0 d +538.560 550.080 m +542.880 542.880 l +547.920 550.080 l +538.560 550.080 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +1.00 0.00 0.00 rg +[] 0 d +558.000 540.720 m +556.560 543.600 l +555.120 542.160 l +558.000 540.720 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +1.00 0.00 0.00 rg +[] 0 d +555.120 537.840 m +553.680 540.720 l +552.240 539.280 l +555.120 537.840 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +552.960 545.760 m +555.840 542.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +550.080 542.880 m +552.960 540.000 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +546.48 554.95 Td +(PWR) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 528.480 m +434.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +427.680 521.280 m +442.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.160 514.800 m +435.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +432.000 516.960 m +437.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +429.840 519.120 m +439.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 532.080 m +434.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 532.080 m +434.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +470.880 528.480 m +470.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +463.680 521.280 m +478.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +470.160 514.800 m +471.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +468.000 516.960 m +473.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +465.840 519.120 m +475.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +470.880 532.080 m +470.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +470.880 532.080 m +470.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 528.480 m +542.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +535.680 521.280 m +550.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +542.160 514.800 m +543.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +540.000 516.960 m +545.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +537.840 519.120 m +547.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 532.080 m +542.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 532.080 m +542.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 564.480 m +254.880 568.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +251.280 571.680 m +258.480 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.880 571.680 m +254.880 568.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +249.14 572.95 Td +(+5V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 564.480 m +398.880 568.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +395.280 571.680 m +402.480 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 571.680 m +398.880 568.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +390.49 572.95 Td +(+3.3V) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 436.15 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 434.880 m +258.480 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 436.15 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 434.880 m +258.480 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 420.480 m +434.880 420.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 420.480 m +434.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 414.55 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 413.280 m +434.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 414.55 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 413.280 m +434.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 407.35 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 406.080 m +434.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 407.35 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 406.080 m +434.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 400.15 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 398.880 m +434.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 400.15 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 398.880 m +434.880 398.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 420.480 m +442.080 420.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +442.080 413.280 m +442.080 427.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +448.560 419.760 m +448.560 421.200 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +446.400 417.600 m +446.400 423.360 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +444.240 415.440 m +444.240 425.520 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 391.680 m +438.480 391.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +442.080 395.280 m +442.080 388.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +442.080 391.680 m +438.480 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +444.49 389.35 Td +(+3.3V) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +432.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 290.880 m +434.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 262.080 m +434.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 277.71 Td +(R2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 270.51 Td +(1k) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +486.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +488.880 290.880 m +488.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +488.880 262.080 m +488.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +496.08 277.71 Td +(R3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +496.08 270.51 Td +(1k) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 262.080 m +218.880 254.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 233.280 m +218.880 240.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +213.120 249.120 m +224.640 249.120 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.880 240.480 m +218.880 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +224.640 246.240 m +213.120 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.880 249.120 m +218.880 254.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 248.95 Td +(C9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 241.75 Td +(1uF) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +216.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 290.880 m +218.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 262.080 m +218.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 277.71 Td +(R9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 270.51 Td +(10k) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 233.280 m +218.880 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +211.680 226.080 m +226.080 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.160 219.600 m +219.600 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +216.000 221.760 m +221.760 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +213.840 223.920 m +223.920 223.920 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 312.480 m +218.880 316.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +215.280 319.680 m +222.480 319.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.880 319.680 m +218.880 316.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +210.49 320.95 Td +(+3.3V) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 421.75 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 420.480 m +629.280 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 421.75 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 420.480 m +629.280 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 414.55 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 413.280 m +629.280 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 414.55 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 413.280 m +629.280 413.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 427.680 m +578.880 427.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 427.680 m +578.880 427.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +578.880 427.680 m +571.680 427.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +571.680 434.880 m +571.680 420.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +565.200 428.400 m +565.200 426.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +567.360 430.560 m +567.360 424.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +569.520 432.720 m +569.520 422.640 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 434.880 m +578.880 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 434.880 m +578.880 434.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +578.880 434.880 m +578.880 438.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +575.280 442.080 m +582.480 442.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +578.880 442.080 m +578.880 438.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +573.14 443.35 Td +(+5V) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 434.880 m +722.880 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 434.880 m +722.880 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 428.95 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 427.680 m +722.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 428.95 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 427.680 m +722.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 421.75 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 420.480 m +722.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 421.75 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 420.480 m +722.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 414.55 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 413.280 m +722.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 414.55 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 413.280 m +722.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 407.35 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 406.080 m +722.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 407.35 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 406.080 m +722.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 400.15 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 398.880 m +722.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 400.15 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +672.480 398.880 m +722.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 407.35 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 406.080 m +578.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 407.35 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 406.080 m +578.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 400.15 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 398.880 m +578.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 400.15 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 398.880 m +578.880 398.880 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +636.48 442.08 28.80 -50.40 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +639.14 431.89 Td +(1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +632.59 435.49 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 434.880 m +636.480 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +655.55 395.89 Td +(12) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +665.64 399.49 Td +(12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +672.480 398.880 m +665.280 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +639.14 424.69 Td +(3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +632.59 428.29 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 427.680 m +636.480 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +655.55 403.09 Td +(10) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +665.64 406.69 Td +(10) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +672.480 406.080 m +665.280 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +639.14 417.49 Td +(5) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +632.59 421.09 Td +(5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 420.480 m +636.480 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +659.08 410.29 Td +(8) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +665.64 413.89 Td +(8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +672.480 413.280 m +665.280 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +639.14 410.29 Td +(7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +632.59 413.89 Td +(7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 413.280 m +636.480 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +659.08 417.49 Td +(6) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +665.64 421.09 Td +(6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +672.480 420.480 m +665.280 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +639.14 403.09 Td +(9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +632.59 406.69 Td +(9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 406.080 m +636.480 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +659.08 424.69 Td +(4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +665.64 428.29 Td +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +672.480 427.680 m +665.280 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +639.14 395.89 Td +(11) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.06 399.49 Td +(11) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 398.880 m +636.480 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +659.08 431.89 Td +(2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +665.64 435.49 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +672.480 434.880 m +665.280 434.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +[] 0 d +641.16 438.48 m 641.16 439.08 640.68 439.56 640.08 439.56 c +639.48 439.56 639.00 439.08 639.00 438.48 c +639.00 437.88 639.48 437.40 640.08 437.40 c +640.68 437.40 641.16 437.88 641.16 438.48 c +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +636.48 444.86 Td +(HDR) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 391.680 m +434.880 391.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 391.680 m +434.880 391.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +722.880 434.880 m +722.880 438.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +719.280 442.080 m +726.480 442.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +722.880 442.080 m +722.880 438.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +714.49 443.35 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +488.880 312.480 m +488.880 316.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +485.280 319.680 m +492.480 319.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +488.880 319.680 m +488.880 316.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +480.49 320.95 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 312.480 m +434.880 316.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +431.280 319.680 m +438.480 319.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.880 319.680 m +434.880 316.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +426.49 320.95 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 312.480 m +434.880 290.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 312.480 m +434.880 290.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +488.880 290.880 m +488.880 312.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +488.880 290.880 m +488.880 312.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 290.880 m +218.880 312.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 290.880 m +218.880 312.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +240.48 263.35 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 262.080 m +269.280 262.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +240.48 263.35 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 262.080 m +269.280 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 233.280 m +218.880 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 233.280 m +218.880 233.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +438.48 220.15 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 218.880 m +470.880 218.880 l +S +434.880 233.280 m +434.880 218.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +438.48 220.15 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 218.880 m +470.880 218.880 l +S +434.880 233.280 m +434.880 218.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +492.48 220.15 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +524.880 218.880 m +488.880 218.880 l +S +488.880 218.880 m +488.880 233.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +492.48 220.15 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +524.880 218.880 m +488.880 218.880 l +S +488.880 218.880 m +488.880 233.280 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +110.88 560.16 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 557.280 m +125.280 557.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +103.680 557.280 m +110.880 557.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +110.88 547.75 Td +(R10) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +125.28 547.75 Td +(5.1k) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 557.280 m +132.480 557.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 557.280 m +132.480 557.280 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +110.88 516.96 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 514.080 m +125.280 514.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +103.680 514.080 m +110.880 514.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +110.88 518.95 Td +(R11) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +125.28 518.95 Td +(5.1k) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 514.080 m +132.480 514.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 514.080 m +132.480 514.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 385.75 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 384.480 m +434.880 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 385.75 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 384.480 m +434.880 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 421.75 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +258.480 420.480 m +218.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 421.75 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +258.480 420.480 m +218.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 414.55 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +258.480 413.280 m +218.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 414.55 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +258.480 413.280 m +218.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 407.35 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 406.080 m +258.480 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 407.35 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 406.080 m +258.480 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 400.15 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 398.880 m +258.480 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 400.15 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 398.880 m +258.480 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 392.95 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 391.680 m +258.480 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 392.95 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 391.680 m +258.480 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 385.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 384.480 m +258.480 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 385.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 384.480 m +258.480 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 428.95 Td +(OSC_IN) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 427.680 m +434.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 428.95 Td +(OSC_IN) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 427.680 m +434.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 436.15 Td +(OSC_OUT) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 434.880 m +434.880 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 436.15 Td +(OSC_OUT) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 434.880 m +434.880 434.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +301.680 233.280 m +301.680 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +294.480 226.080 m +308.880 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +300.960 219.600 m +302.400 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +298.800 221.760 m +304.560 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +296.640 223.920 m +306.720 223.920 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +352.080 233.280 m +352.080 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +344.880 226.080 m +359.280 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +351.360 219.600 m +352.800 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +349.200 221.760 m +354.960 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +347.040 223.920 m +357.120 223.920 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +301.680 262.080 m +301.680 254.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +301.680 233.280 m +301.680 240.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +295.920 249.120 m +307.440 249.120 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +301.680 240.480 m +301.680 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +307.440 246.240 m +295.920 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +301.680 249.120 m +301.680 254.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +308.88 245.35 Td +(C7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +308.88 238.15 Td +(20pF) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +352.080 233.280 m +352.080 240.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +352.080 262.080 m +352.080 254.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +357.840 246.240 m +346.320 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +352.080 254.880 m +352.080 249.120 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +346.320 249.120 m +357.840 249.120 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +352.080 246.240 m +352.080 240.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +337.68 245.35 Td +(C8) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +337.68 238.15 Td +(20pF) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +301.680 233.280 m +301.680 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +301.680 233.280 m +301.680 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +352.080 233.280 m +352.080 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +352.080 233.280 m +352.080 233.280 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +316.08 280.08 21.60 -21.60 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +339.12 270.55 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +344.880 269.280 m +337.680 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +311.11 270.55 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +308.880 269.280 m +316.080 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +0.00 1.00 -1.00 0.00 322.01 253.51 Tm +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +323.280 251.280 m +323.280 258.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +0.00 1.00 -1.00 0.00 329.21 253.51 Tm +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +330.480 251.280 m +330.480 258.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +329.040 274.320 m +329.040 264.240 l +324.720 264.240 l +324.720 274.320 l +329.040 274.320 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +323.280 264.240 m +323.280 274.320 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +330.480 264.240 m +330.480 274.320 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +324.720 264.240 m +324.720 274.320 l +329.040 274.320 l +329.040 264.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +330.480 266.400 m +330.480 272.160 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +329.040 264.240 m +324.720 264.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +323.280 266.400 m +323.280 272.160 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +316.080 269.280 m +323.280 269.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +330.480 269.280 m +337.680 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +316.08 288.55 Td +(Y8M) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +316.08 281.35 Td +(8MHz) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +326.880 233.280 m +326.880 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +319.680 226.080 m +334.080 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +326.160 219.600 m +327.600 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +324.000 221.760 m +329.760 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +321.840 223.920 m +331.920 223.920 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 300.41 294.48 Tm +(OSC_IN) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +301.680 269.280 m +308.880 269.280 l +S +301.680 262.080 m +301.680 269.280 l +S +301.680 269.280 m +301.680 326.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 300.41 294.48 Tm +(OSC_IN) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +301.680 269.280 m +308.880 269.280 l +S +301.680 262.080 m +301.680 269.280 l +S +301.680 269.280 m +301.680 326.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 350.81 294.48 Tm +(OSC_OUT) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +344.880 269.280 m +352.080 269.280 l +S +352.080 262.080 m +352.080 269.280 l +S +352.080 269.280 m +352.080 326.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 350.81 294.48 Tm +(OSC_OUT) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +344.880 269.280 m +352.080 269.280 l +S +352.080 262.080 m +352.080 269.280 l +S +352.080 269.280 m +352.080 326.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +470.880 564.480 m +499.680 564.480 l +S +398.880 560.880 m +398.880 564.480 l +S +434.880 560.880 m +434.880 564.480 l +S +470.880 560.880 m +470.880 564.480 l +S +362.880 564.480 m +398.880 564.480 l +S +398.880 564.480 m +434.880 564.480 l +S +434.880 564.480 m +470.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +470.880 564.480 m +499.680 564.480 l +S +398.880 560.880 m +398.880 564.480 l +S +434.880 560.880 m +434.880 564.480 l +S +470.880 560.880 m +470.880 564.480 l +S +362.880 564.480 m +398.880 564.480 l +S +398.880 564.480 m +434.880 564.480 l +S +434.880 564.480 m +470.880 564.480 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +272.88 442.08 108.00 -79.20 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +354.56 424.69 Td +(OSC_IN) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 428.95 Td +(19) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 427.680 m +380.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +347.51 431.89 Td +(OSC_OUT) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 436.15 Td +(20) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 434.880 m +380.880 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 431.89 Td +(RST#) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 436.15 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 434.880 m +272.880 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 424.69 Td +(PA5) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 428.95 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 427.680 m +272.880 427.680 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +255.600 430.560 m +261.360 424.800 l +255.600 424.800 m +261.360 430.560 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 417.49 Td +(PB10/UART3_TX) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 421.75 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 420.480 m +272.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 410.29 Td +(PB11/UART3_RX) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 414.55 Td +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 413.280 m +272.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 403.09 Td +(PB12/SPI2_NSS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 407.35 Td +(5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 406.080 m +272.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 395.89 Td +(PB13/SPI2_SCK) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 400.15 Td +(6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 398.880 m +272.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 388.69 Td +(PB14/SPI2_MISO) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 392.95 Td +(7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 391.680 m +272.880 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 381.49 Td +(PB15/SPI2_MOSI) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 385.75 Td +(8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 384.480 m +272.880 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 374.29 Td +(PC6) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +265.75 378.55 Td +(9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 377.280 m +272.880 377.280 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +255.600 380.160 m +261.360 374.400 l +255.600 374.400 m +261.360 380.160 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +275.54 367.09 Td +(PC7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +262.22 371.35 Td +(10) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +258.480 370.080 m +272.880 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +365.86 367.09 Td +(PC8) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 371.35 Td +(11) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 370.080 m +380.880 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +365.86 374.29 Td +(PC9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 378.55 Td +(12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 377.280 m +380.880 377.280 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +392.400 380.160 m +398.160 374.400 l +392.400 374.400 m +398.160 380.160 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +339.38 381.49 Td +(PA13/SWDIO) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 385.75 Td +(13) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 384.480 m +380.880 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +364.80 388.69 Td +(VDD) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 392.95 Td +(14) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 391.680 m +380.880 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +338.32 395.89 Td +(PA14/SWCLK) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 400.15 Td +(15) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 398.880 m +380.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +337.97 403.09 Td +(PB6/USB2DM) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 407.35 Td +(16) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 406.080 m +380.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +339.02 410.29 Td +(PB7/USB2DP) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 414.55 Td +(17) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 413.280 m +380.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +365.50 417.49 Td +(VSS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +384.48 421.75 Td +(18) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +395.280 420.480 m +380.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +272.88 444.84 Td +(U1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +332.20 443.35 Td +(CH32V305FBP6) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +330.480 251.280 m +326.880 251.280 l +S +326.880 233.280 m +326.880 251.280 l +S +323.280 251.280 m +326.880 251.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +330.480 251.280 m +326.880 251.280 l +S +326.880 233.280 m +326.880 251.280 l +S +323.280 251.280 m +326.880 251.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 564.480 m +542.880 560.880 l +S +528.480 564.480 m +542.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 564.480 m +542.880 560.880 l +S +528.480 564.480 m +542.880 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 371.35 Td +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 370.080 m +258.480 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +218.88 371.35 Td +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 370.080 m +258.480 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 371.35 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 370.080 m +434.880 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 371.35 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +395.280 370.080 m +434.880 370.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +240.480 564.480 m +233.280 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +197.280 564.480 m +204.480 564.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +204.480 564.480 m +233.280 564.480 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +208.08 568.08 22.32 -7.20 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +208.08 569.35 Td +(F0) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +182.880 564.480 m +197.280 564.480 l +S +89.280 564.480 m +182.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +182.880 564.480 m +197.280 564.480 l +S +89.280 564.480 m +182.880 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +182.880 564.480 m +182.880 568.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +179.280 571.680 m +186.480 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +182.880 571.680 m +182.880 568.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +174.23 572.95 Td +(VBUS) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +643.68 365.76 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +665.280 362.880 m +658.080 362.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 362.880 m +643.680 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +632.88 364.15 Td +(R4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +661.68 364.15 Td +(100) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +643.68 358.56 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +665.280 355.680 m +658.080 355.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 355.680 m +643.680 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +632.88 356.95 Td +(R5) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +661.68 356.95 Td +(100) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +643.68 351.36 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +665.280 348.480 m +658.080 348.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 348.480 m +643.680 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +632.88 349.75 Td +(R6) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +661.68 349.75 Td +(100) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +643.68 344.16 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +665.280 341.280 m +658.080 341.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 341.280 m +643.680 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +632.88 342.55 Td +(R7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +661.68 342.55 Td +(100) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 364.15 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 362.880 m +578.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 364.15 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 362.880 m +578.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 356.95 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 355.680 m +636.480 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 356.95 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 355.680 m +636.480 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 349.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 348.480 m +578.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 349.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 348.480 m +578.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 342.55 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 341.280 m +636.480 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +578.88 342.55 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +578.880 341.280 m +636.480 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 364.15 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +665.280 362.880 m +722.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 364.15 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +665.280 362.880 m +722.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 356.95 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +722.880 355.680 m +665.280 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 356.95 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +722.880 355.680 m +665.280 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 349.75 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +665.280 348.480 m +722.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 349.75 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +665.280 348.480 m +722.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 342.55 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +722.880 341.280 m +665.280 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +679.68 342.55 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +722.880 341.280 m +665.280 341.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 233.280 m +398.880 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +391.680 226.080 m +406.080 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.160 219.600 m +399.600 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +396.000 221.760 m +401.760 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.840 223.920 m +403.920 223.920 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +396.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 290.880 m +398.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 262.080 m +398.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 277.75 Td +(R1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 270.55 Td +(1k) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 397.61 294.48 Tm +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 290.880 m +398.880 326.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 397.61 294.48 Tm +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 290.880 m +398.880 326.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 233.280 m +398.880 244.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 262.080 m +398.880 251.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.840 244.080 m +403.920 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +394.560 251.280 m +398.880 244.080 l +403.920 251.280 l +394.560 251.280 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +414.000 241.920 m +412.560 244.800 l +411.120 243.360 l +414.000 241.920 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +411.120 239.040 m +409.680 241.920 l +408.240 240.480 l +411.120 239.040 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +408.960 246.960 m +411.840 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +406.080 244.080 m +408.960 241.200 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 252.55 Td +(SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 233.280 m +398.880 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 233.280 m +398.880 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 262.080 m +398.880 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 262.080 m +398.880 262.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 233.280 m +434.880 244.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 262.080 m +434.880 251.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +429.840 244.080 m +439.920 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +430.560 251.280 m +434.880 244.080 l +439.920 251.280 l +430.560 251.280 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +450.000 241.920 m +448.560 244.800 l +447.120 243.360 l +450.000 241.920 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +447.120 239.040 m +445.680 241.920 l +444.240 240.480 l +447.120 239.040 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +444.960 246.960 m +447.840 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +442.080 244.080 m +444.960 241.200 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 252.55 Td +(UTX) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 262.080 m +434.880 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 262.080 m +434.880 262.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +488.880 233.280 m +488.880 244.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +488.880 262.080 m +488.880 251.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +483.840 244.080 m +493.920 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +484.560 251.280 m +488.880 244.080 l +493.920 251.280 l +484.560 251.280 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +504.000 241.920 m +502.560 244.800 l +501.120 243.360 l +504.000 241.920 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +501.120 239.040 m +499.680 241.920 l +498.240 240.480 l +501.120 239.040 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +498.960 246.960 m +501.840 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +496.080 244.080 m +498.960 241.200 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +496.08 252.55 Td +(URX) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +488.880 262.080 m +488.880 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +488.880 262.080 m +488.880 262.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +0.00 1.00 -1.00 0.00 327.77 543.66 Tm +(GND) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +0.00 1.00 -1.00 0.00 324.89 531.49 Tm +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +326.880 528.480 m +326.880 542.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +328.67 562.21 Td +(VOUT) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +354.96 565.09 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +362.880 564.480 m +348.480 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +307.44 562.21 Td +(VIN) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +295.27 565.09 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 564.480 m +305.280 564.480 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +305.28 571.68 43.20 -28.80 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +305.28 572.95 Td +(V0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +326.88 572.95 Td +(HT7233) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +326.880 528.480 m +326.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +326.880 528.480 m +326.880 528.480 l +S +0.80 0.00 0.00 rg +26.28 564.48 m 26.28 565.47 25.47 566.28 24.48 566.28 c +23.49 566.28 22.68 565.47 22.68 564.48 c +22.68 563.49 23.49 562.68 24.48 562.68 c +25.47 562.68 26.28 563.49 26.28 564.48 c +f +0.80 0.00 0.00 rg +26.28 499.68 m 26.28 500.67 25.47 501.48 24.48 501.48 c +23.49 501.48 22.68 500.67 22.68 499.68 c +22.68 498.69 23.49 497.88 24.48 497.88 c +25.47 497.88 26.28 498.69 26.28 499.68 c +f +0.80 0.00 0.00 rg +26.28 492.48 m 26.28 493.47 25.47 494.28 24.48 494.28 c +23.49 494.28 22.68 493.47 22.68 492.48 c +22.68 491.49 23.49 490.68 24.48 490.68 c +25.47 490.68 26.28 491.49 26.28 492.48 c +f +0.80 0.00 0.00 rg +98.28 535.68 m 98.28 536.67 97.47 537.48 96.48 537.48 c +95.49 537.48 94.68 536.67 94.68 535.68 c +94.68 534.69 95.49 533.88 96.48 533.88 c +97.47 533.88 98.28 534.69 98.28 535.68 c +f +0.80 0.00 0.00 rg +105.48 528.48 m 105.48 529.47 104.67 530.28 103.68 530.28 c +102.69 530.28 101.88 529.47 101.88 528.48 c +101.88 527.49 102.69 526.68 103.68 526.68 c +104.67 526.68 105.48 527.49 105.48 528.48 c +f +0.80 0.00 0.00 rg +256.68 564.48 m 256.68 565.47 255.87 566.28 254.88 566.28 c +253.89 566.28 253.08 565.47 253.08 564.48 c +253.08 563.49 253.89 562.68 254.88 562.68 c +255.87 562.68 256.68 563.49 256.68 564.48 c +f +0.80 0.00 0.00 rg +220.68 262.08 m 220.68 263.07 219.87 263.88 218.88 263.88 c +217.89 263.88 217.08 263.07 217.08 262.08 c +217.08 261.09 217.89 260.28 218.88 260.28 c +219.87 260.28 220.68 261.09 220.68 262.08 c +f +0.80 0.00 0.00 rg +303.48 269.28 m 303.48 270.27 302.67 271.08 301.68 271.08 c +300.69 271.08 299.88 270.27 299.88 269.28 c +299.88 268.29 300.69 267.48 301.68 267.48 c +302.67 267.48 303.48 268.29 303.48 269.28 c +f +0.80 0.00 0.00 rg +353.88 269.28 m 353.88 270.27 353.07 271.08 352.08 271.08 c +351.09 271.08 350.28 270.27 350.28 269.28 c +350.28 268.29 351.09 267.48 352.08 267.48 c +353.07 267.48 353.88 268.29 353.88 269.28 c +f +0.80 0.00 0.00 rg +472.68 564.48 m 472.68 565.47 471.87 566.28 470.88 566.28 c +469.89 566.28 469.08 565.47 469.08 564.48 c +469.08 563.49 469.89 562.68 470.88 562.68 c +471.87 562.68 472.68 563.49 472.68 564.48 c +f +0.80 0.00 0.00 rg +400.68 564.48 m 400.68 565.47 399.87 566.28 398.88 566.28 c +397.89 566.28 397.08 565.47 397.08 564.48 c +397.08 563.49 397.89 562.68 398.88 562.68 c +399.87 562.68 400.68 563.49 400.68 564.48 c +f +0.80 0.00 0.00 rg +436.68 564.48 m 436.68 565.47 435.87 566.28 434.88 566.28 c +433.89 566.28 433.08 565.47 433.08 564.48 c +433.08 563.49 433.89 562.68 434.88 562.68 c +435.87 562.68 436.68 563.49 436.68 564.48 c +f +0.80 0.00 0.00 rg +328.68 251.28 m 328.68 252.27 327.87 253.08 326.88 253.08 c +325.89 253.08 325.08 252.27 325.08 251.28 c +325.08 250.29 325.89 249.48 326.88 249.48 c +327.87 249.48 328.68 250.29 328.68 251.28 c +f +0.80 0.00 0.00 rg +184.68 564.48 m 184.68 565.47 183.87 566.28 182.88 566.28 c +181.89 566.28 181.08 565.47 181.08 564.48 c +181.08 563.49 181.89 562.68 182.88 562.68 c +183.87 562.68 184.68 563.49 184.68 564.48 c +f +Q +endstream +endobj +1 0 obj +<> +endobj +5 0 obj +<< +/Type /FontDescriptor +/FontName /SimSun +/FontBBox [-8 -145 1000 859] +/Flags 32 +/StemV 0 +/ItalicAngle 0 +/Ascent 859 +/Descent -141 +/CapHeight 175 +>> +endobj +6 0 obj +<< +/Type /Font +/BaseFont /SimSun +/FontDescriptor 5 0 R +/W [1 95 500] +/Subtype /CIDFontType2 +/CIDSystemInfo +<< +/Ordering (GB1) +/Registry (Adobe) +/Supplement 2 +>> +>> +endobj +7 0 obj +<< +/Type /Font +/Subtype /Type0 +/BaseFont /SimSun +/Encoding /UniGB-UCS2-H +/DescendantFonts [6 0 R] +>> +endobj +8 0 obj +<< +/Descent -325 +/CapHeight 500 +/StemV 80 +/Type /FontDescriptor +/Flags 32 +/FontBBox [-665 -325 2000 1006] +/FontName /Arial +/ItalicAngle 0 +/Ascent 1006 +>> +endobj +9 0 obj +<> +endobj +10 0 obj +<< +/Type /FontDescriptor +/FontName /SimHei +/FontBBox [-11 -156 996 859] +/Flags 32 +/StemV 0 +/ItalicAngle 0 +/Ascent 859 +/Descent -140 +/CapHeight 687 +>> +endobj +11 0 obj +<< +/Type /Font +/BaseFont /SimHei +/FontDescriptor 10 0 R +/W [1 95 500 738 813 1000] +/Subtype /CIDFontType2 +/CIDSystemInfo +<< +/Ordering (GB1) +/Registry (Adobe) +/Supplement 2 +>> +>> +endobj +12 0 obj +<< +/Type /Font +/Subtype /Type0 +/BaseFont /SimHei +/Encoding /UniGB-UCS2-H +/DescendantFonts [11 0 R] +>> +endobj +2 0 obj +<< +/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << +/F1 7 0 R +/F2 9 0 R +/F3 12 0 R +>> +/XObject << +>> +>> +endobj +120 0 obj +<> endobj +121 0 obj +<> endobj +122 0 obj +<> endobj +123 0 obj +<> endobj +124 0 obj +<> endobj +125 0 obj +<> endobj +126 0 obj +<> endobj +127 0 obj +<> endobj +128 0 obj +<> endobj +129 0 obj +<> endobj +130 0 obj +<> endobj +131 0 obj +<> endobj +132 0 obj +<> endobj +133 0 obj +<> endobj +134 0 obj +<> endobj +135 0 obj +<> endobj +136 0 obj +<> endobj +137 0 obj +<> endobj +138 0 obj +<> endobj +139 0 obj +<> endobj +140 0 obj +<> endobj +141 0 obj +<> endobj +142 0 obj +<> endobj +143 0 obj +<> endobj +144 0 obj +<> endobj +145 0 obj +<> endobj +146 0 obj +<> endobj +147 0 obj +<> endobj +148 0 obj +<> endobj +149 0 obj +<> endobj +150 0 obj +<> endobj +151 0 obj +<> endobj +152 0 obj +<> endobj +153 0 obj +<> endobj +154 0 obj +<> endobj +155 0 obj +<> endobj +156 0 obj +<> endobj +157 0 obj +<> endobj +158 0 obj +<> endobj +159 0 obj +<> endobj +160 0 obj +<> endobj +161 0 obj +<> endobj +162 0 obj +<> endobj +163 0 obj +<> endobj +164 0 obj +<> endobj +165 0 obj +<> endobj +166 0 obj +<> endobj +167 0 obj +<> endobj +168 0 obj +<> endobj +169 0 obj +<> endobj +170 0 obj +<> endobj +171 0 obj +<> endobj +172 0 obj +<> endobj +173 0 obj +<> endobj +174 0 obj +<> endobj +175 0 obj +<> endobj +176 0 obj +<> endobj +177 0 obj +<> endobj +178 0 obj +<> endobj +179 0 obj +<> endobj +180 0 obj +<> endobj +181 0 obj +<> endobj +182 0 obj +<> endobj +183 0 obj +<> endobj +184 0 obj +<> endobj +185 0 obj +<> endobj +186 0 obj +<> endobj +187 0 obj +<> endobj +188 0 obj +<> endobj +189 0 obj +<> endobj +190 0 obj +<> endobj +191 0 obj +<> endobj +192 0 obj +<> endobj +193 0 obj +<> endobj +194 0 obj +<> endobj +195 0 obj +<> endobj +196 0 obj +<> endobj +197 0 obj +<> endobj +198 0 obj +<> endobj +199 0 obj +<> endobj +200 0 obj +<> endobj +201 0 obj +<> endobj +202 0 obj +<> endobj +203 0 obj +<> endobj +204 0 obj +<> endobj +205 0 obj +<> endobj +206 0 obj +<> endobj +207 0 obj +<> endobj +208 0 obj +<> endobj +209 0 obj +<> endobj +210 0 obj +<> endobj +211 0 obj +<> endobj +212 0 obj +<> endobj +213 0 obj +<> endobj +214 0 obj +<> endobj +215 0 obj +<> endobj +216 0 obj +<> endobj +217 0 obj +<> endobj +218 0 obj +<> endobj +219 0 obj +<> endobj +220 0 obj +<> endobj +221 0 obj +<> endobj +222 0 obj +<> endobj +223 0 obj +<> endobj +224 0 obj +<> endobj +225 0 obj +<> endobj +226 0 obj +<> endobj +227 0 obj +<> endobj +228 0 obj +<> endobj +229 0 obj +<> endobj +230 0 obj +<> endobj +231 0 obj +<> endobj +232 0 obj +<> endobj +233 0 obj +<> endobj +234 0 obj +<> endobj +235 0 obj +<> endobj +236 0 obj +<> endobj +237 0 obj +<> endobj +238 0 obj +<> endobj +239 0 obj +<> endobj +240 0 obj +<> endobj +241 0 obj +<> endobj +242 0 obj +<> endobj +243 0 obj +<> endobj +244 0 obj +<> endobj +245 0 obj +<> endobj +246 0 obj +<> endobj +247 0 obj +<> endobj +248 0 obj +<> endobj +249 0 obj +<> endobj +250 0 obj +<> endobj +251 0 obj +<> endobj +252 0 obj +<> endobj +253 0 obj +<> endobj +254 0 obj +<> endobj +255 0 obj +<> endobj +256 0 obj +<> endobj +257 0 obj +<> endobj +258 0 obj +<> endobj +259 0 obj +<> endobj +260 0 obj +<> endobj +261 0 obj +<> endobj +262 0 obj +<> endobj +263 0 obj +<> endobj +264 0 obj +<> endobj +265 0 obj +<> endobj +266 0 obj +<> endobj +267 0 obj +<> endobj + +13 0 obj +<< +/Type /Outlines +/First 14 0 R +/Last 16 0 R +/Count 106 +>> +endobj + +14 0 obj +<< +/Title (Pages) +/Parent 13 0 R +/Next 16 0 R +/First 15 0 R +/Last 15 0 R +/Count 1 +>> +endobj + +16 0 obj +<< +/Title (Net) +/Parent 13 0 R +/Prev 14 0 R +/First 17 0 R +/Last 117 0 R +/Count 103 +>> +endobj + +15 0 obj +<< +/Title (SCH_DAPLink-HS 1-Core) +/Parent 14 0 R +/Dest [3 0 R /XYZ 0 599.76 0] +>> +endobj + +17 0 obj +<< +/Title (+3.3V) +/Parent 16 0 R +/Next 24 0 R +/First 18 0 R +/Last 23 0 R +/Count 6 +>> +endobj + +24 0 obj +<< +/Title (+5V) +/Parent 16 0 R +/Prev 17 0 R +/Next 27 0 R +/First 25 0 R +/Last 26 0 R +/Count 2 +>> +endobj + +27 0 obj +<< +/Title ($1N2511) +/Parent 16 0 R +/Prev 24 0 R +/Next 29 0 R +/First 28 0 R +/Last 28 0 R +/Count 1 +>> +endobj + +29 0 obj +<< +/Title ($1N2512) +/Parent 16 0 R +/Prev 27 0 R +/Next 31 0 R +/First 30 0 R +/Last 30 0 R +/Count 1 +>> +endobj + +31 0 obj +<< +/Title ($1N2528) +/Parent 16 0 R +/Prev 29 0 R +/Next 33 0 R +/First 32 0 R +/Last 32 0 R +/Count 1 +>> +endobj + +33 0 obj +<< +/Title ($1N14595) +/Parent 16 0 R +/Prev 31 0 R +/Next 35 0 R +/First 34 0 R +/Last 34 0 R +/Count 1 +>> +endobj + +35 0 obj +<< +/Title ($1N14645) +/Parent 16 0 R +/Prev 33 0 R +/Next 37 0 R +/First 36 0 R +/Last 36 0 R +/Count 1 +>> +endobj + +37 0 obj +<< +/Title ($1N14672) +/Parent 16 0 R +/Prev 35 0 R +/Next 39 0 R +/First 38 0 R +/Last 38 0 R +/Count 1 +>> +endobj + +39 0 obj +<< +/Title (GND) +/Parent 16 0 R +/Prev 37 0 R +/Next 58 0 R +/First 40 0 R +/Last 57 0 R +/Count 18 +>> +endobj + +58 0 obj +<< +/Title (JTAG_RST) +/Parent 16 0 R +/Prev 39 0 R +/Next 61 0 R +/First 59 0 R +/Last 60 0 R +/Count 2 +>> +endobj + +61 0 obj +<< +/Title (JTAG_TCK) +/Parent 16 0 R +/Prev 58 0 R +/Next 64 0 R +/First 62 0 R +/Last 63 0 R +/Count 2 +>> +endobj + +64 0 obj +<< +/Title (JTAG_TCK_O) +/Parent 16 0 R +/Prev 61 0 R +/Next 67 0 R +/First 65 0 R +/Last 66 0 R +/Count 2 +>> +endobj + +67 0 obj +<< +/Title (JTAG_TDI) +/Parent 16 0 R +/Prev 64 0 R +/Next 70 0 R +/First 68 0 R +/Last 69 0 R +/Count 2 +>> +endobj + +70 0 obj +<< +/Title (JTAG_TDI_O) +/Parent 16 0 R +/Prev 67 0 R +/Next 73 0 R +/First 71 0 R +/Last 72 0 R +/Count 2 +>> +endobj + +73 0 obj +<< +/Title (JTAG_TDO) +/Parent 16 0 R +/Prev 70 0 R +/Next 76 0 R +/First 74 0 R +/Last 75 0 R +/Count 2 +>> +endobj + +76 0 obj +<< +/Title (JTAG_TDO_O) +/Parent 16 0 R +/Prev 73 0 R +/Next 79 0 R +/First 77 0 R +/Last 78 0 R +/Count 2 +>> +endobj + +79 0 obj +<< +/Title (JTAG_TMS) +/Parent 16 0 R +/Prev 76 0 R +/Next 82 0 R +/First 80 0 R +/Last 81 0 R +/Count 2 +>> +endobj + +82 0 obj +<< +/Title (JTAG_TMS_O) +/Parent 16 0 R +/Prev 79 0 R +/Next 85 0 R +/First 83 0 R +/Last 84 0 R +/Count 2 +>> +endobj + +85 0 obj +<< +/Title (LED_SWD) +/Parent 16 0 R +/Prev 82 0 R +/Next 88 0 R +/First 86 0 R +/Last 87 0 R +/Count 2 +>> +endobj + +88 0 obj +<< +/Title (OSC_IN) +/Parent 16 0 R +/Prev 85 0 R +/Next 91 0 R +/First 89 0 R +/Last 90 0 R +/Count 2 +>> +endobj + +91 0 obj +<< +/Title (OSC_OUT) +/Parent 16 0 R +/Prev 88 0 R +/Next 94 0 R +/First 92 0 R +/Last 93 0 R +/Count 2 +>> +endobj + +94 0 obj +<< +/Title (SYS_RST) +/Parent 16 0 R +/Prev 91 0 R +/Next 97 0 R +/First 95 0 R +/Last 96 0 R +/Count 2 +>> +endobj + +97 0 obj +<< +/Title (SYS_SWC) +/Parent 16 0 R +/Prev 94 0 R +/Next 100 0 R +/First 98 0 R +/Last 99 0 R +/Count 2 +>> +endobj + +100 0 obj +<< +/Title (SYS_SWD) +/Parent 16 0 R +/Prev 97 0 R +/Next 103 0 R +/First 101 0 R +/Last 102 0 R +/Count 2 +>> +endobj + +103 0 obj +<< +/Title (UART_RXD) +/Parent 16 0 R +/Prev 100 0 R +/Next 107 0 R +/First 104 0 R +/Last 106 0 R +/Count 3 +>> +endobj + +107 0 obj +<< +/Title (UART_TXD) +/Parent 16 0 R +/Prev 103 0 R +/Next 111 0 R +/First 108 0 R +/Last 110 0 R +/Count 3 +>> +endobj + +111 0 obj +<< +/Title (USB_D-) +/Parent 16 0 R +/Prev 107 0 R +/Next 114 0 R +/First 112 0 R +/Last 113 0 R +/Count 2 +>> +endobj + +114 0 obj +<< +/Title (USB_D+) +/Parent 16 0 R +/Prev 111 0 R +/Next 117 0 R +/First 115 0 R +/Last 116 0 R +/Count 2 +>> +endobj + +117 0 obj +<< +/Title (VBUS) +/Parent 16 0 R +/Prev 114 0 R +/First 118 0 R +/Last 119 0 R +/Count 2 +>> +endobj + +18 0 obj +<< +/Title ($1N2526) +/Parent 17 0 R +/Next 19 0 R +/A 120 0 R +>> +endobj + +19 0 obj +<< +/Title ($1N2561) +/Parent 17 0 R +/Prev 18 0 R +/Next 20 0 R +/A 122 0 R +>> +endobj + +20 0 obj +<< +/Title ($1N2566) +/Parent 17 0 R +/Prev 19 0 R +/Next 21 0 R +/A 124 0 R +>> +endobj + +21 0 obj +<< +/Title ($1N2567) +/Parent 17 0 R +/Prev 20 0 R +/Next 22 0 R +/A 126 0 R +>> +endobj + +22 0 obj +<< +/Title ($1N2572) +/Parent 17 0 R +/Prev 21 0 R +/Next 23 0 R +/A 128 0 R +>> +endobj + +23 0 obj +<< +/Title ($1N4249) +/Parent 17 0 R +/Prev 22 0 R +/A 130 0 R +>> +endobj + +25 0 obj +<< +/Title ($1N2519) +/Parent 24 0 R +/Next 26 0 R +/A 132 0 R +>> +endobj + +26 0 obj +<< +/Title ($1N2571) +/Parent 24 0 R +/Prev 25 0 R +/A 134 0 R +>> +endobj + +28 0 obj +<< +/Title ($1N2511) +/Parent 27 0 R +/A 136 0 R +>> +endobj + +30 0 obj +<< +/Title ($1N2512) +/Parent 29 0 R +/A 138 0 R +>> +endobj + +32 0 obj +<< +/Title ($1N2528) +/Parent 31 0 R +/A 140 0 R +>> +endobj + +34 0 obj +<< +/Title ($1N14595) +/Parent 33 0 R +/A 142 0 R +>> +endobj + +36 0 obj +<< +/Title ($1N14645) +/Parent 35 0 R +/A 144 0 R +>> +endobj + +38 0 obj +<< +/Title ($1N14672) +/Parent 37 0 R +/A 146 0 R +>> +endobj + +40 0 obj +<< +/Title ($1N2513) +/Parent 39 0 R +/Next 41 0 R +/A 148 0 R +>> +endobj + +41 0 obj +<< +/Title ($1N2514) +/Parent 39 0 R +/Prev 40 0 R +/Next 42 0 R +/A 150 0 R +>> +endobj + +42 0 obj +<< +/Title ($1N2516) +/Parent 39 0 R +/Prev 41 0 R +/Next 43 0 R +/A 152 0 R +>> +endobj + +43 0 obj +<< +/Title ($1N2520) +/Parent 39 0 R +/Prev 42 0 R +/Next 44 0 R +/A 154 0 R +>> +endobj + +44 0 obj +<< +/Title ($1N2521) +/Parent 39 0 R +/Prev 43 0 R +/Next 45 0 R +/A 156 0 R +>> +endobj + +45 0 obj +<< +/Title ($1N2522) +/Parent 39 0 R +/Prev 44 0 R +/Next 46 0 R +/A 158 0 R +>> +endobj + +46 0 obj +<< +/Title ($1N2523) +/Parent 39 0 R +/Prev 45 0 R +/Next 47 0 R +/A 160 0 R +>> +endobj + +47 0 obj +<< +/Title ($1N2525) +/Parent 39 0 R +/Prev 46 0 R +/Next 48 0 R +/A 162 0 R +>> +endobj + +48 0 obj +<< +/Title ($1N2542) +/Parent 39 0 R +/Prev 47 0 R +/Next 49 0 R +/A 164 0 R +>> +endobj + +49 0 obj +<< +/Title ($1N2559) +/Parent 39 0 R +/Prev 48 0 R +/Next 50 0 R +/A 166 0 R +>> +endobj + +50 0 obj +<< +/Title ($1N2570) +/Parent 39 0 R +/Prev 49 0 R +/Next 51 0 R +/A 168 0 R +>> +endobj + +51 0 obj +<< +/Title ($1N5710) +/Parent 39 0 R +/Prev 50 0 R +/Next 52 0 R +/A 170 0 R +>> +endobj + +52 0 obj +<< +/Title ($1N5764) +/Parent 39 0 R +/Prev 51 0 R +/Next 53 0 R +/A 172 0 R +>> +endobj + +53 0 obj +<< +/Title ($1N9386) +/Parent 39 0 R +/Prev 52 0 R +/Next 54 0 R +/A 174 0 R +>> +endobj + +54 0 obj +<< +/Title ($1N9387) +/Parent 39 0 R +/Prev 53 0 R +/Next 55 0 R +/A 176 0 R +>> +endobj + +55 0 obj +<< +/Title ($1N12041) +/Parent 39 0 R +/Prev 54 0 R +/Next 56 0 R +/A 178 0 R +>> +endobj + +56 0 obj +<< +/Title ($1N14592) +/Parent 39 0 R +/Prev 55 0 R +/Next 57 0 R +/A 180 0 R +>> +endobj + +57 0 obj +<< +/Title ($1N14906) +/Parent 39 0 R +/Prev 56 0 R +/A 182 0 R +>> +endobj + +59 0 obj +<< +/Title ($1N2573) +/Parent 58 0 R +/Next 60 0 R +/A 184 0 R +>> +endobj + +60 0 obj +<< +/Title ($1N12397) +/Parent 58 0 R +/Prev 59 0 R +/A 186 0 R +>> +endobj + +62 0 obj +<< +/Title ($1N8618) +/Parent 61 0 R +/Next 63 0 R +/A 188 0 R +>> +endobj + +63 0 obj +<< +/Title ($1N13733) +/Parent 61 0 R +/Prev 62 0 R +/A 190 0 R +>> +endobj + +65 0 obj +<< +/Title ($1N2579) +/Parent 64 0 R +/Next 66 0 R +/A 192 0 R +>> +endobj + +66 0 obj +<< +/Title ($1N13747) +/Parent 64 0 R +/Prev 65 0 R +/A 194 0 R +>> +endobj + +68 0 obj +<< +/Title ($1N8646) +/Parent 67 0 R +/Next 69 0 R +/A 196 0 R +>> +endobj + +69 0 obj +<< +/Title ($1N13738) +/Parent 67 0 R +/Prev 68 0 R +/A 198 0 R +>> +endobj + +71 0 obj +<< +/Title ($1N2576) +/Parent 70 0 R +/Next 72 0 R +/A 200 0 R +>> +endobj + +72 0 obj +<< +/Title ($1N13749) +/Parent 70 0 R +/Prev 71 0 R +/A 202 0 R +>> +endobj + +74 0 obj +<< +/Title ($1N8632) +/Parent 73 0 R +/Next 75 0 R +/A 204 0 R +>> +endobj + +75 0 obj +<< +/Title ($1N13742) +/Parent 73 0 R +/Prev 74 0 R +/A 206 0 R +>> +endobj + +77 0 obj +<< +/Title ($1N2577) +/Parent 76 0 R +/Next 78 0 R +/A 208 0 R +>> +endobj + +78 0 obj +<< +/Title ($1N13751) +/Parent 76 0 R +/Prev 77 0 R +/A 210 0 R +>> +endobj + +80 0 obj +<< +/Title ($1N8604) +/Parent 79 0 R +/Next 81 0 R +/A 212 0 R +>> +endobj + +81 0 obj +<< +/Title ($1N13729) +/Parent 79 0 R +/Prev 80 0 R +/A 214 0 R +>> +endobj + +83 0 obj +<< +/Title ($1N2578) +/Parent 82 0 R +/Next 84 0 R +/A 216 0 R +>> +endobj + +84 0 obj +<< +/Title ($1N13745) +/Parent 82 0 R +/Prev 83 0 R +/A 218 0 R +>> +endobj + +86 0 obj +<< +/Title ($1N12278) +/Parent 85 0 R +/Next 87 0 R +/A 220 0 R +>> +endobj + +87 0 obj +<< +/Title ($1N13950) +/Parent 85 0 R +/Prev 86 0 R +/A 222 0 R +>> +endobj + +89 0 obj +<< +/Title ($1N9179) +/Parent 88 0 R +/Next 90 0 R +/A 224 0 R +>> +endobj + +90 0 obj +<< +/Title ($1N9388) +/Parent 88 0 R +/Prev 89 0 R +/A 226 0 R +>> +endobj + +92 0 obj +<< +/Title ($1N9193) +/Parent 91 0 R +/Next 93 0 R +/A 228 0 R +>> +endobj + +93 0 obj +<< +/Title ($1N9389) +/Parent 91 0 R +/Prev 92 0 R +/A 230 0 R +>> +endobj + +95 0 obj +<< +/Title ($1N2541) +/Parent 94 0 R +/Next 96 0 R +/A 232 0 R +>> +endobj + +96 0 obj +<< +/Title ($1N2560) +/Parent 94 0 R +/Prev 95 0 R +/A 234 0 R +>> +endobj + +98 0 obj +<< +/Title ($1N2548) +/Parent 97 0 R +/Next 99 0 R +/A 236 0 R +>> +endobj + +99 0 obj +<< +/Title ($1N2575) +/Parent 97 0 R +/Prev 98 0 R +/A 238 0 R +>> +endobj + +101 0 obj +<< +/Title ($1N2549) +/Parent 100 0 R +/Next 102 0 R +/A 240 0 R +>> +endobj + +102 0 obj +<< +/Title ($1N2574) +/Parent 100 0 R +/Prev 101 0 R +/A 242 0 R +>> +endobj + +104 0 obj +<< +/Title ($1N2569) +/Parent 103 0 R +/Next 105 0 R +/A 244 0 R +>> +endobj + +105 0 obj +<< +/Title ($1N5569) +/Parent 103 0 R +/Prev 104 0 R +/Next 106 0 R +/A 246 0 R +>> +endobj + +106 0 obj +<< +/Title ($1N8558) +/Parent 103 0 R +/Prev 105 0 R +/A 248 0 R +>> +endobj + +108 0 obj +<< +/Title ($1N2568) +/Parent 107 0 R +/Next 109 0 R +/A 250 0 R +>> +endobj + +109 0 obj +<< +/Title ($1N5541) +/Parent 107 0 R +/Prev 108 0 R +/Next 110 0 R +/A 252 0 R +>> +endobj + +110 0 obj +<< +/Title ($1N8557) +/Parent 107 0 R +/Prev 109 0 R +/A 254 0 R +>> +endobj + +112 0 obj +<< +/Title ($1N2517) +/Parent 111 0 R +/Next 113 0 R +/A 256 0 R +>> +endobj + +113 0 obj +<< +/Title ($1N2544) +/Parent 111 0 R +/Prev 112 0 R +/A 258 0 R +>> +endobj + +115 0 obj +<< +/Title ($1N2518) +/Parent 114 0 R +/Next 116 0 R +/A 260 0 R +>> +endobj + +116 0 obj +<< +/Title ($1N2543) +/Parent 114 0 R +/Prev 115 0 R +/A 262 0 R +>> +endobj + +118 0 obj +<< +/Title ($1N2515) +/Parent 117 0 R +/Next 119 0 R +/A 264 0 R +>> +endobj + +119 0 obj +<< +/Title ($1N13572) +/Parent 117 0 R +/Prev 118 0 R +/A 266 0 R +>> +endobj + +268 0 obj +<< +/Producer (jsPDF 0.0.0) +/CreationDate (D:20250511135643+08'00') +>> +endobj +269 0 obj +<< +/Type /Catalog +/Pages 1 0 R +/OpenAction [3 0 R /FitH null] +/PageLayout /OneColumn +/Outlines 13 0 R +>> +endobj +xref +0 270 +0000000000 65535 f +0000093691 00000 n +0000095899 00000 n +0000000015 00000 n +0000000124 00000 n +0000093748 00000 n +0000093913 00000 n +0000094092 00000 n +0000094208 00000 n +0000094377 00000 n +0000095421 00000 n +0000095587 00000 n +0000095781 00000 n +0000130989 00000 n +0000131067 00000 n +0000131274 00000 n +0000131170 00000 n +0000131374 00000 n +0000134806 00000 n +0000134886 00000 n +0000134979 00000 n +0000135072 00000 n +0000135165 00000 n +0000135258 00000 n +0000131477 00000 n +0000135338 00000 n +0000135418 00000 n +0000131591 00000 n +0000135498 00000 n +0000131709 00000 n +0000135565 00000 n +0000131827 00000 n +0000135632 00000 n +0000131945 00000 n +0000135699 00000 n +0000132064 00000 n +0000135767 00000 n +0000132183 00000 n +0000135835 00000 n +0000132302 00000 n +0000135903 00000 n +0000135983 00000 n +0000136076 00000 n +0000136169 00000 n +0000136262 00000 n +0000136355 00000 n +0000136448 00000 n +0000136541 00000 n +0000136634 00000 n +0000136727 00000 n +0000136820 00000 n +0000136913 00000 n +0000137006 00000 n +0000137099 00000 n +0000137192 00000 n +0000137285 00000 n +0000137379 00000 n +0000137473 00000 n +0000132417 00000 n +0000137554 00000 n +0000137634 00000 n +0000132536 00000 n +0000137715 00000 n +0000137795 00000 n +0000132655 00000 n +0000137876 00000 n +0000137956 00000 n +0000132776 00000 n +0000138037 00000 n +0000138117 00000 n +0000132895 00000 n +0000138198 00000 n +0000138278 00000 n +0000133016 00000 n +0000138359 00000 n +0000138439 00000 n +0000133135 00000 n +0000138520 00000 n +0000138600 00000 n +0000133256 00000 n +0000138681 00000 n +0000138761 00000 n +0000133375 00000 n +0000138842 00000 n +0000138922 00000 n +0000133496 00000 n +0000139003 00000 n +0000139084 00000 n +0000133614 00000 n +0000139165 00000 n +0000139245 00000 n +0000133731 00000 n +0000139325 00000 n +0000139405 00000 n +0000133849 00000 n +0000139485 00000 n +0000139565 00000 n +0000133967 00000 n +0000139645 00000 n +0000139725 00000 n +0000134086 00000 n +0000139805 00000 n +0000139888 00000 n +0000134208 00000 n +0000139971 00000 n +0000140054 00000 n +0000140151 00000 n +0000134332 00000 n +0000140234 00000 n +0000140317 00000 n +0000140414 00000 n +0000134456 00000 n +0000140497 00000 n +0000140580 00000 n +0000134578 00000 n +0000140663 00000 n +0000140746 00000 n +0000134700 00000 n +0000140829 00000 n +0000140912 00000 n +0000096024 00000 n +0000096087 00000 n +0000096484 00000 n +0000096547 00000 n +0000096978 00000 n +0000097041 00000 n +0000097472 00000 n +0000097535 00000 n +0000097966 00000 n +0000098029 00000 n +0000098434 00000 n +0000098497 00000 n +0000098893 00000 n +0000098956 00000 n +0000099352 00000 n +0000099415 00000 n +0000099832 00000 n +0000099895 00000 n +0000100289 00000 n +0000100352 00000 n +0000100746 00000 n +0000100809 00000 n +0000101216 00000 n +0000101279 00000 n +0000101672 00000 n +0000101735 00000 n +0000102128 00000 n +0000102191 00000 n +0000102584 00000 n +0000102647 00000 n +0000103040 00000 n +0000103103 00000 n +0000103533 00000 n +0000103596 00000 n +0000104014 00000 n +0000104077 00000 n +0000104484 00000 n +0000104547 00000 n +0000104954 00000 n +0000105017 00000 n +0000105424 00000 n +0000105487 00000 n +0000105894 00000 n +0000105957 00000 n +0000106375 00000 n +0000106438 00000 n +0000106871 00000 n +0000106934 00000 n +0000107327 00000 n +0000107390 00000 n +0000107809 00000 n +0000107872 00000 n +0000108267 00000 n +0000108330 00000 n +0000108725 00000 n +0000108788 00000 n +0000109183 00000 n +0000109246 00000 n +0000109641 00000 n +0000109704 00000 n +0000110110 00000 n +0000110173 00000 n +0000110566 00000 n +0000110629 00000 n +0000111034 00000 n +0000111097 00000 n +0000111504 00000 n +0000111567 00000 n +0000111963 00000 n +0000112026 00000 n +0000112420 00000 n +0000112483 00000 n +0000112879 00000 n +0000112942 00000 n +0000113359 00000 n +0000113422 00000 n +0000113852 00000 n +0000113915 00000 n +0000114348 00000 n +0000114411 00000 n +0000114844 00000 n +0000114907 00000 n +0000115314 00000 n +0000115377 00000 n +0000115844 00000 n +0000115907 00000 n +0000116303 00000 n +0000116366 00000 n +0000116762 00000 n +0000116825 00000 n +0000117230 00000 n +0000117293 00000 n +0000117723 00000 n +0000117786 00000 n +0000118182 00000 n +0000118245 00000 n +0000118639 00000 n +0000118702 00000 n +0000119121 00000 n +0000119184 00000 n +0000119612 00000 n +0000119675 00000 n +0000120071 00000 n +0000120134 00000 n +0000120539 00000 n +0000120602 00000 n +0000120998 00000 n +0000121061 00000 n +0000121482 00000 n +0000121545 00000 n +0000121939 00000 n +0000122002 00000 n +0000122410 00000 n +0000122473 00000 n +0000122867 00000 n +0000122930 00000 n +0000123338 00000 n +0000123401 00000 n +0000123795 00000 n +0000123858 00000 n +0000124265 00000 n +0000124328 00000 n +0000124761 00000 n +0000124824 00000 n +0000125268 00000 n +0000125331 00000 n +0000125750 00000 n +0000125813 00000 n +0000126220 00000 n +0000126283 00000 n +0000126679 00000 n +0000126742 00000 n +0000127198 00000 n +0000127261 00000 n +0000127668 00000 n +0000127731 00000 n +0000128164 00000 n +0000128227 00000 n +0000128635 00000 n +0000128698 00000 n +0000129094 00000 n +0000129157 00000 n +0000129576 00000 n +0000129639 00000 n +0000130035 00000 n +0000130098 00000 n +0000130492 00000 n +0000130555 00000 n +0000140996 00000 n +0000141083 00000 n +trailer +<< +/Size 270 +/Root 269 0 R +/Info 268 0 R +/ID [ ] +>> +startxref +141205 +%%EOF diff --git a/Doc/DAPLink-HS.png b/Doc/DAPLink-HS.png new file mode 100644 index 0000000..5924218 Binary files /dev/null and b/Doc/DAPLink-HS.png differ diff --git a/Doc/DAPLink.eprj b/Doc/DAPLink.eprj new file mode 100644 index 0000000..d1ad947 Binary files /dev/null and b/Doc/DAPLink.eprj differ diff --git a/Doc/DAPLink.pdf b/Doc/DAPLink.pdf new file mode 100644 index 0000000..abc630e --- /dev/null +++ b/Doc/DAPLink.pdf @@ -0,0 +1,8686 @@ +%PDF-1.4 +%ºß¬à +3 0 obj +<> +endobj +4 0 obj +<< +/Length 87106 +>> +stream +0.14 w +0 G +q +2 J +0 j +72 M +1.00 g +[] 0 d +0.00 599.76 848.16 -599.76 re +f +0.60 g +148.32 535.68 m 148.32 536.48 147.68 537.12 146.88 537.12 c +146.08 537.12 145.44 536.48 145.44 535.68 c +145.44 534.88 146.08 534.24 146.88 534.24 c +147.68 534.24 148.32 534.88 148.32 535.68 c +f +0.60 g +148.32 528.48 m 148.32 529.28 147.68 529.92 146.88 529.92 c +146.08 529.92 145.44 529.28 145.44 528.48 c +145.44 527.68 146.08 527.04 146.88 527.04 c +147.68 527.04 148.32 527.68 148.32 528.48 c +f +0.60 g +418.32 377.28 m 418.32 378.08 417.68 378.72 416.88 378.72 c +416.08 378.72 415.44 378.08 415.44 377.28 c +415.44 376.48 416.08 375.84 416.88 375.84 c +417.68 375.84 418.32 376.48 418.32 377.28 c +f +0.60 g +418.32 370.08 m 418.32 370.88 417.68 371.52 416.88 371.52 c +416.08 371.52 415.44 370.88 415.44 370.08 c +415.44 369.28 416.08 368.64 416.88 368.64 c +417.68 368.64 418.32 369.28 418.32 370.08 c +f +0.60 g +238.32 384.48 m 238.32 385.28 237.68 385.92 236.88 385.92 c +236.08 385.92 235.44 385.28 235.44 384.48 c +235.44 383.68 236.08 383.04 236.88 383.04 c +237.68 383.04 238.32 383.68 238.32 384.48 c +f +0.60 g +238.32 377.28 m 238.32 378.08 237.68 378.72 236.88 378.72 c +236.08 378.72 235.44 378.08 235.44 377.28 c +235.44 376.48 236.08 375.84 236.88 375.84 c +237.68 375.84 238.32 376.48 238.32 377.28 c +f +0.60 g +418.32 384.48 m 418.32 385.28 417.68 385.92 416.88 385.92 c +416.08 385.92 415.44 385.28 415.44 384.48 c +415.44 383.68 416.08 383.04 416.88 383.04 c +417.68 383.04 418.32 383.68 418.32 384.48 c +f +0.60 g +238.32 398.88 m 238.32 399.68 237.68 400.32 236.88 400.32 c +236.08 400.32 235.44 399.68 235.44 398.88 c +235.44 398.08 236.08 397.44 236.88 397.44 c +237.68 397.44 238.32 398.08 238.32 398.88 c +f +0.60 g +238.32 391.68 m 238.32 392.48 237.68 393.12 236.88 393.12 c +236.08 393.12 235.44 392.48 235.44 391.68 c +235.44 390.88 236.08 390.24 236.88 390.24 c +237.68 390.24 238.32 390.88 238.32 391.68 c +f +0.60 g +238.32 413.28 m 238.32 414.08 237.68 414.72 236.88 414.72 c +236.08 414.72 235.44 414.08 235.44 413.28 c +235.44 412.48 236.08 411.84 236.88 411.84 c +237.68 411.84 238.32 412.48 238.32 413.28 c +f +0.60 g +418.32 420.48 m 418.32 421.28 417.68 421.92 416.88 421.92 c +416.08 421.92 415.44 421.28 415.44 420.48 c +415.44 419.68 416.08 419.04 416.88 419.04 c +417.68 419.04 418.32 419.68 418.32 420.48 c +f +0.60 g +418.32 413.28 m 418.32 414.08 417.68 414.72 416.88 414.72 c +416.08 414.72 415.44 414.08 415.44 413.28 c +415.44 412.48 416.08 411.84 416.88 411.84 c +417.68 411.84 418.32 412.48 418.32 413.28 c +f +0.60 g +418.32 434.88 m 418.32 435.68 417.68 436.32 416.88 436.32 c +416.08 436.32 415.44 435.68 415.44 434.88 c +415.44 434.08 416.08 433.44 416.88 433.44 c +417.68 433.44 418.32 434.08 418.32 434.88 c +f +0.60 g +418.32 427.68 m 418.32 428.48 417.68 429.12 416.88 429.12 c +416.08 429.12 415.44 428.48 415.44 427.68 c +415.44 426.88 416.08 426.24 416.88 426.24 c +417.68 426.24 418.32 426.88 418.32 427.68 c +f +0.60 g +544.32 420.48 m 544.32 421.28 543.68 421.92 542.88 421.92 c +542.08 421.92 541.44 421.28 541.44 420.48 c +541.44 419.68 542.08 419.04 542.88 419.04 c +543.68 419.04 544.32 419.68 544.32 420.48 c +f +0.60 g +544.32 413.28 m 544.32 414.08 543.68 414.72 542.88 414.72 c +542.08 414.72 541.44 414.08 541.44 413.28 c +541.44 412.48 542.08 411.84 542.88 411.84 c +543.68 411.84 544.32 412.48 544.32 413.28 c +f +0.60 g +688.32 427.68 m 688.32 428.48 687.68 429.12 686.88 429.12 c +686.08 429.12 685.44 428.48 685.44 427.68 c +685.44 426.88 686.08 426.24 686.88 426.24 c +687.68 426.24 688.32 426.88 688.32 427.68 c +f +0.60 g +688.32 420.48 m 688.32 421.28 687.68 421.92 686.88 421.92 c +686.08 421.92 685.44 421.28 685.44 420.48 c +685.44 419.68 686.08 419.04 686.88 419.04 c +687.68 419.04 688.32 419.68 688.32 420.48 c +f +0.60 g +688.32 413.28 m 688.32 414.08 687.68 414.72 686.88 414.72 c +686.08 414.72 685.44 414.08 685.44 413.28 c +685.44 412.48 686.08 411.84 686.88 411.84 c +687.68 411.84 688.32 412.48 688.32 413.28 c +f +0.60 g +688.32 406.08 m 688.32 406.88 687.68 407.52 686.88 407.52 c +686.08 407.52 685.44 406.88 685.44 406.08 c +685.44 405.28 686.08 404.64 686.88 404.64 c +687.68 404.64 688.32 405.28 688.32 406.08 c +f +0.60 g +688.32 398.88 m 688.32 399.68 687.68 400.32 686.88 400.32 c +686.08 400.32 685.44 399.68 685.44 398.88 c +685.44 398.08 686.08 397.44 686.88 397.44 c +687.68 397.44 688.32 398.08 688.32 398.88 c +f +0.60 g +544.32 406.08 m 544.32 406.88 543.68 407.52 542.88 407.52 c +542.08 407.52 541.44 406.88 541.44 406.08 c +541.44 405.28 542.08 404.64 542.88 404.64 c +543.68 404.64 544.32 405.28 544.32 406.08 c +f +0.60 g +544.32 398.88 m 544.32 399.68 543.68 400.32 542.88 400.32 c +542.08 400.32 541.44 399.68 541.44 398.88 c +541.44 398.08 542.08 397.44 542.88 397.44 c +543.68 397.44 544.32 398.08 544.32 398.88 c +f +0.60 g +267.12 262.08 m 267.12 262.88 266.48 263.52 265.68 263.52 c +264.88 263.52 264.24 262.88 264.24 262.08 c +264.24 261.28 264.88 260.64 265.68 260.64 c +266.48 260.64 267.12 261.28 267.12 262.08 c +f +0.60 g +382.32 218.88 m 382.32 219.68 381.68 220.32 380.88 220.32 c +380.08 220.32 379.44 219.68 379.44 218.88 c +379.44 218.08 380.08 217.44 380.88 217.44 c +381.68 217.44 382.32 218.08 382.32 218.88 c +f +0.60 g +436.32 218.88 m 436.32 219.68 435.68 220.32 434.88 220.32 c +434.08 220.32 433.44 219.68 433.44 218.88 c +433.44 218.08 434.08 217.44 434.88 217.44 c +435.68 217.44 436.32 218.08 436.32 218.88 c +f +0.60 g +238.32 370.08 m 238.32 370.88 237.68 371.52 236.88 371.52 c +236.08 371.52 235.44 370.88 235.44 370.08 c +235.44 369.28 236.08 368.64 236.88 368.64 c +237.68 368.64 238.32 369.28 238.32 370.08 c +f +0.60 g +292.32 326.88 m 292.32 327.68 291.68 328.32 290.88 328.32 c +290.08 328.32 289.44 327.68 289.44 326.88 c +289.44 326.08 290.08 325.44 290.88 325.44 c +291.68 325.44 292.32 326.08 292.32 326.88 c +f +0.60 g +544.32 362.88 m 544.32 363.68 543.68 364.32 542.88 364.32 c +542.08 364.32 541.44 363.68 541.44 362.88 c +541.44 362.08 542.08 361.44 542.88 361.44 c +543.68 361.44 544.32 362.08 544.32 362.88 c +f +0.60 g +544.32 355.68 m 544.32 356.48 543.68 357.12 542.88 357.12 c +542.08 357.12 541.44 356.48 541.44 355.68 c +541.44 354.88 542.08 354.24 542.88 354.24 c +543.68 354.24 544.32 354.88 544.32 355.68 c +f +0.60 g +544.32 348.48 m 544.32 349.28 543.68 349.92 542.88 349.92 c +542.08 349.92 541.44 349.28 541.44 348.48 c +541.44 347.68 542.08 347.04 542.88 347.04 c +543.68 347.04 544.32 347.68 544.32 348.48 c +f +0.60 g +544.32 341.28 m 544.32 342.08 543.68 342.72 542.88 342.72 c +542.08 342.72 541.44 342.08 541.44 341.28 c +541.44 340.48 542.08 339.84 542.88 339.84 c +543.68 339.84 544.32 340.48 544.32 341.28 c +f +0.60 g +688.32 362.88 m 688.32 363.68 687.68 364.32 686.88 364.32 c +686.08 364.32 685.44 363.68 685.44 362.88 c +685.44 362.08 686.08 361.44 686.88 361.44 c +687.68 361.44 688.32 362.08 688.32 362.88 c +f +0.60 g +688.32 355.68 m 688.32 356.48 687.68 357.12 686.88 357.12 c +686.08 357.12 685.44 356.48 685.44 355.68 c +685.44 354.88 686.08 354.24 686.88 354.24 c +687.68 354.24 688.32 354.88 688.32 355.68 c +f +0.60 g +688.32 348.48 m 688.32 349.28 687.68 349.92 686.88 349.92 c +686.08 349.92 685.44 349.28 685.44 348.48 c +685.44 347.68 686.08 347.04 686.88 347.04 c +687.68 347.04 688.32 347.68 688.32 348.48 c +f +0.60 g +688.32 341.28 m 688.32 342.08 687.68 342.72 686.88 342.72 c +686.08 342.72 685.44 342.08 685.44 341.28 c +685.44 340.48 686.08 339.84 686.88 339.84 c +687.68 339.84 688.32 340.48 688.32 341.28 c +f +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +2.88 596.88 842.40 -594.00 re +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +10.08 589.68 828.00 -579.60 re +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +150.480 596.880 m +150.480 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +150.480 10.080 m +150.480 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +290.880 596.880 m +290.880 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +290.880 10.080 m +290.880 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +431.280 596.880 m +431.280 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +431.280 10.080 m +431.280 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +571.680 596.880 m +571.680 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +571.680 10.080 m +571.680 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +712.080 596.880 m +712.080 589.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +712.080 10.080 m +712.080 2.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +2.880 441.180 m +10.080 441.180 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 441.180 m +845.280 441.180 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +2.880 292.680 m +10.080 292.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 292.680 m +845.280 292.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +2.880 144.180 m +10.080 144.180 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 144.180 m +845.280 144.180 l +S +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +78.48 590.64 Td +<0031> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +78.48 3.84 Td +<0031> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +218.88 590.64 Td +<0032> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +218.88 3.84 Td +<0032> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +359.28 590.64 Td +<0033> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +359.28 3.84 Td +<0033> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +499.68 590.64 Td +<0034> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +499.68 3.84 Td +<0034> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +640.08 590.64 Td +<0035> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +640.08 3.84 Td +<0035> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +780.48 590.64 Td +<0036> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +780.48 3.84 Td +<0036> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 512.79 Td +<0041> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 512.79 Td +<0041> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 364.29 Td +<0042> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 364.29 Td +<0042> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 215.79 Td +<0043> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 215.79 Td +<0043> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +4.68 67.29 Td +<0044> Tj +ET +7.20 w +BT +/F1 7.199999999999999 Tf +7.20 TL +0.627 0.000 0.000 rg +839.88 67.29 Td +<0044> Tj +ET +7.20 w +BT +14.40 TL +0.000 0.000 0.502 rg +689.32 19.82 Td +/F3 12.705881640160413 Tf +<56097acb521b> Tj +/F2 12.705881640160413 Tf +(EDA) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +510.04 20.99 Td +(V1.0) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +573.05 20.99 Td +(A4) Tj +ET +7.20 w +BT +/F2 12.705881640160413 Tf +14.40 TL +0.000 0.000 0.502 rg +640.57 70.22 Td +(DAPLink) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +793.67 43.31 Td +(1) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +730.08 128.99 Td +(2025-05-07) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +730.08 114.59 Td +(2022-11-13) Tj +ET +7.20 w +BT +/F2 12.705881640160413 Tf +14.40 TL +0.000 0.000 0.502 rg +503.77 120.62 Td +(DAPLink) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +709.43 43.31 Td +(1) Tj +ET +7.20 w +BT +/F2 9.529411230120308 Tf +10.80 TL +0.000 0.000 0.502 rg +518.15 100.19 Td +(Core) Tj +ET +q +1 0 0 1 0 0 cm +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +339.84 70.92 Td +<00520065007600690065007700650064> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +339.84 85.32 Td +<004400720061007700650064> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +511.74 42.12 Td +<005600450052> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 114.12 Td +<00430072006500610074006500200044006100740065> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 99.72 Td +<00500061007200740020004e0075006d006200650072> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 42.84 Td +<0050004100470045> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +745.92 42.84 Td +<004f0046> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +339.84 121.32 Td +<0053006300680065006d0061007400690063> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +656.64 128.52 Td +<00550070006400610074006500200044006100740065> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +566.64 42.12 Td +<00530049005a0045> Tj +ET +7.20 w +BT +/F1 10.799999999999999 Tf +10.80 TL +0.627 0.000 0.000 rg +341.28 99.72 Td +<0050006100670065> Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +332.64 139.68 505.44 -129.60 re +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +548.640 10.080 m +548.640 53.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 38.880 m +398.880 139.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +649.440 139.680 m +649.440 96.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +721.440 96.480 m +721.440 139.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +491.040 96.480 m +491.040 10.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +491.040 82.080 m +332.640 82.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 125.280 m +649.440 125.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 38.880 m +332.640 38.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 96.480 m +332.640 96.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 53.280 m +332.640 53.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +491.040 67.680 m +332.640 67.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +838.080 110.880 m +332.640 110.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +606.240 53.280 m +606.240 10.080 l +S +q +0.33 0.53 1.00 rg +[] 0 d +448.048 32.040 m +448.027 32.040 439.829 32.040 439.829 32.040 c +437.744 18.234 l +446.339 18.234 l +446.339 18.234 l +447.062 18.246 447.645 18.781 447.645 19.436 c +447.645 20.103 447.048 20.638 446.318 20.638 c +446.290 20.638 440.989 20.632 440.989 20.632 c +441.552 24.290 l +441.552 24.290 446.992 24.284 447.041 24.284 c +447.784 24.284 448.389 24.831 448.389 25.505 c +448.389 26.109 447.902 26.613 447.263 26.708 c +441.920 26.708 l +442.358 29.572 l +442.358 29.572 448.020 29.578 448.055 29.578 c +448.799 29.578 449.403 30.126 449.403 30.800 c +449.396 31.492 448.792 32.040 448.048 32.040 c +448.048 32.040 l +f +0.33 0.53 1.00 rg +[] 0 d +462.945 25.423 m +462.945 26.783 462.597 27.979 461.910 29.018 c +461.222 30.057 460.318 30.819 459.214 31.303 c +458.109 31.788 456.428 32.027 454.162 32.027 c +451.752 32.027 l +449.667 18.221 l +454.406 18.221 l +456.393 18.221 457.942 18.492 459.061 19.027 c +460.179 19.562 461.110 20.412 461.840 21.577 c +462.583 22.754 462.945 24.038 462.945 25.423 c +462.945 25.423 l +459.200 22.578 m +458.651 21.816 457.921 21.281 457.004 20.972 c +456.358 20.758 455.309 20.638 453.857 20.638 c +452.912 20.638 l +454.253 29.597 l +454.968 29.597 l +456.143 29.597 457.081 29.434 457.789 29.094 c +458.491 28.754 459.040 28.281 459.429 27.664 c +459.818 27.048 460.013 26.279 460.013 25.367 c +460.027 24.265 459.749 23.333 459.200 22.578 c +459.200 22.578 l +f +0.33 0.53 1.00 rg +[] 0 d +473.923 25.574 m +472.255 24.743 l +472.116 23.654 471.095 22.798 469.851 22.798 c +468.517 22.798 467.433 23.780 467.433 24.989 c +467.433 26.198 468.517 27.180 469.851 27.180 c +470.365 27.180 470.845 27.035 471.234 26.783 c +473.304 27.816 l +472.186 31.889 l +469.823 31.889 l +461.757 18.359 l +464.779 18.359 l +466.474 21.237 l +472.401 21.237 l +473.193 18.359 l +475.917 18.359 l +473.923 25.574 l +473.923 25.574 l +f +0.33 0.53 1.00 rg +[] 0 d +171.714 -1492.614 m +171.714 -1493.083 171.293 -1493.464 170.776 -1493.464 c +170.258 -1493.464 169.838 -1493.083 169.838 -1492.614 c +169.838 -1492.145 170.258 -1491.764 170.776 -1491.764 c +171.293 -1491.764 171.714 -1492.145 171.714 -1492.614 c +f +0.33 0.53 1.00 rg +[] 0 d +430.053 21.111 m +430.227 20.934 430.491 20.821 430.755 20.821 c +430.789 20.821 l +431.317 20.821 431.762 21.180 431.832 21.652 c +433.242 30.693 l +431.213 30.693 l +429.817 21.778 l +429.796 21.545 429.872 21.293 430.053 21.111 c +430.053 21.111 l +f +0.33 0.53 1.00 rg +[] 0 d +432.471 20.097 m +432.450 19.959 432.367 19.807 432.235 19.682 c +432.110 19.574 431.978 19.524 431.811 19.524 c +430.428 19.524 l +429.914 19.524 429.455 19.159 429.386 18.693 c +429.379 18.662 l +429.344 18.410 429.428 18.171 429.601 17.988 c +429.775 17.812 430.039 17.698 430.303 17.698 c +431.686 17.698 l +432.061 17.698 432.394 17.761 432.707 17.900 c +433.666 18.259 434.319 19.020 434.451 19.959 c +436.195 32.147 l +434.187 32.147 l +432.471 20.097 l +432.471 20.097 l +f +0.33 0.53 1.00 rg +[] 0 d +429.442 27.557 m +429.692 27.557 429.900 27.740 429.900 27.973 c +429.900 28.017 429.893 28.055 429.879 28.093 c +429.879 28.093 429.879 28.093 429.886 28.093 c +429.045 30.737 l +429.039 30.749 l +428.830 31.259 428.552 31.650 428.212 31.889 c +428.177 31.914 l +427.781 32.141 427.267 32.260 426.600 32.260 c +424.335 32.260 l +423.696 32.260 423.161 32.141 422.751 31.908 c +422.313 31.656 421.945 31.297 421.653 30.838 c +421.653 30.838 420.492 29.075 419.888 28.168 c +419.895 28.162 l +419.860 28.105 419.839 28.042 419.839 27.973 c +419.839 27.746 420.041 27.557 420.298 27.557 c +420.305 27.557 420.312 27.557 420.312 27.557 c +421.750 27.557 l +421.861 27.727 421.979 27.897 422.097 28.067 c +422.132 28.118 l +422.507 28.703 422.980 29.427 423.348 29.975 c +423.355 29.988 l +423.452 30.139 423.584 30.271 423.730 30.353 c +423.841 30.416 424.015 30.447 424.224 30.447 c +426.489 30.447 l +426.676 30.447 426.822 30.422 426.892 30.378 c +426.989 30.309 427.072 30.202 427.114 30.082 c +427.913 27.564 l +429.379 27.564 l +429.379 27.570 l +429.400 27.557 429.421 27.557 429.442 27.557 c +429.442 27.557 l +f +0.33 0.53 1.00 rg +[] 0 d +427.100 26.997 m +422.869 26.997 l +422.285 26.997 421.694 26.789 421.208 26.412 c +420.736 26.046 420.423 25.555 420.312 25.033 c +419.311 20.078 l +419.249 19.757 419.263 19.449 419.346 19.172 c +419.499 18.592 419.909 18.145 420.486 17.912 c +420.763 17.774 421.076 17.705 421.458 17.705 c +427.308 17.705 l +427.830 17.705 428.288 18.057 428.378 18.529 c +428.385 18.561 l +428.434 18.813 428.365 19.052 428.198 19.235 c +428.031 19.411 427.788 19.518 427.510 19.518 c +421.660 19.518 l +421.535 19.518 421.430 19.562 421.347 19.644 c +421.333 19.656 l +421.292 19.700 421.236 19.776 421.271 19.952 c +422.278 24.913 l +422.299 25.008 422.327 25.052 422.410 25.108 c +422.445 25.134 l +422.494 25.178 422.542 25.197 422.667 25.197 c +426.899 25.197 l +426.954 25.197 426.982 25.190 426.982 25.190 c +427.003 25.165 l +427.017 25.146 427.038 25.127 427.017 25.039 c +426.489 22.949 l +426.454 22.779 426.315 22.659 426.134 22.659 c +424.251 22.659 l +423.737 22.659 423.265 22.294 423.181 21.835 c +423.174 21.791 l +423.133 21.558 423.195 21.318 423.362 21.142 c +423.529 20.960 423.786 20.853 424.050 20.853 c +425.940 20.853 l +425.995 20.853 426.044 20.853 426.100 20.859 c +426.141 20.859 426.183 20.853 426.225 20.853 c +427.371 20.853 428.219 21.514 428.330 22.370 c +428.399 22.603 429.004 24.907 429.004 24.907 c +429.059 25.184 429.045 25.455 428.962 25.694 c +428.740 26.487 428.017 26.997 427.100 26.997 c +427.100 26.997 l +f +0.33 0.53 1.00 rg +[] 0 d +416.400 19.537 m +402.150 19.537 l +402.004 18.126 l +402.004 18.126 402.004 18.126 402.011 18.126 c +402.011 18.120 l +402.011 17.894 402.212 17.698 402.476 17.698 c +402.476 17.698 l +402.476 17.698 l +416.282 17.698 l +416.789 17.698 417.241 18.064 417.310 18.529 c +417.317 18.573 l +417.352 18.825 417.269 19.071 417.095 19.253 c +416.907 19.430 416.664 19.537 416.400 19.537 c +416.400 19.537 l +f +0.33 0.53 1.00 rg +[] 0 d +412.224 19.933 m +412.329 19.908 l +412.412 19.889 412.495 19.877 412.579 19.877 c +412.579 19.877 l +412.975 19.877 413.343 20.091 413.524 20.424 c +414.608 22.533 415.434 25.845 416.317 28.496 c +416.324 28.514 l +416.331 28.533 416.331 28.546 416.338 28.565 c +414.253 28.565 l +413.426 26.091 412.676 22.980 411.703 21.092 c +411.592 20.865 411.592 20.607 411.703 20.380 c +411.801 20.179 411.981 20.015 412.224 19.933 c +412.224 19.933 l +f +0.33 0.53 1.00 rg +[] 0 d +406.173 20.771 m +406.242 20.361 406.617 20.084 407.083 20.084 c +407.152 20.084 407.222 20.091 407.291 20.103 c +407.312 20.110 l +407.805 20.229 408.139 20.638 408.090 21.079 c +407.250 28.420 l +405.283 28.420 l +405.283 28.414 l +406.173 20.802 l +406.173 20.771 l +406.173 20.771 l +f +0.33 0.53 1.00 rg +[] 0 d +417.074 30.982 m +412.037 30.982 l +412.301 32.569 l +410.724 32.569 l +410.724 32.569 l +410.717 32.569 410.710 32.569 410.696 32.569 c +410.467 32.569 410.272 32.411 410.244 32.197 c +410.244 32.197 l +410.015 30.982 l +410.015 30.982 403.908 30.982 403.873 30.976 c +403.741 29.685 l +403.734 29.660 403.734 29.635 403.734 29.604 c +403.734 29.377 403.935 29.188 404.192 29.182 c +404.192 29.175 l +406.603 29.169 416.963 29.175 416.963 29.175 c +417.491 29.175 417.936 29.528 418.005 29.994 c +418.005 30.006 l +418.040 30.265 417.963 30.504 417.790 30.686 c +417.616 30.882 417.359 30.982 417.074 30.982 c +417.074 30.982 l +f +0.33 0.53 1.00 rg +[] 0 d +388.532 21.350 m +390.178 21.350 l +391.200 21.350 391.603 20.909 391.422 19.977 c +391.200 18.806 l +391.109 17.881 390.574 17.554 389.372 17.516 c +387.288 17.516 l +387.288 18.725 l +388.580 18.725 l +389.115 18.725 389.338 18.888 389.428 19.128 c +389.518 19.493 l +389.609 19.814 389.386 19.977 388.851 19.977 c +387.962 19.977 l +387.114 18.769 385.829 18.082 383.647 17.478 c +383.112 18.687 l +384.537 19.090 385.113 19.291 385.919 19.940 c +383.786 19.940 l +384.009 21.312 l +386.635 21.312 l +386.635 21.350 386.677 21.514 386.767 21.715 c +386.809 21.879 386.989 21.998 387.170 21.998 c +388.726 21.998 l +388.532 21.350 l +388.532 21.350 l +f +0.33 0.53 1.00 rg +[] 0 d +385.377 30.504 m +385.558 31.429 l +392.409 31.429 l +392.499 32.071 l +392.541 32.273 392.721 32.393 392.902 32.393 c +394.722 32.393 l +394.542 31.423 l +400.684 31.423 l +401.128 31.423 401.483 31.058 401.441 30.617 c +401.441 30.617 l +401.399 30.296 401.087 30.051 400.684 30.051 c +394.361 30.051 l +394.229 29.364 l +399.350 29.364 l +399.753 29.364 400.058 29.043 399.975 28.678 c +399.975 28.678 l +399.933 28.395 399.662 28.193 399.350 28.193 c +386.531 28.193 l +386.267 28.193 386.086 28.395 386.128 28.634 c +386.260 29.358 l +392.047 29.358 l +392.179 30.044 l +385.815 30.044 l +385.551 30.057 385.329 30.302 385.377 30.504 c +385.377 30.504 l +f +0.33 0.53 1.00 rg +[] 0 d +399.572 23.610 m +396.279 23.610 l +396.320 23.648 396.411 23.730 396.459 23.812 c +396.591 24.051 396.723 24.214 396.772 24.378 c +397.439 24.378 l +398.599 24.378 399.266 24.819 399.398 25.669 c +399.530 26.437 l +399.662 27.243 399.266 27.646 398.238 27.646 c +387.288 27.646 l +386.399 27.646 385.864 27.205 385.683 26.355 c +385.551 25.587 l +385.419 24.781 385.815 24.378 386.843 24.378 c +387.510 24.378 l +387.552 24.139 387.601 23.975 387.642 23.812 c +387.684 23.730 387.733 23.648 387.774 23.610 c +383.995 23.610 l +383.863 22.842 l +383.821 22.603 384.043 22.401 384.266 22.401 c +399.530 22.401 l +399.843 22.401 400.156 22.603 400.197 22.924 c +400.329 23.245 399.975 23.610 399.572 23.610 c +399.572 23.610 l +387.510 25.908 m +387.552 26.191 l +387.594 26.431 387.774 26.512 388.038 26.512 c +397.119 26.512 l +397.432 26.512 397.564 26.393 397.522 26.191 c +397.481 25.908 l +397.439 25.587 397.258 25.423 396.946 25.423 c +387.865 25.423 l +387.601 25.423 387.469 25.581 387.510 25.908 c +387.510 25.908 l +394.229 23.812 m +394.187 23.730 394.097 23.648 394.048 23.610 c +389.998 23.610 l +389.956 23.648 389.907 23.730 389.866 23.812 c +389.824 24.051 389.775 24.214 389.734 24.378 c +394.542 24.378 l +394.410 24.089 394.319 23.931 394.229 23.812 c +394.229 23.812 l +f +0.33 0.53 1.00 rg +[] 0 d +398.370 21.589 m +394.451 21.589 l +393.430 21.589 392.846 21.148 392.714 20.299 c +392.450 18.725 l +392.228 17.875 392.631 17.516 393.743 17.516 c +397.522 17.516 l +398.634 17.554 399.169 17.919 399.350 18.806 c +399.614 20.261 l +399.704 21.148 399.308 21.589 398.370 21.589 c +398.370 21.589 l +397.439 19.820 m +397.349 19.253 l +397.307 18.888 397.085 18.687 396.723 18.687 c +394.986 18.687 l +394.500 18.687 394.278 18.850 394.410 19.172 c +394.500 19.738 l +394.542 20.103 394.813 20.305 395.209 20.305 c +397.036 20.305 l +397.349 20.299 397.522 20.141 397.439 19.820 c +397.439 19.820 l +f +0.33 0.53 1.00 rg +[] 0 d +375.789 28.219 m +375.282 29.421 374.469 30.523 373.385 31.398 c +371.724 32.751 369.584 33.494 367.347 33.494 c +365.409 33.494 363.568 32.947 362.011 31.914 c +361.261 31.417 360.608 30.825 360.066 30.158 c +359.725 30.202 359.385 30.221 359.037 30.221 c +357.106 30.221 355.292 29.541 353.938 28.300 c +352.576 27.066 351.818 25.423 351.818 23.679 c +351.818 22.055 352.479 20.500 353.681 19.291 c +354.639 18.334 355.869 17.667 357.224 17.346 c +357.815 15.753 359.482 14.601 361.434 14.601 c +363.880 14.601 365.874 16.408 365.874 18.624 c +365.874 18.750 365.867 18.888 365.853 19.014 c +372.086 21.979 l +370.724 24.120 l +364.763 21.281 l +363.950 22.118 362.755 22.653 361.428 22.653 c +359.496 22.653 357.856 21.539 357.238 19.984 c +355.668 20.607 354.570 22.024 354.570 23.679 c +354.570 25.902 356.564 27.715 359.024 27.715 c +359.892 27.715 360.698 27.494 361.386 27.104 c +362.213 29.364 364.561 30.989 367.326 30.989 c +370.543 30.989 373.197 28.791 373.545 25.958 c +373.656 25.971 373.767 25.971 373.885 25.971 c +375.817 25.971 377.373 24.554 377.373 22.810 c +377.373 21.161 375.970 19.801 374.184 19.663 c +372.183 19.663 l +372.093 19.682 372.002 19.688 371.905 19.688 c +371.141 19.688 370.509 19.121 370.509 18.422 c +370.509 17.761 371.071 17.220 371.787 17.163 c +371.787 17.151 l +374.163 17.151 l +374.281 17.151 l +374.399 17.157 l +375.956 17.277 377.394 17.919 378.457 18.964 c +379.527 20.015 380.118 21.381 380.118 22.810 c +380.166 25.354 378.318 27.501 375.789 28.219 c +375.789 28.219 l +361.448 20.191 m +362.393 20.191 363.165 19.499 363.165 18.636 c +363.165 17.780 362.400 17.081 361.448 17.081 c +360.503 17.081 359.732 17.774 359.732 18.636 c +359.732 19.493 360.503 20.191 361.448 20.191 c +361.448 20.191 l +f +Q +Q +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +38.88 578.88 43.20 -93.60 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 490.21 Td +(4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 493.09 Td +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 492.480 m +38.880 492.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 497.41 Td +(3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 500.29 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 499.680 m +38.880 499.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 562.21 Td +(2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 565.09 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 564.480 m +38.880 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +40.32 569.41 Td +(1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +35.35 572.29 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +31.680 571.680 m +38.880 571.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +65.30 489.49 Td +(GND) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 493.09 Td +(A1B12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 492.480 m +82.080 492.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 532.69 Td +(DN1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 536.29 Td +(A7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 535.680 m +82.080 535.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +65.30 568.69 Td +(GND) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 572.29 Td +(B1A12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 571.680 m +82.080 571.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.12 561.49 Td +(VBUS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 565.09 Td +(B4A9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 564.480 m +82.080 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 554.29 Td +(CC2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 557.89 Td +(B5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 557.280 m +82.080 557.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.82 503.89 Td +(SBU2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 507.49 Td +(B8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 506.880 m +82.080 506.880 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +86.400 509.760 m +92.160 504.000 l +86.400 504.000 m +92.160 509.760 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.12 496.69 Td +(VBUS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 500.29 Td +(A4B9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 499.680 m +82.080 499.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 511.09 Td +(CC1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 514.69 Td +(A5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 514.080 m +82.080 514.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +62.82 547.09 Td +(SBU1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 550.69 Td +(A8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 550.080 m +82.080 550.080 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +86.400 552.960 m +92.160 547.200 l +86.400 547.200 m +92.160 552.960 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +66.71 518.29 Td +(DN2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 521.89 Td +(B7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 521.280 m +82.080 521.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +67.06 525.49 Td +(DP1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 529.09 Td +(A6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 528.480 m +82.080 528.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +67.06 539.89 Td +(DP2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +82.44 543.49 Td +(B6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +89.280 542.880 m +82.080 542.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +[] 0 d +79.56 488.88 m 79.56 489.48 79.08 489.96 78.48 489.96 c +77.88 489.96 77.40 489.48 77.40 488.88 c +77.40 488.28 77.88 487.80 78.48 487.80 c +79.08 487.80 79.56 488.28 79.56 488.88 c +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +38.88 581.64 Td +(USB) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +24.480 488.880 m +24.480 481.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +17.280 481.680 m +31.680 481.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +23.760 475.200 m +25.200 475.200 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +21.600 477.360 m +27.360 477.360 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +19.440 479.520 m +29.520 479.520 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 492.480 m +139.680 492.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 485.280 m +139.680 499.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 491.760 m +146.160 493.200 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 489.600 m +144.000 495.360 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 487.440 m +141.840 497.520 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 571.680 m +139.680 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 564.480 m +139.680 578.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 570.960 m +146.160 572.400 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 568.800 m +144.000 574.560 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 566.640 m +141.840 576.720 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 557.280 m +139.680 557.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 550.080 m +139.680 564.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 556.560 m +146.160 558.000 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 554.400 m +144.000 560.160 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 552.240 m +141.840 562.320 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 514.080 m +139.680 514.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +139.680 506.880 m +139.680 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +146.160 513.360 m +146.160 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +144.000 511.200 m +144.000 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +141.840 509.040 m +141.840 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 514.080 m +103.680 514.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 514.080 m +103.680 514.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 557.280 m +103.680 557.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 557.280 m +103.680 557.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 571.680 m +132.480 571.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 571.680 m +132.480 571.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 492.480 m +132.480 492.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 492.480 m +132.480 492.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +103.680 499.680 m +107.280 499.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +110.880 503.280 m +110.880 496.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +110.880 499.680 m +107.280 499.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +113.03 497.35 Td +(VBUS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 499.680 m +103.680 499.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 499.680 m +103.680 499.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +24.480 571.680 m +31.680 571.680 l +S +31.680 564.480 m +24.480 564.480 l +S +31.680 499.680 m +24.480 499.680 l +S +31.680 492.480 m +24.480 492.480 l +S +24.480 564.480 m +24.480 571.680 l +S +24.480 499.680 m +24.480 564.480 l +S +24.480 492.480 m +24.480 499.680 l +S +24.480 488.880 m +24.480 492.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +24.480 571.680 m +31.680 571.680 l +S +31.680 564.480 m +24.480 564.480 l +S +31.680 499.680 m +24.480 499.680 l +S +31.680 492.480 m +24.480 492.480 l +S +24.480 564.480 m +24.480 571.680 l +S +24.480 499.680 m +24.480 564.480 l +S +24.480 492.480 m +24.480 499.680 l +S +24.480 488.880 m +24.480 492.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 536.95 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +96.480 521.280 m +96.480 535.680 l +S +89.280 535.680 m +96.480 535.680 l +S +89.280 521.280 m +96.480 521.280 l +S +96.480 535.680 m +146.880 535.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 536.95 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +96.480 521.280 m +96.480 535.680 l +S +89.280 535.680 m +96.480 535.680 l +S +89.280 521.280 m +96.480 521.280 l +S +96.480 535.680 m +146.880 535.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 529.75 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +103.680 542.880 m +103.680 528.480 l +S +89.280 528.480 m +103.680 528.480 l +S +89.280 542.880 m +103.680 542.880 l +S +103.680 528.480 m +146.880 528.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +110.88 529.75 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +103.680 542.880 m +103.680 528.480 l +S +89.280 528.480 m +103.680 528.480 l +S +89.280 542.880 m +103.680 542.880 l +S +103.680 528.480 m +146.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 532.080 m +254.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 560.880 m +254.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +260.640 545.040 m +249.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.880 553.680 m +254.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +249.120 547.920 m +260.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.880 545.040 m +254.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +262.08 547.75 Td +(C0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +262.08 540.55 Td +(2.2uF) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 532.080 m +398.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 560.880 m +398.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +404.640 545.040 m +393.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 553.680 m +398.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.120 547.920 m +404.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 545.040 m +398.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 547.75 Td +(C1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 540.55 Td +(2.2uF) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 560.880 m +254.880 564.480 l +S +254.880 564.480 m +290.880 564.480 l +S +240.480 564.480 m +254.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 560.880 m +254.880 564.480 l +S +254.880 564.480 m +290.880 564.480 l +S +240.480 564.480 m +254.880 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +326.880 528.480 m +326.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +319.680 521.280 m +334.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +326.160 514.800 m +327.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +324.000 516.960 m +329.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +321.840 519.120 m +331.920 519.120 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 528.480 m +254.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +247.680 521.280 m +262.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.160 514.800 m +255.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +252.000 516.960 m +257.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +249.840 519.120 m +259.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 532.080 m +254.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +254.880 532.080 m +254.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 528.480 m +398.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +391.680 521.280 m +406.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.160 514.800 m +399.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +396.000 516.960 m +401.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.840 519.120 m +403.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 532.080 m +398.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 532.080 m +398.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 532.080 m +434.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 560.880 m +434.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +440.640 545.040 m +429.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.880 553.680 m +434.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +429.120 547.920 m +440.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.880 545.040 m +434.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 547.75 Td +(C2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +442.08 540.55 Td +(0.1uF) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +470.880 532.080 m +470.880 539.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +470.880 560.880 m +470.880 553.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +476.640 545.040 m +465.120 545.040 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +470.880 553.680 m +470.880 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +465.120 547.920 m +476.640 547.920 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +470.880 545.040 m +470.880 539.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +478.08 547.75 Td +(C3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +478.08 540.55 Td +(0.1uF) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +506.88 567.36 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +528.480 564.480 m +521.280 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +499.680 564.480 m +506.880 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +506.88 570.09 Td +(R0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +506.88 554.97 Td +(1k) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +434.880 528.480 m +434.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +427.680 521.280 m +442.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +434.160 514.800 m +435.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +432.000 516.960 m +437.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +429.840 519.120 m +439.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 532.080 m +434.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 532.080 m +434.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +470.880 528.480 m +470.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +463.680 521.280 m +478.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +470.160 514.800 m +471.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +468.000 516.960 m +473.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +465.840 519.120 m +475.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +470.880 532.080 m +470.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +470.880 532.080 m +470.880 528.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 528.480 m +542.880 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +535.680 521.280 m +550.080 521.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +542.160 514.800 m +543.600 514.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +540.000 516.960 m +545.760 516.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +537.840 519.120 m +547.920 519.120 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 532.080 m +542.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 532.080 m +542.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 560.880 m +398.880 564.480 l +S +362.880 564.480 m +398.880 564.480 l +S +398.880 564.480 m +434.880 564.480 l +S +434.880 560.880 m +434.880 564.480 l +S +434.880 564.480 m +470.880 564.480 l +S +470.880 560.880 m +470.880 564.480 l +S +470.880 564.480 m +499.680 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 560.880 m +398.880 564.480 l +S +362.880 564.480 m +398.880 564.480 l +S +398.880 564.480 m +434.880 564.480 l +S +434.880 560.880 m +434.880 564.480 l +S +434.880 564.480 m +470.880 564.480 l +S +470.880 560.880 m +470.880 564.480 l +S +470.880 564.480 m +499.680 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +254.880 564.480 m +254.880 568.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +251.280 571.680 m +258.480 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +254.880 571.680 m +254.880 568.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +249.14 572.95 Td +(+5V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 564.480 m +398.880 568.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +395.280 571.680 m +402.480 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 571.680 m +398.880 568.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +390.49 572.95 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 564.480 m +542.880 560.880 l +S +528.480 564.480 m +542.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 564.480 m +542.880 560.880 l +S +528.480 564.480 m +542.880 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 378.55 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 377.280 m +373.680 377.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 378.55 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 377.280 m +373.680 377.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 371.35 Td +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 370.080 m +373.680 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 371.35 Td +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 370.080 m +373.680 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 385.75 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 384.480 m +236.880 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 385.75 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 384.480 m +236.880 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 378.55 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 377.280 m +236.880 377.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 378.55 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 377.280 m +236.880 377.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 385.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 384.480 m +373.680 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 385.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 384.480 m +373.680 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 400.15 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 398.880 m +236.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 400.15 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 398.880 m +236.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 392.95 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 391.680 m +236.880 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 392.95 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 391.680 m +236.880 391.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 406.080 m +236.880 406.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 406.080 m +236.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 414.55 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 413.280 m +236.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 414.55 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 413.280 m +236.880 413.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 398.880 m +373.680 398.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 398.880 m +373.680 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 421.75 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 420.480 m +373.680 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 421.75 Td +(USB_D+) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 420.480 m +373.680 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 414.55 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 413.280 m +373.680 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 414.55 Td +(USB_D-) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 413.280 m +373.680 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 436.15 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 434.880 m +373.680 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 436.15 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 434.880 m +373.680 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 428.95 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 427.680 m +373.680 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +380.88 428.95 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +416.880 427.680 m +373.680 427.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +236.880 406.080 m +233.280 406.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +229.680 402.480 m +229.680 409.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +229.680 406.080 m +233.280 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +0.00 1.00 -1.00 0.00 228.41 397.69 Tm +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +416.880 398.880 m +424.080 398.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +424.080 391.680 m +424.080 406.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +430.560 398.160 m +430.560 399.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +428.400 396.000 m +428.400 401.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +426.240 393.840 m +426.240 403.920 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +416.880 406.080 m +420.480 406.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +424.080 409.680 m +424.080 402.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +424.080 406.080 m +420.480 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +426.49 403.75 Td +(+3.3V) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +342.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +344.880 290.880 m +344.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +344.880 262.080 m +344.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +352.08 277.71 Td +(R2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +352.08 270.51 Td +(1k) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +396.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 290.880 m +398.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 262.080 m +398.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 277.71 Td +(R3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 270.51 Td +(1k) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 262.080 m +218.880 254.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 233.280 m +218.880 240.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +213.120 249.120 m +224.640 249.120 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.880 240.480 m +218.880 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +224.640 246.240 m +213.120 246.240 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.880 249.120 m +218.880 254.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 248.95 Td +(C9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 241.75 Td +(1uF) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +216.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 290.880 m +218.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 262.080 m +218.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 277.71 Td +(R9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +226.08 270.51 Td +(10k) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 233.280 m +218.880 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +211.680 226.080 m +226.080 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.160 219.600 m +219.600 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +216.000 221.760 m +221.760 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +213.840 223.920 m +223.920 223.920 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +218.880 312.480 m +218.880 316.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +215.280 319.680 m +222.480 319.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +218.880 319.680 m +218.880 316.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +210.49 320.95 Td +(+3.3V) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 421.75 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 420.480 m +542.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 421.75 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 420.480 m +542.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 414.55 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 413.280 m +542.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 414.55 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 413.280 m +542.880 413.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 427.680 m +542.880 427.680 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 427.680 m +542.880 427.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 427.680 m +535.680 427.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +535.680 434.880 m +535.680 420.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +529.200 428.400 m +529.200 426.960 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +531.360 430.560 m +531.360 424.800 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +533.520 432.720 m +533.520 422.640 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 434.880 m +542.880 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +593.280 434.880 m +542.880 434.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 434.880 m +542.880 438.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +539.280 442.080 m +546.480 442.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +542.880 442.080 m +542.880 438.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +537.14 443.35 Td +(+5V) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 434.880 m +686.880 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 434.880 m +686.880 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 428.95 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 427.680 m +686.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 428.95 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 427.680 m +686.880 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 421.75 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 420.480 m +686.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 421.75 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 420.480 m +686.880 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 414.55 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 413.280 m +686.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 414.55 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 413.280 m +686.880 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 407.35 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 406.080 m +686.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 407.35 Td +(SYS_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 406.080 m +686.880 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 400.15 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 398.880 m +686.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 400.15 Td +(SYS_SWC) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +636.480 398.880 m +686.880 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 407.35 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 406.080 m +593.280 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 407.35 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 406.080 m +593.280 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 400.15 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 398.880 m +593.280 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 400.15 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 398.880 m +593.280 398.880 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +600.48 442.08 28.80 -50.40 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +603.14 431.89 Td +(1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +596.59 435.49 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +593.280 434.880 m +600.480 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +619.55 395.89 Td +(12) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.64 399.49 Td +(12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 398.880 m +629.280 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +603.14 424.69 Td +(3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +596.59 428.29 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +593.280 427.680 m +600.480 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +619.55 403.09 Td +(10) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.64 406.69 Td +(10) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 406.080 m +629.280 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +603.14 417.49 Td +(5) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +596.59 421.09 Td +(5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +593.280 420.480 m +600.480 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +623.08 410.29 Td +(8) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.64 413.89 Td +(8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 413.280 m +629.280 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +603.14 410.29 Td +(7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +596.59 413.89 Td +(7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +593.280 413.280 m +600.480 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +623.08 417.49 Td +(6) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.64 421.09 Td +(6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 420.480 m +629.280 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +603.14 403.09 Td +(9) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +596.59 406.69 Td +(9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +593.280 406.080 m +600.480 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +623.08 424.69 Td +(4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.64 428.29 Td +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 427.680 m +629.280 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +603.14 395.89 Td +(11) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +593.06 399.49 Td +(11) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +593.280 398.880 m +600.480 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +623.08 431.89 Td +(2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +629.64 435.49 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +636.480 434.880 m +629.280 434.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +[] 0 d +605.16 438.48 m 605.16 439.08 604.68 439.56 604.08 439.56 c +603.48 439.56 603.00 439.08 603.00 438.48 c +603.00 437.88 603.48 437.40 604.08 437.40 c +604.68 437.40 605.16 437.88 605.16 438.48 c +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +600.48 444.86 Td +(HDR) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +294.48 443.52 64.80 -80.64 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 432.55 Td +(BOOT0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 436.15 Td +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 434.880 m +294.480 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 425.35 Td +(PF0/XIN) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 428.95 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 427.680 m +294.480 427.680 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +277.200 430.560 m +282.960 424.800 l +277.200 424.800 m +282.960 430.560 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 418.15 Td +(PF1/XOUT) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 421.75 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 420.480 m +294.480 420.480 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +277.200 423.360 m +282.960 417.600 l +277.200 417.600 m +282.960 423.360 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 410.95 Td +(NRST) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 414.55 Td +(4) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 413.280 m +294.480 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 403.75 Td +(VDDA) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 407.35 Td +(5) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 406.080 m +294.480 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 396.55 Td +(PA0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 400.15 Td +(6) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 398.880 m +294.480 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 389.35 Td +(PA1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 392.95 Td +(7) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 391.680 m +294.480 391.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 382.15 Td +(PA2) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 385.75 Td +(8) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 384.480 m +294.480 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 374.95 Td +(PA3) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +287.35 378.55 Td +(9) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 377.280 m +294.480 377.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +298.08 367.75 Td +(PA4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +283.82 371.35 Td +(10) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +280.080 370.080 m +294.480 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +343.67 367.75 Td +(PA5) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 371.35 Td +(11) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 370.080 m +359.280 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +343.67 374.95 Td +(PA6) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 378.55 Td +(12) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 377.280 m +359.280 377.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +343.67 382.15 Td +(PA7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 385.75 Td +(13) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 384.480 m +359.280 384.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +343.67 389.35 Td +(PB1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 392.95 Td +(14) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 391.680 m +359.280 391.680 l +S +1 J +1 j +0.72 w +0.20 0.80 0.20 RG +[] 0 d +370.800 394.560 m +376.560 388.800 l +370.800 388.800 m +376.560 394.560 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +342.97 396.55 Td +(VSS) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 400.15 Td +(15) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 398.880 m +359.280 398.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +342.27 403.75 Td +(VDD) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 407.35 Td +(16) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 406.080 m +359.280 406.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +340.14 410.95 Td +(PA11) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 414.55 Td +(17) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 413.280 m +359.280 413.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +340.14 418.15 Td +(PA12) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 421.75 Td +(18) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 420.480 m +359.280 420.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +340.14 425.35 Td +(PA13) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 428.95 Td +(19) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 427.680 m +359.280 427.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +340.14 432.55 Td +(PA14) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +362.88 436.15 Td +(20) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +373.680 434.880 m +359.280 434.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +[] 0 d +299.16 439.92 m 299.16 440.52 298.68 441.00 298.08 441.00 c +297.48 441.00 297.00 440.52 297.00 439.92 c +297.00 439.32 297.48 438.84 298.08 438.84 c +298.68 438.84 299.16 439.32 299.16 439.92 c +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +[] 0 d +299.16 439.92 m 299.16 440.52 298.68 441.00 298.08 441.00 c +297.48 441.00 297.00 440.52 297.00 439.92 c +297.00 439.32 297.48 438.84 298.08 438.84 c +298.68 438.84 299.16 439.32 299.16 439.92 c +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +294.48 446.23 Td +(U1) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +373.680 406.080 m +416.880 406.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +373.680 406.080 m +416.880 406.080 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +251.28 437.76 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +272.880 434.880 m +265.680 434.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +244.080 434.880 m +251.280 434.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +251.28 440.49 Td +(R8) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +251.28 425.35 Td +(10k) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +272.880 434.880 m +280.080 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +272.880 434.880 m +280.080 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +244.080 434.880 m +236.880 434.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +244.080 434.880 m +236.880 434.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +236.880 434.880 m +229.680 434.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +229.680 442.080 m +229.680 427.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +223.200 435.600 m +223.200 434.160 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +225.360 437.760 m +225.360 432.000 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +227.520 439.920 m +227.520 429.840 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +686.880 434.880 m +686.880 438.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +683.280 442.080 m +690.480 442.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +686.880 442.080 m +686.880 438.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +678.49 443.35 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 312.480 m +398.880 316.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +395.280 319.680 m +402.480 319.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +398.880 319.680 m +398.880 316.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +390.49 320.95 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +344.880 312.480 m +344.880 316.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +341.280 319.680 m +348.480 319.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +344.880 319.680 m +344.880 316.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +336.49 320.95 Td +(+3.3V) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +344.880 312.480 m +344.880 290.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +344.880 312.480 m +344.880 290.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 312.480 m +398.880 290.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 312.480 m +398.880 290.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 290.880 m +218.880 312.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 290.880 m +218.880 312.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 263.35 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 262.080 m +265.680 262.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 263.35 Td +(SYS_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 262.080 m +265.680 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 233.280 m +218.880 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +218.880 233.280 m +218.880 233.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +348.48 220.15 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +380.880 218.880 m +344.880 218.880 l +S +344.880 218.880 m +344.880 233.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +348.48 220.15 Td +(UART_TXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +380.880 218.880 m +344.880 218.880 l +S +344.880 218.880 m +344.880 233.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 220.15 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 218.880 m +398.880 218.880 l +S +398.880 218.880 m +398.880 233.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +402.48 220.15 Td +(UART_RXD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +434.880 218.880 m +398.880 218.880 l +S +398.880 218.880 m +398.880 233.280 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +110.88 560.16 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 557.280 m +125.280 557.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +103.680 557.280 m +110.880 557.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +110.88 547.75 Td +(R10) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +125.28 547.75 Td +(5.1k) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 557.280 m +132.480 557.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 557.280 m +132.480 557.280 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +110.88 516.96 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +132.480 514.080 m +125.280 514.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +103.680 514.080 m +110.880 514.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +110.88 518.95 Td +(R11) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +125.28 518.95 Td +(5.1k) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 514.080 m +132.480 514.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +132.480 514.080 m +132.480 514.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 371.35 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 370.080 m +236.880 370.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +236.88 371.35 Td +(JTAG_RST) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +280.080 370.080 m +236.880 370.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +240.480 564.480 m +233.280 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +197.280 564.480 m +204.480 564.480 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +204.480 564.480 m +233.280 564.480 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +208.08 568.08 22.32 -7.20 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +208.08 569.35 Td +(F0) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +288.00 283.68 5.76 -14.40 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 290.880 m +290.880 283.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 262.080 m +290.880 269.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +298.08 277.75 Td +(R1) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +298.08 270.55 Td +(1k) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 289.61 294.48 Tm +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.880 290.880 m +290.880 326.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +0.00 1.00 -1.00 0.00 289.61 294.48 Tm +(LED_SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.880 290.880 m +290.880 326.880 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 564.480 m +182.880 564.480 l +S +197.280 564.480 m +182.880 564.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +89.280 564.480 m +182.880 564.480 l +S +197.280 564.480 m +182.880 564.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +182.880 564.480 m +182.880 568.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +179.280 571.680 m +186.480 571.680 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +182.880 571.680 m +182.880 568.080 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +174.23 572.95 Td +(VBUS) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 233.280 m +290.880 244.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 262.080 m +290.880 251.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +285.840 244.080 m +295.920 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +286.560 251.280 m +290.880 244.080 l +295.920 251.280 l +286.560 251.280 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +306.000 241.920 m +304.560 244.800 l +303.120 243.360 l +306.000 241.920 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 0.00 1.00 rg +[] 0 d +303.120 239.040 m +301.680 241.920 l +300.240 240.480 l +303.120 239.040 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +300.960 246.960 m +303.840 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +298.080 244.080 m +300.960 241.200 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +298.08 252.55 Td +(SWD) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.880 262.080 m +290.880 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.880 262.080 m +290.880 262.080 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +607.68 365.76 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 362.880 m +622.080 362.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +600.480 362.880 m +607.680 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +596.88 364.15 Td +(R4) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +625.68 364.15 Td +(100) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +607.68 358.56 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 355.680 m +622.080 355.680 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +600.480 355.680 m +607.680 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +596.88 356.95 Td +(R5) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +625.68 356.95 Td +(100) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +607.68 351.36 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 348.480 m +622.080 348.480 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +600.480 348.480 m +607.680 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +596.88 349.75 Td +(R6) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +625.68 349.75 Td +(100) Tj +ET +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +607.68 344.16 14.40 -5.76 re +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +629.280 341.280 m +622.080 341.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +600.480 341.280 m +607.680 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +596.88 342.55 Td +(R7) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +625.68 342.55 Td +(100) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 364.15 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +600.480 362.880 m +542.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 364.15 Td +(JTAG_TMS) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +600.480 362.880 m +542.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 356.95 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 355.680 m +600.480 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 356.95 Td +(JTAG_TCK) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 355.680 m +600.480 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 349.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +600.480 348.480 m +542.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 349.75 Td +(JTAG_TDI) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +600.480 348.480 m +542.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 342.55 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 341.280 m +600.480 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +542.88 342.55 Td +(JTAG_TDO) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +542.880 341.280 m +600.480 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 364.15 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 362.880 m +686.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 364.15 Td +(JTAG_TMS_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 362.880 m +686.880 362.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 356.95 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +686.880 355.680 m +629.280 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 356.95 Td +(JTAG_TCK_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +686.880 355.680 m +629.280 355.680 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 349.75 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 348.480 m +686.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 349.75 Td +(JTAG_TDI_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +629.280 348.480 m +686.880 348.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 342.55 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +686.880 341.280 m +629.280 341.280 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 1.000 rg +643.68 342.55 Td +(JTAG_TDO_O) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +686.880 341.280 m +629.280 341.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 233.280 m +290.880 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +283.680 226.080 m +298.080 226.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +290.160 219.600 m +291.600 219.600 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +288.000 221.760 m +293.760 221.760 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +285.840 223.920 m +295.920 223.920 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.880 233.280 m +290.880 233.280 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +290.880 233.280 m +290.880 233.280 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +344.880 233.280 m +344.880 244.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +344.880 262.080 m +344.880 251.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +339.840 244.080 m +349.920 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +340.560 251.280 m +344.880 244.080 l +349.920 251.280 l +340.560 251.280 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +360.000 241.920 m +358.560 244.800 l +357.120 243.360 l +360.000 241.920 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +357.120 239.040 m +355.680 241.920 l +354.240 240.480 l +357.120 239.040 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +354.960 246.960 m +357.840 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +352.080 244.080 m +354.960 241.200 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +352.08 252.55 Td +(UTX) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +344.880 262.080 m +344.880 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +344.880 262.080 m +344.880 262.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 233.280 m +398.880 244.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +398.880 262.080 m +398.880 251.280 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +393.840 244.080 m +403.920 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +394.560 251.280 m +398.880 244.080 l +403.920 251.280 l +394.560 251.280 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +414.000 241.920 m +412.560 244.800 l +411.120 243.360 l +414.000 241.920 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 1.00 0.00 rg +[] 0 d +411.120 239.040 m +409.680 241.920 l +408.240 240.480 l +411.120 239.040 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +408.960 246.960 m +411.840 244.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +406.080 244.080 m +408.960 241.200 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +406.08 252.55 Td +(URX) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 262.080 m +398.880 262.080 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +398.880 262.080 m +398.880 262.080 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 532.080 m +542.880 542.880 l +S +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +542.880 560.880 m +542.880 550.080 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +537.840 542.880 m +547.920 542.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +1.00 0.00 0.00 rg +[] 0 d +538.560 550.080 m +542.880 542.880 l +547.920 550.080 l +538.560 550.080 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +1.00 0.00 0.00 rg +[] 0 d +558.000 540.720 m +556.560 543.600 l +555.120 542.160 l +558.000 540.720 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +1.00 0.00 0.00 rg +[] 0 d +555.120 537.840 m +553.680 540.720 l +552.240 539.280 l +555.120 537.840 l +B +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +552.960 545.760 m +555.840 542.880 l +S +1 J +1 j +0.72 w +0.63 0.00 0.00 RG +0.00 g +[] 0 d +550.080 542.880 m +552.960 540.000 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +550.08 551.35 Td +(PWR) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +0.00 1.00 -1.00 0.00 327.77 543.66 Tm +(GND) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +0.00 1.00 -1.00 0.00 324.89 531.49 Tm +(1) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +326.880 528.480 m +326.880 542.880 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +328.67 562.21 Td +(VOUT) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +354.96 565.09 Td +(2) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +362.880 564.480 m +348.480 564.480 l +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +307.44 562.21 Td +(VIN) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 g +295.27 565.09 Td +(3) Tj +ET +1 J +1 j +0.72 w +0.53 0.00 0.00 RG +[] 0 d +290.880 564.480 m +305.280 564.480 l +S +2 J +0 j +72 M +0.72 w +0.63 0.00 0.00 RG +[] 0 d +305.28 571.68 43.20 -28.80 re +S +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +305.28 572.95 Td +(V0) Tj +ET +7.20 w +BT +/F2 6.352940820080207 Tf +7.20 TL +0.000 0.000 0.502 rg +326.88 572.95 Td +(HT7233) Tj +ET +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +326.880 528.480 m +326.880 528.480 l +S +1 J +1 j +0.72 w +0.00 0.53 0.00 RG +0.00 g +[] 0 d +326.880 528.480 m +326.880 528.480 l +S +0.80 0.00 0.00 rg +26.28 564.48 m 26.28 565.47 25.47 566.28 24.48 566.28 c +23.49 566.28 22.68 565.47 22.68 564.48 c +22.68 563.49 23.49 562.68 24.48 562.68 c +25.47 562.68 26.28 563.49 26.28 564.48 c +f +0.80 0.00 0.00 rg +26.28 499.68 m 26.28 500.67 25.47 501.48 24.48 501.48 c +23.49 501.48 22.68 500.67 22.68 499.68 c +22.68 498.69 23.49 497.88 24.48 497.88 c +25.47 497.88 26.28 498.69 26.28 499.68 c +f +0.80 0.00 0.00 rg +26.28 492.48 m 26.28 493.47 25.47 494.28 24.48 494.28 c +23.49 494.28 22.68 493.47 22.68 492.48 c +22.68 491.49 23.49 490.68 24.48 490.68 c +25.47 490.68 26.28 491.49 26.28 492.48 c +f +0.80 0.00 0.00 rg +98.28 535.68 m 98.28 536.67 97.47 537.48 96.48 537.48 c +95.49 537.48 94.68 536.67 94.68 535.68 c +94.68 534.69 95.49 533.88 96.48 533.88 c +97.47 533.88 98.28 534.69 98.28 535.68 c +f +0.80 0.00 0.00 rg +105.48 528.48 m 105.48 529.47 104.67 530.28 103.68 530.28 c +102.69 530.28 101.88 529.47 101.88 528.48 c +101.88 527.49 102.69 526.68 103.68 526.68 c +104.67 526.68 105.48 527.49 105.48 528.48 c +f +0.80 0.00 0.00 rg +256.68 564.48 m 256.68 565.47 255.87 566.28 254.88 566.28 c +253.89 566.28 253.08 565.47 253.08 564.48 c +253.08 563.49 253.89 562.68 254.88 562.68 c +255.87 562.68 256.68 563.49 256.68 564.48 c +f +0.80 0.00 0.00 rg +400.68 564.48 m 400.68 565.47 399.87 566.28 398.88 566.28 c +397.89 566.28 397.08 565.47 397.08 564.48 c +397.08 563.49 397.89 562.68 398.88 562.68 c +399.87 562.68 400.68 563.49 400.68 564.48 c +f +0.80 0.00 0.00 rg +436.68 564.48 m 436.68 565.47 435.87 566.28 434.88 566.28 c +433.89 566.28 433.08 565.47 433.08 564.48 c +433.08 563.49 433.89 562.68 434.88 562.68 c +435.87 562.68 436.68 563.49 436.68 564.48 c +f +0.80 0.00 0.00 rg +472.68 564.48 m 472.68 565.47 471.87 566.28 470.88 566.28 c +469.89 566.28 469.08 565.47 469.08 564.48 c +469.08 563.49 469.89 562.68 470.88 562.68 c +471.87 562.68 472.68 563.49 472.68 564.48 c +f +0.80 0.00 0.00 rg +220.68 262.08 m 220.68 263.07 219.87 263.88 218.88 263.88 c +217.89 263.88 217.08 263.07 217.08 262.08 c +217.08 261.09 217.89 260.28 218.88 260.28 c +219.87 260.28 220.68 261.09 220.68 262.08 c +f +0.80 0.00 0.00 rg +184.68 564.48 m 184.68 565.47 183.87 566.28 182.88 566.28 c +181.89 566.28 181.08 565.47 181.08 564.48 c +181.08 563.49 181.89 562.68 182.88 562.68 c +183.87 562.68 184.68 563.49 184.68 564.48 c +f +Q +endstream +endobj +1 0 obj +<> +endobj +5 0 obj +<< +/Type /FontDescriptor +/FontName /SimSun +/FontBBox [-8 -145 1000 859] +/Flags 32 +/StemV 0 +/ItalicAngle 0 +/Ascent 859 +/Descent -141 +/CapHeight 175 +>> +endobj +6 0 obj +<< +/Type /Font +/BaseFont /SimSun +/FontDescriptor 5 0 R +/W [1 95 500] +/Subtype /CIDFontType2 +/CIDSystemInfo +<< +/Ordering (GB1) +/Registry (Adobe) +/Supplement 2 +>> +>> +endobj +7 0 obj +<< +/Type /Font +/Subtype /Type0 +/BaseFont /SimSun +/Encoding /UniGB-UCS2-H +/DescendantFonts [6 0 R] +>> +endobj +8 0 obj +<< +/Descent -325 +/CapHeight 500 +/StemV 80 +/Type /FontDescriptor +/Flags 32 +/FontBBox [-665 -325 2000 1006] +/FontName /Arial +/ItalicAngle 0 +/Ascent 1006 +>> +endobj +9 0 obj +<> +endobj +10 0 obj +<< +/Type /FontDescriptor +/FontName /SimHei +/FontBBox [-11 -156 996 859] +/Flags 32 +/StemV 0 +/ItalicAngle 0 +/Ascent 859 +/Descent -140 +/CapHeight 687 +>> +endobj +11 0 obj +<< +/Type /Font +/BaseFont /SimHei +/FontDescriptor 10 0 R +/W [1 95 500 738 813 1000] +/Subtype /CIDFontType2 +/CIDSystemInfo +<< +/Ordering (GB1) +/Registry (Adobe) +/Supplement 2 +>> +>> +endobj +12 0 obj +<< +/Type /Font +/Subtype /Type0 +/BaseFont /SimHei +/Encoding /UniGB-UCS2-H +/DescendantFonts [11 0 R] +>> +endobj +2 0 obj +<< +/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << +/F1 7 0 R +/F2 9 0 R +/F3 12 0 R +>> +/XObject << +>> +>> +endobj +115 0 obj +<> endobj +116 0 obj +<> endobj +117 0 obj +<> endobj +118 0 obj +<> endobj +119 0 obj +<> endobj +120 0 obj +<> endobj +121 0 obj +<> endobj +122 0 obj +<> endobj +123 0 obj +<> endobj +124 0 obj +<> endobj +125 0 obj +<> endobj +126 0 obj +<> endobj +127 0 obj +<> endobj +128 0 obj +<> endobj +129 0 obj +<> endobj +130 0 obj +<> endobj +131 0 obj +<> endobj +132 0 obj +<> endobj +133 0 obj +<> endobj +134 0 obj +<> endobj +135 0 obj +<> endobj +136 0 obj +<> endobj +137 0 obj +<> endobj +138 0 obj +<> endobj +139 0 obj +<> endobj +140 0 obj +<> endobj +141 0 obj +<> endobj +142 0 obj +<> endobj +143 0 obj +<> endobj +144 0 obj +<> endobj +145 0 obj +<> endobj +146 0 obj +<> endobj +147 0 obj +<> endobj +148 0 obj +<> endobj +149 0 obj +<> endobj +150 0 obj +<> endobj +151 0 obj +<> endobj +152 0 obj +<> endobj +153 0 obj +<> endobj +154 0 obj +<> endobj +155 0 obj +<> endobj +156 0 obj +<> endobj +157 0 obj +<> endobj +158 0 obj +<> endobj +159 0 obj +<> endobj +160 0 obj +<> endobj +161 0 obj +<> endobj +162 0 obj +<> endobj +163 0 obj +<> endobj +164 0 obj +<> endobj +165 0 obj +<> endobj +166 0 obj +<> endobj +167 0 obj +<> endobj +168 0 obj +<> endobj +169 0 obj +<> endobj +170 0 obj +<> endobj +171 0 obj +<> endobj +172 0 obj +<> endobj +173 0 obj +<> endobj +174 0 obj +<> endobj +175 0 obj +<> endobj +176 0 obj +<> endobj +177 0 obj +<> endobj +178 0 obj +<> endobj +179 0 obj +<> endobj +180 0 obj +<> endobj +181 0 obj +<> endobj +182 0 obj +<> endobj +183 0 obj +<> endobj +184 0 obj +<> endobj +185 0 obj +<> endobj +186 0 obj +<> endobj +187 0 obj +<> endobj +188 0 obj +<> endobj +189 0 obj +<> endobj +190 0 obj +<> endobj +191 0 obj +<> endobj +192 0 obj +<> endobj +193 0 obj +<> endobj +194 0 obj +<> endobj +195 0 obj +<> endobj +196 0 obj +<> endobj +197 0 obj +<> endobj +198 0 obj +<> endobj +199 0 obj +<> endobj +200 0 obj +<> endobj +201 0 obj +<> endobj +202 0 obj +<> endobj +203 0 obj +<> endobj +204 0 obj +<> endobj +205 0 obj +<> endobj +206 0 obj +<> endobj +207 0 obj +<> endobj +208 0 obj +<> endobj +209 0 obj +<> endobj +210 0 obj +<> endobj +211 0 obj +<> endobj +212 0 obj +<> endobj +213 0 obj +<> endobj +214 0 obj +<> endobj +215 0 obj +<> endobj +216 0 obj +<> endobj +217 0 obj +<> endobj +218 0 obj +<> endobj +219 0 obj +<> endobj +220 0 obj +<> endobj +221 0 obj +<> endobj +222 0 obj +<> endobj +223 0 obj +<> endobj +224 0 obj +<> endobj +225 0 obj +<> endobj +226 0 obj +<> endobj +227 0 obj +<> endobj +228 0 obj +<> endobj +229 0 obj +<> endobj +230 0 obj +<> endobj +231 0 obj +<> endobj +232 0 obj +<> endobj +233 0 obj +<> endobj +234 0 obj +<> endobj +235 0 obj +<> endobj +236 0 obj +<> endobj +237 0 obj +<> endobj +238 0 obj +<> endobj +239 0 obj +<> endobj +240 0 obj +<> endobj +241 0 obj +<> endobj +242 0 obj +<> endobj +243 0 obj +<> endobj +244 0 obj +<> endobj +245 0 obj +<> endobj +246 0 obj +<> endobj +247 0 obj +<> endobj +248 0 obj +<> endobj +249 0 obj +<> endobj +250 0 obj +<> endobj +251 0 obj +<> endobj +252 0 obj +<> endobj +253 0 obj +<> endobj +254 0 obj +<> endobj + +13 0 obj +<< +/Type /Outlines +/First 14 0 R +/Last 16 0 R +/Count 101 +>> +endobj + +14 0 obj +<< +/Title (Pages) +/Parent 13 0 R +/Next 16 0 R +/First 15 0 R +/Last 15 0 R +/Count 1 +>> +endobj + +16 0 obj +<< +/Title (Net) +/Parent 13 0 R +/Prev 14 0 R +/First 17 0 R +/Last 112 0 R +/Count 98 +>> +endobj + +15 0 obj +<< +/Title (SCH_DAPLink 1-Core) +/Parent 14 0 R +/Dest [3 0 R /XYZ 0 599.76 0] +>> +endobj + +17 0 obj +<< +/Title (+3.3V) +/Parent 16 0 R +/Next 25 0 R +/First 18 0 R +/Last 24 0 R +/Count 7 +>> +endobj + +25 0 obj +<< +/Title (+5V) +/Parent 16 0 R +/Prev 17 0 R +/Next 28 0 R +/First 26 0 R +/Last 27 0 R +/Count 2 +>> +endobj + +28 0 obj +<< +/Title ($1N2511) +/Parent 16 0 R +/Prev 25 0 R +/Next 30 0 R +/First 29 0 R +/Last 29 0 R +/Count 1 +>> +endobj + +30 0 obj +<< +/Title ($1N2512) +/Parent 16 0 R +/Prev 28 0 R +/Next 32 0 R +/First 31 0 R +/Last 31 0 R +/Count 1 +>> +endobj + +32 0 obj +<< +/Title ($1N2528) +/Parent 16 0 R +/Prev 30 0 R +/Next 34 0 R +/First 33 0 R +/Last 33 0 R +/Count 1 +>> +endobj + +34 0 obj +<< +/Title ($1N4668) +/Parent 16 0 R +/Prev 32 0 R +/Next 36 0 R +/First 35 0 R +/Last 35 0 R +/Count 1 +>> +endobj + +36 0 obj +<< +/Title ($1N8351) +/Parent 16 0 R +/Prev 34 0 R +/Next 38 0 R +/First 37 0 R +/Last 37 0 R +/Count 1 +>> +endobj + +38 0 obj +<< +/Title ($1N9627) +/Parent 16 0 R +/Prev 36 0 R +/Next 40 0 R +/First 39 0 R +/Last 39 0 R +/Count 1 +>> +endobj + +40 0 obj +<< +/Title ($1N9652) +/Parent 16 0 R +/Prev 38 0 R +/Next 42 0 R +/First 41 0 R +/Last 41 0 R +/Count 1 +>> +endobj + +42 0 obj +<< +/Title (GND) +/Parent 16 0 R +/Prev 40 0 R +/Next 59 0 R +/First 43 0 R +/Last 58 0 R +/Count 16 +>> +endobj + +59 0 obj +<< +/Title (JTAG_RST) +/Parent 16 0 R +/Prev 42 0 R +/Next 62 0 R +/First 60 0 R +/Last 61 0 R +/Count 2 +>> +endobj + +62 0 obj +<< +/Title (JTAG_TCK) +/Parent 16 0 R +/Prev 59 0 R +/Next 65 0 R +/First 63 0 R +/Last 64 0 R +/Count 2 +>> +endobj + +65 0 obj +<< +/Title (JTAG_TCK_O) +/Parent 16 0 R +/Prev 62 0 R +/Next 68 0 R +/First 66 0 R +/Last 67 0 R +/Count 2 +>> +endobj + +68 0 obj +<< +/Title (JTAG_TDI) +/Parent 16 0 R +/Prev 65 0 R +/Next 71 0 R +/First 69 0 R +/Last 70 0 R +/Count 2 +>> +endobj + +71 0 obj +<< +/Title (JTAG_TDI_O) +/Parent 16 0 R +/Prev 68 0 R +/Next 74 0 R +/First 72 0 R +/Last 73 0 R +/Count 2 +>> +endobj + +74 0 obj +<< +/Title (JTAG_TDO) +/Parent 16 0 R +/Prev 71 0 R +/Next 77 0 R +/First 75 0 R +/Last 76 0 R +/Count 2 +>> +endobj + +77 0 obj +<< +/Title (JTAG_TDO_O) +/Parent 16 0 R +/Prev 74 0 R +/Next 80 0 R +/First 78 0 R +/Last 79 0 R +/Count 2 +>> +endobj + +80 0 obj +<< +/Title (JTAG_TMS) +/Parent 16 0 R +/Prev 77 0 R +/Next 83 0 R +/First 81 0 R +/Last 82 0 R +/Count 2 +>> +endobj + +83 0 obj +<< +/Title (JTAG_TMS_O) +/Parent 16 0 R +/Prev 80 0 R +/Next 86 0 R +/First 84 0 R +/Last 85 0 R +/Count 2 +>> +endobj + +86 0 obj +<< +/Title (LED_SWD) +/Parent 16 0 R +/Prev 83 0 R +/Next 89 0 R +/First 87 0 R +/Last 88 0 R +/Count 2 +>> +endobj + +89 0 obj +<< +/Title (SYS_RST) +/Parent 16 0 R +/Prev 86 0 R +/Next 92 0 R +/First 90 0 R +/Last 91 0 R +/Count 2 +>> +endobj + +92 0 obj +<< +/Title (SYS_SWC) +/Parent 16 0 R +/Prev 89 0 R +/Next 95 0 R +/First 93 0 R +/Last 94 0 R +/Count 2 +>> +endobj + +95 0 obj +<< +/Title (SYS_SWD) +/Parent 16 0 R +/Prev 92 0 R +/Next 98 0 R +/First 96 0 R +/Last 97 0 R +/Count 2 +>> +endobj + +98 0 obj +<< +/Title (UART_RXD) +/Parent 16 0 R +/Prev 95 0 R +/Next 102 0 R +/First 99 0 R +/Last 101 0 R +/Count 3 +>> +endobj + +102 0 obj +<< +/Title (UART_TXD) +/Parent 16 0 R +/Prev 98 0 R +/Next 106 0 R +/First 103 0 R +/Last 105 0 R +/Count 3 +>> +endobj + +106 0 obj +<< +/Title (USB_D-) +/Parent 16 0 R +/Prev 102 0 R +/Next 109 0 R +/First 107 0 R +/Last 108 0 R +/Count 2 +>> +endobj + +109 0 obj +<< +/Title (USB_D+) +/Parent 16 0 R +/Prev 106 0 R +/Next 112 0 R +/First 110 0 R +/Last 111 0 R +/Count 2 +>> +endobj + +112 0 obj +<< +/Title (VBUS) +/Parent 16 0 R +/Prev 109 0 R +/First 113 0 R +/Last 114 0 R +/Count 2 +>> +endobj + +18 0 obj +<< +/Title ($1N2526) +/Parent 17 0 R +/Next 19 0 R +/A 115 0 R +>> +endobj + +19 0 obj +<< +/Title ($1N2540) +/Parent 17 0 R +/Prev 18 0 R +/Next 20 0 R +/A 117 0 R +>> +endobj + +20 0 obj +<< +/Title ($1N2561) +/Parent 17 0 R +/Prev 19 0 R +/Next 21 0 R +/A 119 0 R +>> +endobj + +21 0 obj +<< +/Title ($1N2566) +/Parent 17 0 R +/Prev 20 0 R +/Next 22 0 R +/A 121 0 R +>> +endobj + +22 0 obj +<< +/Title ($1N2567) +/Parent 17 0 R +/Prev 21 0 R +/Next 23 0 R +/A 123 0 R +>> +endobj + +23 0 obj +<< +/Title ($1N2572) +/Parent 17 0 R +/Prev 22 0 R +/Next 24 0 R +/A 125 0 R +>> +endobj + +24 0 obj +<< +/Title ($1N4249) +/Parent 17 0 R +/Prev 23 0 R +/A 127 0 R +>> +endobj + +26 0 obj +<< +/Title ($1N2519) +/Parent 25 0 R +/Next 27 0 R +/A 129 0 R +>> +endobj + +27 0 obj +<< +/Title ($1N2571) +/Parent 25 0 R +/Prev 26 0 R +/A 131 0 R +>> +endobj + +29 0 obj +<< +/Title ($1N2511) +/Parent 28 0 R +/A 133 0 R +>> +endobj + +31 0 obj +<< +/Title ($1N2512) +/Parent 30 0 R +/A 135 0 R +>> +endobj + +33 0 obj +<< +/Title ($1N2528) +/Parent 32 0 R +/A 137 0 R +>> +endobj + +35 0 obj +<< +/Title ($1N4668) +/Parent 34 0 R +/A 139 0 R +>> +endobj + +37 0 obj +<< +/Title ($1N8351) +/Parent 36 0 R +/A 141 0 R +>> +endobj + +39 0 obj +<< +/Title ($1N9627) +/Parent 38 0 R +/A 143 0 R +>> +endobj + +41 0 obj +<< +/Title ($1N9652) +/Parent 40 0 R +/A 145 0 R +>> +endobj + +43 0 obj +<< +/Title ($1N2513) +/Parent 42 0 R +/Next 44 0 R +/A 147 0 R +>> +endobj + +44 0 obj +<< +/Title ($1N2514) +/Parent 42 0 R +/Prev 43 0 R +/Next 45 0 R +/A 149 0 R +>> +endobj + +45 0 obj +<< +/Title ($1N2516) +/Parent 42 0 R +/Prev 44 0 R +/Next 46 0 R +/A 151 0 R +>> +endobj + +46 0 obj +<< +/Title ($1N2520) +/Parent 42 0 R +/Prev 45 0 R +/Next 47 0 R +/A 153 0 R +>> +endobj + +47 0 obj +<< +/Title ($1N2521) +/Parent 42 0 R +/Prev 46 0 R +/Next 48 0 R +/A 155 0 R +>> +endobj + +48 0 obj +<< +/Title ($1N2522) +/Parent 42 0 R +/Prev 47 0 R +/Next 49 0 R +/A 157 0 R +>> +endobj + +49 0 obj +<< +/Title ($1N2523) +/Parent 42 0 R +/Prev 48 0 R +/Next 50 0 R +/A 159 0 R +>> +endobj + +50 0 obj +<< +/Title ($1N2525) +/Parent 42 0 R +/Prev 49 0 R +/Next 51 0 R +/A 161 0 R +>> +endobj + +51 0 obj +<< +/Title ($1N2542) +/Parent 42 0 R +/Prev 50 0 R +/Next 52 0 R +/A 163 0 R +>> +endobj + +52 0 obj +<< +/Title ($1N2559) +/Parent 42 0 R +/Prev 51 0 R +/Next 53 0 R +/A 165 0 R +>> +endobj + +53 0 obj +<< +/Title ($1N2570) +/Parent 42 0 R +/Prev 52 0 R +/Next 54 0 R +/A 167 0 R +>> +endobj + +54 0 obj +<< +/Title ($1N4695) +/Parent 42 0 R +/Prev 53 0 R +/Next 55 0 R +/A 169 0 R +>> +endobj + +55 0 obj +<< +/Title ($1N5710) +/Parent 42 0 R +/Prev 54 0 R +/Next 56 0 R +/A 171 0 R +>> +endobj + +56 0 obj +<< +/Title ($1N5764) +/Parent 42 0 R +/Prev 55 0 R +/Next 57 0 R +/A 173 0 R +>> +endobj + +57 0 obj +<< +/Title ($1N9579) +/Parent 42 0 R +/Prev 56 0 R +/Next 58 0 R +/A 175 0 R +>> +endobj + +58 0 obj +<< +/Title ($1N10526) +/Parent 42 0 R +/Prev 57 0 R +/A 177 0 R +>> +endobj + +60 0 obj +<< +/Title ($1N2573) +/Parent 59 0 R +/Next 61 0 R +/A 179 0 R +>> +endobj + +61 0 obj +<< +/Title ($1N6511) +/Parent 59 0 R +/Prev 60 0 R +/A 181 0 R +>> +endobj + +63 0 obj +<< +/Title ($1N2539) +/Parent 62 0 R +/Next 64 0 R +/A 183 0 R +>> +endobj + +64 0 obj +<< +/Title ($1N8476) +/Parent 62 0 R +/Prev 63 0 R +/A 185 0 R +>> +endobj + +66 0 obj +<< +/Title ($1N2569) +/Parent 65 0 R +/Next 67 0 R +/A 187 0 R +>> +endobj + +67 0 obj +<< +/Title ($1N8484) +/Parent 65 0 R +/Prev 66 0 R +/A 189 0 R +>> +endobj + +69 0 obj +<< +/Title ($1N2537) +/Parent 68 0 R +/Next 70 0 R +/A 191 0 R +>> +endobj + +70 0 obj +<< +/Title ($1N8478) +/Parent 68 0 R +/Prev 69 0 R +/A 193 0 R +>> +endobj + +72 0 obj +<< +/Title ($1N2575) +/Parent 71 0 R +/Next 73 0 R +/A 195 0 R +>> +endobj + +73 0 obj +<< +/Title ($1N8486) +/Parent 71 0 R +/Prev 72 0 R +/A 197 0 R +>> +endobj + +75 0 obj +<< +/Title ($1N2530) +/Parent 74 0 R +/Next 76 0 R +/A 199 0 R +>> +endobj + +76 0 obj +<< +/Title ($1N8480) +/Parent 74 0 R +/Prev 75 0 R +/A 201 0 R +>> +endobj + +78 0 obj +<< +/Title ($1N2574) +/Parent 77 0 R +/Next 79 0 R +/A 203 0 R +>> +endobj + +79 0 obj +<< +/Title ($1N8488) +/Parent 77 0 R +/Prev 78 0 R +/A 205 0 R +>> +endobj + +81 0 obj +<< +/Title ($1N2538) +/Parent 80 0 R +/Next 82 0 R +/A 207 0 R +>> +endobj + +82 0 obj +<< +/Title ($1N8474) +/Parent 80 0 R +/Prev 81 0 R +/A 209 0 R +>> +endobj + +84 0 obj +<< +/Title ($1N2568) +/Parent 83 0 R +/Next 85 0 R +/A 211 0 R +>> +endobj + +85 0 obj +<< +/Title ($1N8482) +/Parent 83 0 R +/Prev 84 0 R +/A 213 0 R +>> +endobj + +87 0 obj +<< +/Title ($1N2531) +/Parent 86 0 R +/Next 88 0 R +/A 215 0 R +>> +endobj + +88 0 obj +<< +/Title ($1N7704) +/Parent 86 0 R +/Prev 87 0 R +/A 217 0 R +>> +endobj + +90 0 obj +<< +/Title ($1N2541) +/Parent 89 0 R +/Next 91 0 R +/A 219 0 R +>> +endobj + +91 0 obj +<< +/Title ($1N2560) +/Parent 89 0 R +/Prev 90 0 R +/A 221 0 R +>> +endobj + +93 0 obj +<< +/Title ($1N2548) +/Parent 92 0 R +/Next 94 0 R +/A 223 0 R +>> +endobj + +94 0 obj +<< +/Title ($1N2577) +/Parent 92 0 R +/Prev 93 0 R +/A 225 0 R +>> +endobj + +96 0 obj +<< +/Title ($1N2549) +/Parent 95 0 R +/Next 97 0 R +/A 227 0 R +>> +endobj + +97 0 obj +<< +/Title ($1N2576) +/Parent 95 0 R +/Prev 96 0 R +/A 229 0 R +>> +endobj + +99 0 obj +<< +/Title ($1N2533) +/Parent 98 0 R +/Next 100 0 R +/A 231 0 R +>> +endobj + +100 0 obj +<< +/Title ($1N2578) +/Parent 98 0 R +/Prev 99 0 R +/Next 101 0 R +/A 233 0 R +>> +endobj + +101 0 obj +<< +/Title ($1N5569) +/Parent 98 0 R +/Prev 100 0 R +/A 235 0 R +>> +endobj + +103 0 obj +<< +/Title ($1N2532) +/Parent 102 0 R +/Next 104 0 R +/A 237 0 R +>> +endobj + +104 0 obj +<< +/Title ($1N2579) +/Parent 102 0 R +/Prev 103 0 R +/Next 105 0 R +/A 239 0 R +>> +endobj + +105 0 obj +<< +/Title ($1N5541) +/Parent 102 0 R +/Prev 104 0 R +/A 241 0 R +>> +endobj + +107 0 obj +<< +/Title ($1N2517) +/Parent 106 0 R +/Next 108 0 R +/A 243 0 R +>> +endobj + +108 0 obj +<< +/Title ($1N2544) +/Parent 106 0 R +/Prev 107 0 R +/A 245 0 R +>> +endobj + +110 0 obj +<< +/Title ($1N2518) +/Parent 109 0 R +/Next 111 0 R +/A 247 0 R +>> +endobj + +111 0 obj +<< +/Title ($1N2543) +/Parent 109 0 R +/Prev 110 0 R +/A 249 0 R +>> +endobj + +113 0 obj +<< +/Title ($1N2515) +/Parent 112 0 R +/Next 114 0 R +/A 251 0 R +>> +endobj + +114 0 obj +<< +/Title ($1N7708) +/Parent 112 0 R +/Prev 113 0 R +/A 253 0 R +>> +endobj + +255 0 obj +<< +/Producer (jsPDF 0.0.0) +/CreationDate (D:20250511135231+08'00') +>> +endobj +256 0 obj +<< +/Type /Catalog +/Pages 1 0 R +/OpenAction [3 0 R /FitH null] +/PageLayout /OneColumn +/Outlines 13 0 R +>> +endobj +xref +0 257 +0000000000 65535 f +0000087283 00000 n +0000089491 00000 n +0000000015 00000 n +0000000124 00000 n +0000087340 00000 n +0000087505 00000 n +0000087684 00000 n +0000087800 00000 n +0000087969 00000 n +0000089013 00000 n +0000089179 00000 n +0000089373 00000 n +0000122778 00000 n +0000122856 00000 n +0000123062 00000 n +0000122959 00000 n +0000123159 00000 n +0000126462 00000 n +0000126542 00000 n +0000126635 00000 n +0000126728 00000 n +0000126821 00000 n +0000126914 00000 n +0000127007 00000 n +0000123262 00000 n +0000127087 00000 n +0000127167 00000 n +0000123376 00000 n +0000127247 00000 n +0000123494 00000 n +0000127314 00000 n +0000123612 00000 n +0000127381 00000 n +0000123730 00000 n +0000127448 00000 n +0000123848 00000 n +0000127515 00000 n +0000123966 00000 n +0000127582 00000 n +0000124084 00000 n +0000127649 00000 n +0000124202 00000 n +0000127716 00000 n +0000127796 00000 n +0000127889 00000 n +0000127982 00000 n +0000128075 00000 n +0000128168 00000 n +0000128261 00000 n +0000128354 00000 n +0000128447 00000 n +0000128540 00000 n +0000128633 00000 n +0000128726 00000 n +0000128819 00000 n +0000128912 00000 n +0000129005 00000 n +0000129098 00000 n +0000124317 00000 n +0000129179 00000 n +0000129259 00000 n +0000124436 00000 n +0000129339 00000 n +0000129419 00000 n +0000124555 00000 n +0000129499 00000 n +0000129579 00000 n +0000124676 00000 n +0000129659 00000 n +0000129739 00000 n +0000124795 00000 n +0000129819 00000 n +0000129899 00000 n +0000124916 00000 n +0000129979 00000 n +0000130059 00000 n +0000125035 00000 n +0000130139 00000 n +0000130219 00000 n +0000125156 00000 n +0000130299 00000 n +0000130379 00000 n +0000125275 00000 n +0000130459 00000 n +0000130539 00000 n +0000125396 00000 n +0000130619 00000 n +0000130699 00000 n +0000125514 00000 n +0000130779 00000 n +0000130859 00000 n +0000125632 00000 n +0000130939 00000 n +0000131019 00000 n +0000125750 00000 n +0000131099 00000 n +0000131179 00000 n +0000125868 00000 n +0000131259 00000 n +0000131340 00000 n +0000131435 00000 n +0000125989 00000 n +0000131517 00000 n +0000131600 00000 n +0000131697 00000 n +0000126112 00000 n +0000131780 00000 n +0000131863 00000 n +0000126234 00000 n +0000131946 00000 n +0000132029 00000 n +0000126356 00000 n +0000132112 00000 n +0000132195 00000 n +0000089616 00000 n +0000089679 00000 n +0000090076 00000 n +0000090139 00000 n +0000090535 00000 n +0000090598 00000 n +0000091029 00000 n +0000091092 00000 n +0000091523 00000 n +0000091586 00000 n +0000092017 00000 n +0000092080 00000 n +0000092485 00000 n +0000092548 00000 n +0000092957 00000 n +0000093020 00000 n +0000093416 00000 n +0000093479 00000 n +0000093896 00000 n +0000093959 00000 n +0000094353 00000 n +0000094416 00000 n +0000094810 00000 n +0000094873 00000 n +0000095280 00000 n +0000095343 00000 n +0000095737 00000 n +0000095800 00000 n +0000096193 00000 n +0000096256 00000 n +0000096649 00000 n +0000096712 00000 n +0000097105 00000 n +0000097168 00000 n +0000097561 00000 n +0000097624 00000 n +0000098054 00000 n +0000098117 00000 n +0000098535 00000 n +0000098598 00000 n +0000099005 00000 n +0000099068 00000 n +0000099475 00000 n +0000099538 00000 n +0000099945 00000 n +0000100008 00000 n +0000100415 00000 n +0000100478 00000 n +0000100896 00000 n +0000100959 00000 n +0000101366 00000 n +0000101429 00000 n +0000101822 00000 n +0000101885 00000 n +0000102304 00000 n +0000102367 00000 n +0000102773 00000 n +0000102836 00000 n +0000103231 00000 n +0000103294 00000 n +0000103689 00000 n +0000103752 00000 n +0000104145 00000 n +0000104208 00000 n +0000104613 00000 n +0000104676 00000 n +0000105083 00000 n +0000105146 00000 n +0000105542 00000 n +0000105605 00000 n +0000106001 00000 n +0000106064 00000 n +0000106460 00000 n +0000106523 00000 n +0000106942 00000 n +0000107005 00000 n +0000107435 00000 n +0000107498 00000 n +0000107944 00000 n +0000108007 00000 n +0000108440 00000 n +0000108503 00000 n +0000108910 00000 n +0000108973 00000 n +0000109440 00000 n +0000109503 00000 n +0000109912 00000 n +0000109975 00000 n +0000110371 00000 n +0000110434 00000 n +0000110878 00000 n +0000110941 00000 n +0000111371 00000 n +0000111434 00000 n +0000111828 00000 n +0000111891 00000 n +0000112285 00000 n +0000112348 00000 n +0000112804 00000 n +0000112867 00000 n +0000113295 00000 n +0000113358 00000 n +0000113767 00000 n +0000113830 00000 n +0000114235 00000 n +0000114298 00000 n +0000114694 00000 n +0000114757 00000 n +0000115153 00000 n +0000115216 00000 n +0000115623 00000 n +0000115686 00000 n +0000116091 00000 n +0000116154 00000 n +0000116563 00000 n +0000116626 00000 n +0000117033 00000 n +0000117096 00000 n +0000117492 00000 n +0000117555 00000 n +0000117974 00000 n +0000118037 00000 n +0000118444 00000 n +0000118507 00000 n +0000118940 00000 n +0000119003 00000 n +0000119420 00000 n +0000119483 00000 n +0000119890 00000 n +0000119953 00000 n +0000120361 00000 n +0000120424 00000 n +0000120833 00000 n +0000120896 00000 n +0000121315 00000 n +0000121378 00000 n +0000121824 00000 n +0000121887 00000 n +0000122281 00000 n +0000122344 00000 n +0000132278 00000 n +0000132365 00000 n +trailer +<< +/Size 257 +/Root 256 0 R +/Info 255 0 R +/ID [ ] +>> +startxref +132487 +%%EOF diff --git a/Doc/DAPLink.png b/Doc/DAPLink.png new file mode 100644 index 0000000..b95362d Binary files /dev/null and b/Doc/DAPLink.png differ diff --git a/Include/DAP.h b/Include/DAP.h new file mode 100644 index 0000000..9d8f7fd --- /dev/null +++ b/Include/DAP.h @@ -0,0 +1,367 @@ +/* + * Copyright (c) 2013-2021 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 26. May 2021 + * $Revision: V2.1.0 + * + * Project: CMSIS-DAP Include + * Title: DAP.h Definitions + * + *---------------------------------------------------------------------------*/ + +#ifndef __DAP_H__ +#define __DAP_H__ + + +// DAP Firmware Version +#ifdef DAP_FW_V1 +#define DAP_FW_VER "1.3.0" +#else +#define DAP_FW_VER "2.1.0" +#endif + +// DAP Command IDs +#define ID_DAP_Info 0x00U +#define ID_DAP_HostStatus 0x01U +#define ID_DAP_Connect 0x02U +#define ID_DAP_Disconnect 0x03U +#define ID_DAP_TransferConfigure 0x04U +#define ID_DAP_Transfer 0x05U +#define ID_DAP_TransferBlock 0x06U +#define ID_DAP_TransferAbort 0x07U +#define ID_DAP_WriteABORT 0x08U +#define ID_DAP_Delay 0x09U +#define ID_DAP_ResetTarget 0x0AU +#define ID_DAP_SWJ_Pins 0x10U +#define ID_DAP_SWJ_Clock 0x11U +#define ID_DAP_SWJ_Sequence 0x12U +#define ID_DAP_SWD_Configure 0x13U +#define ID_DAP_SWD_Sequence 0x1DU +#define ID_DAP_JTAG_Sequence 0x14U +#define ID_DAP_JTAG_Configure 0x15U +#define ID_DAP_JTAG_IDCODE 0x16U +#define ID_DAP_SWO_Transport 0x17U +#define ID_DAP_SWO_Mode 0x18U +#define ID_DAP_SWO_Baudrate 0x19U +#define ID_DAP_SWO_Control 0x1AU +#define ID_DAP_SWO_Status 0x1BU +#define ID_DAP_SWO_ExtendedStatus 0x1EU +#define ID_DAP_SWO_Data 0x1CU +#define ID_DAP_UART_Transport 0x1FU +#define ID_DAP_UART_Configure 0x20U +#define ID_DAP_UART_Control 0x22U +#define ID_DAP_UART_Status 0x23U +#define ID_DAP_UART_Transfer 0x21U + +#define ID_DAP_QueueCommands 0x7EU +#define ID_DAP_ExecuteCommands 0x7FU + +// DAP Vendor Command IDs +#define ID_DAP_Vendor0 0x80U +#define ID_DAP_Vendor1 0x81U +#define ID_DAP_Vendor2 0x82U +#define ID_DAP_Vendor3 0x83U +#define ID_DAP_Vendor4 0x84U +#define ID_DAP_Vendor5 0x85U +#define ID_DAP_Vendor6 0x86U +#define ID_DAP_Vendor7 0x87U +#define ID_DAP_Vendor8 0x88U +#define ID_DAP_Vendor9 0x89U +#define ID_DAP_Vendor10 0x8AU +#define ID_DAP_Vendor11 0x8BU +#define ID_DAP_Vendor12 0x8CU +#define ID_DAP_Vendor13 0x8DU +#define ID_DAP_Vendor14 0x8EU +#define ID_DAP_Vendor15 0x8FU +#define ID_DAP_Vendor16 0x90U +#define ID_DAP_Vendor17 0x91U +#define ID_DAP_Vendor18 0x92U +#define ID_DAP_Vendor19 0x93U +#define ID_DAP_Vendor20 0x94U +#define ID_DAP_Vendor21 0x95U +#define ID_DAP_Vendor22 0x96U +#define ID_DAP_Vendor23 0x97U +#define ID_DAP_Vendor24 0x98U +#define ID_DAP_Vendor25 0x99U +#define ID_DAP_Vendor26 0x9AU +#define ID_DAP_Vendor27 0x9BU +#define ID_DAP_Vendor28 0x9CU +#define ID_DAP_Vendor29 0x9DU +#define ID_DAP_Vendor30 0x9EU +#define ID_DAP_Vendor31 0x9FU + +#define ID_DAP_Invalid 0xFFU + +// DAP Status Code +#define DAP_OK 0U +#define DAP_ERROR 0xFFU + +// DAP ID +#define DAP_ID_VENDOR 1U +#define DAP_ID_PRODUCT 2U +#define DAP_ID_SER_NUM 3U +#define DAP_ID_DAP_FW_VER 4U +#define DAP_ID_DEVICE_VENDOR 5U +#define DAP_ID_DEVICE_NAME 6U +#define DAP_ID_BOARD_VENDOR 7U +#define DAP_ID_BOARD_NAME 8U +#define DAP_ID_PRODUCT_FW_VER 9U +#define DAP_ID_CAPABILITIES 0xF0U +#define DAP_ID_TIMESTAMP_CLOCK 0xF1U +#define DAP_ID_UART_RX_BUFFER_SIZE 0xFBU +#define DAP_ID_UART_TX_BUFFER_SIZE 0xFCU +#define DAP_ID_SWO_BUFFER_SIZE 0xFDU +#define DAP_ID_PACKET_COUNT 0xFEU +#define DAP_ID_PACKET_SIZE 0xFFU + +// DAP Host Status +#define DAP_DEBUGGER_CONNECTED 0U +#define DAP_TARGET_RUNNING 1U + +// DAP Port +#define DAP_PORT_AUTODETECT 0U // Autodetect Port +#define DAP_PORT_DISABLED 0U // Port Disabled (I/O pins in High-Z) +#define DAP_PORT_SWD 1U // SWD Port (SWCLK, SWDIO) + nRESET +#define DAP_PORT_JTAG 2U // JTAG Port (TCK, TMS, TDI, TDO, nTRST) + nRESET + +// DAP SWJ Pins +#define DAP_SWJ_SWCLK_TCK 0 // SWCLK/TCK +#define DAP_SWJ_SWDIO_TMS 1 // SWDIO/TMS +#define DAP_SWJ_TDI 2 // TDI +#define DAP_SWJ_TDO 3 // TDO +#define DAP_SWJ_nTRST 5 // nTRST +#define DAP_SWJ_nRESET 7 // nRESET + +// DAP Transfer Request +#define DAP_TRANSFER_APnDP (1U<<0) +#define DAP_TRANSFER_RnW (1U<<1) +#define DAP_TRANSFER_A2 (1U<<2) +#define DAP_TRANSFER_A3 (1U<<3) +#define DAP_TRANSFER_MATCH_VALUE (1U<<4) +#define DAP_TRANSFER_MATCH_MASK (1U<<5) +#define DAP_TRANSFER_TIMESTAMP (1U<<7) + +// DAP Transfer Response +#define DAP_TRANSFER_OK (1U<<0) +#define DAP_TRANSFER_WAIT (1U<<1) +#define DAP_TRANSFER_FAULT (1U<<2) +#define DAP_TRANSFER_ERROR (1U<<3) +#define DAP_TRANSFER_MISMATCH (1U<<4) + +// DAP SWO Trace Mode +#define DAP_SWO_OFF 0U +#define DAP_SWO_UART 1U +#define DAP_SWO_MANCHESTER 2U + +// DAP SWO Trace Status +#define DAP_SWO_CAPTURE_ACTIVE (1U<<0) +#define DAP_SWO_CAPTURE_PAUSED (1U<<1) +#define DAP_SWO_STREAM_ERROR (1U<<6) +#define DAP_SWO_BUFFER_OVERRUN (1U<<7) + +// DAP UART Transport +#define DAP_UART_TRANSPORT_NONE 0U +#define DAP_UART_TRANSPORT_USB_COM_PORT 1U +#define DAP_UART_TRANSPORT_DAP_COMMAND 2U + +// DAP UART Control +#define DAP_UART_CONTROL_RX_ENABLE (1U<<0) +#define DAP_UART_CONTROL_RX_DISABLE (1U<<1) +#define DAP_UART_CONTROL_RX_BUF_FLUSH (1U<<2) +#define DAP_UART_CONTROL_TX_ENABLE (1U<<4) +#define DAP_UART_CONTROL_TX_DISABLE (1U<<5) +#define DAP_UART_CONTROL_TX_BUF_FLUSH (1U<<6) + +// DAP UART Status +#define DAP_UART_STATUS_RX_ENABLED (1U<<0) +#define DAP_UART_STATUS_RX_DATA_LOST (1U<<1) +#define DAP_UART_STATUS_FRAMING_ERROR (1U<<2) +#define DAP_UART_STATUS_PARITY_ERROR (1U<<3) +#define DAP_UART_STATUS_TX_ENABLED (1U<<4) + +// DAP UART Configure Error +#define DAP_UART_CFG_ERROR_DATA_BITS (1U<<0) +#define DAP_UART_CFG_ERROR_PARITY (1U<<1) +#define DAP_UART_CFG_ERROR_STOP_BITS (1U<<2) + +// Debug Port Register Addresses +#define DP_IDCODE 0x00U // IDCODE Register (SW Read only) +#define DP_ABORT 0x00U // Abort Register (SW Write only) +#define DP_CTRL_STAT 0x04U // Control & Status +#define DP_WCR 0x04U // Wire Control Register (SW Only) +#define DP_SELECT 0x08U // Select Register (JTAG R/W & SW W) +#define DP_RESEND 0x08U // Resend (SW Read Only) +#define DP_RDBUFF 0x0CU // Read Buffer (Read Only) + +// JTAG IR Codes +#define JTAG_ABORT 0x08U +#define JTAG_DPACC 0x0AU +#define JTAG_APACC 0x0BU +#define JTAG_IDCODE 0x0EU +#define JTAG_BYPASS 0x0FU + +// JTAG Sequence Info +#define JTAG_SEQUENCE_TCK 0x3FU // TCK count +#define JTAG_SEQUENCE_TMS 0x40U // TMS value +#define JTAG_SEQUENCE_TDO 0x80U // TDO capture + +// SWD Sequence Info +#define SWD_SEQUENCE_CLK 0x3FU // SWCLK count +#define SWD_SEQUENCE_DIN 0x80U // SWDIO capture + + +#include +#include +#include "cmsis_compiler.h" + +// DAP Data structure +typedef struct { + uint8_t debug_port; // Debug Port + uint8_t fast_clock; // Fast Clock Flag + uint8_t padding[2]; + uint32_t clock_delay; // Clock Delay + uint32_t timestamp; // Last captured Timestamp + struct { // Transfer Configuration + uint8_t idle_cycles; // Idle cycles after transfer + uint8_t padding[3]; + uint16_t retry_count; // Number of retries after WAIT response + uint16_t match_retry; // Number of retries if read value does not match + uint32_t match_mask; // Match Mask + } transfer; +#if (DAP_SWD != 0) + struct { // SWD Configuration + uint8_t turnaround; // Turnaround period + uint8_t data_phase; // Always generate Data Phase + } swd_conf; +#endif +#if (DAP_JTAG != 0) + struct { // JTAG Device Chain + uint8_t count; // Number of devices + uint8_t index; // Device index (device at TDO has index 0) +#if (DAP_JTAG_DEV_CNT != 0) + uint8_t ir_length[DAP_JTAG_DEV_CNT]; // IR Length in bits + uint16_t ir_before[DAP_JTAG_DEV_CNT]; // Bits before IR + uint16_t ir_after [DAP_JTAG_DEV_CNT]; // Bits after IR +#endif + } jtag_dev; +#endif +} DAP_Data_t; + +extern DAP_Data_t DAP_Data; // DAP Data +extern volatile uint8_t DAP_TransferAbort; // Transfer Abort Flag + + +#ifdef __cplusplus +extern "C" +{ +#endif + +// Functions +extern void SWJ_Sequence (uint32_t count, const uint8_t *data); +extern void SWD_Sequence (uint32_t info, const uint8_t *swdo, uint8_t *swdi); +extern void JTAG_Sequence (uint32_t info, const uint8_t *tdi, uint8_t *tdo); +extern void JTAG_IR (uint32_t ir); +extern uint32_t JTAG_ReadIDCode (void); +extern void JTAG_WriteAbort (uint32_t data); +extern uint8_t JTAG_Transfer (uint32_t request, uint32_t *data); +extern uint8_t SWD_Transfer (uint32_t request, uint32_t *data); + +extern void Delayms (uint32_t delay); + +extern uint32_t SWO_Transport (const uint8_t *request, uint8_t *response); +extern uint32_t SWO_Mode (const uint8_t *request, uint8_t *response); +extern uint32_t SWO_Baudrate (const uint8_t *request, uint8_t *response); +extern uint32_t SWO_Control (const uint8_t *request, uint8_t *response); +extern uint32_t SWO_Status (uint8_t *response); +extern uint32_t SWO_ExtendedStatus (const uint8_t *request, uint8_t *response); +extern uint32_t SWO_Data (const uint8_t *request, uint8_t *response); + +extern void SWO_QueueTransfer (uint8_t *buf, uint32_t num); +extern void SWO_AbortTransfer (void); +extern void SWO_TransferComplete (void); + +extern uint32_t SWO_Mode_UART (uint32_t enable); +extern uint32_t SWO_Baudrate_UART (uint32_t baudrate); +extern uint32_t SWO_Control_UART (uint32_t active); +extern void SWO_Capture_UART (uint8_t *buf, uint32_t num); +extern uint32_t SWO_GetCount_UART (void); + +extern uint32_t SWO_Mode_Manchester (uint32_t enable); +extern uint32_t SWO_Baudrate_Manchester (uint32_t baudrate); +extern uint32_t SWO_Control_Manchester (uint32_t active); +extern void SWO_Capture_Manchester (uint8_t *buf, uint32_t num); +extern uint32_t SWO_GetCount_Manchester (void); + +extern uint32_t UART_Transport (const uint8_t *request, uint8_t *response); +extern uint32_t UART_Configure (const uint8_t *request, uint8_t *response); +extern uint32_t UART_Control (const uint8_t *request, uint8_t *response); +extern uint32_t UART_Status (uint8_t *response); +extern uint32_t UART_Transfer (const uint8_t *request, uint8_t *response); + +extern uint8_t USB_COM_PORT_Activate (uint32_t cmd); + +extern uint32_t DAP_ProcessVendorCommand (const uint8_t *request, uint8_t *response); +extern uint32_t DAP_ProcessCommand (const uint8_t *request, uint8_t *response); +extern uint32_t DAP_ExecuteCommand (const uint8_t *request, uint8_t *response); + +extern void DAP_Setup (void); + +// Configurable delay for clock generation +#ifndef DELAY_SLOW_CYCLES +#define DELAY_SLOW_CYCLES 3U // Number of cycles for one iteration +#endif +#if defined(__CC_ARM) +__STATIC_FORCEINLINE void PIN_DELAY_SLOW (uint32_t delay) { + uint32_t count = delay; + while (--count); +} +#else +__STATIC_FORCEINLINE void PIN_DELAY_SLOW (uint32_t delay) { + __ASM volatile ( + ".syntax unified\n" + "0:\n\t" + "subs %0,%0,#1\n\t" + "bne 0b\n" + : "+l" (delay) : : "cc" + ); +} +#endif + +// Fixed delay for fast clock generation +#ifndef DELAY_FAST_CYCLES +#define DELAY_FAST_CYCLES 0U // Number of cycles: 0..3 +#endif +__STATIC_FORCEINLINE void PIN_DELAY_FAST (void) { +#if (DELAY_FAST_CYCLES >= 1U) + __NOP(); +#endif +#if (DELAY_FAST_CYCLES >= 2U) + __NOP(); +#endif +#if (DELAY_FAST_CYCLES >= 3U) + __NOP(); +#endif +} + +#ifdef __cplusplus +} +#endif + + +#endif /* __DAP_H__ */ diff --git a/Source/DAP.c b/Source/DAP.c new file mode 100644 index 0000000..530236e --- /dev/null +++ b/Source/DAP.c @@ -0,0 +1,1807 @@ +/* + * Copyright (c) 2013-2021 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 16. June 2021 + * $Revision: V2.1.0 + * + * Project: CMSIS-DAP Source + * Title: DAP.c CMSIS-DAP Commands + * + *---------------------------------------------------------------------------*/ + +#include +#include "DAP_config.h" +#include "DAP.h" + + +#if (DAP_PACKET_SIZE < 64U) +#error "Minimum Packet Size is 64!" +#endif +#if (DAP_PACKET_SIZE > 32768U) +#error "Maximum Packet Size is 32768!" +#endif +#if (DAP_PACKET_COUNT < 1U) +#error "Minimum Packet Count is 1!" +#endif +#if (DAP_PACKET_COUNT > 255U) +#error "Maximum Packet Count is 255!" +#endif + + +// Clock Macros + +#define MAX_SWJ_CLOCK(delay_cycles) \ + ((CPU_CLOCK/2U) / (IO_PORT_WRITE_CYCLES + delay_cycles)) + +#define CLOCK_DELAY(swj_clock) \ + (((CPU_CLOCK/2U) / swj_clock) - IO_PORT_WRITE_CYCLES) + + + DAP_Data_t DAP_Data; // DAP Data +volatile uint8_t DAP_TransferAbort; // Transfer Abort Flag + + +static const char DAP_FW_Ver [] = DAP_FW_VER; + + + +// Get DAP Information +// id: info identifier +// info: pointer to info data +// return: number of bytes in info data +static uint8_t DAP_Info(uint8_t id, uint8_t *info) { + uint8_t length = 0U; + + switch (id) { + case DAP_ID_VENDOR: + length = DAP_GetVendorString((char *)info); + break; + case DAP_ID_PRODUCT: + length = DAP_GetProductString((char *)info); + break; + case DAP_ID_SER_NUM: + length = DAP_GetSerNumString((char *)info); + break; + case DAP_ID_DAP_FW_VER: + length = (uint8_t)sizeof(DAP_FW_Ver); + memcpy(info, DAP_FW_Ver, length); + break; + case DAP_ID_DEVICE_VENDOR: + length = DAP_GetTargetDeviceVendorString((char *)info); + break; + case DAP_ID_DEVICE_NAME: + length = DAP_GetTargetDeviceNameString((char *)info); + break; + case DAP_ID_BOARD_VENDOR: + length = DAP_GetTargetBoardVendorString((char *)info); + break; + case DAP_ID_BOARD_NAME: + length = DAP_GetTargetBoardNameString((char *)info); + break; + case DAP_ID_PRODUCT_FW_VER: + length = DAP_GetProductFirmwareVersionString((char *)info); + break; + case DAP_ID_CAPABILITIES: + info[0] = ((DAP_SWD != 0) ? (1U << 0) : 0U) | + ((DAP_JTAG != 0) ? (1U << 1) : 0U) | + ((SWO_UART != 0) ? (1U << 2) : 0U) | + ((SWO_MANCHESTER != 0) ? (1U << 3) : 0U) | + /* Atomic Commands */ (1U << 4) | + ((TIMESTAMP_CLOCK != 0U) ? (1U << 5) : 0U) | + ((SWO_STREAM != 0U) ? (1U << 6) : 0U) | + ((DAP_UART != 0U) ? (1U << 7) : 0U); + + info[1] = ((DAP_UART_USB_COM_PORT != 0) ? (1U << 0) : 0U); + length = 2U; + break; + case DAP_ID_TIMESTAMP_CLOCK: +#if (TIMESTAMP_CLOCK != 0U) + info[0] = (uint8_t)(TIMESTAMP_CLOCK >> 0); + info[1] = (uint8_t)(TIMESTAMP_CLOCK >> 8); + info[2] = (uint8_t)(TIMESTAMP_CLOCK >> 16); + info[3] = (uint8_t)(TIMESTAMP_CLOCK >> 24); + length = 4U; +#endif + break; + case DAP_ID_UART_RX_BUFFER_SIZE: +#if (DAP_UART != 0) + info[0] = (uint8_t)(DAP_UART_RX_BUFFER_SIZE >> 0); + info[1] = (uint8_t)(DAP_UART_RX_BUFFER_SIZE >> 8); + info[2] = (uint8_t)(DAP_UART_RX_BUFFER_SIZE >> 16); + info[3] = (uint8_t)(DAP_UART_RX_BUFFER_SIZE >> 24); + length = 4U; +#endif + break; + case DAP_ID_UART_TX_BUFFER_SIZE: +#if (DAP_UART != 0) + info[0] = (uint8_t)(DAP_UART_TX_BUFFER_SIZE >> 0); + info[1] = (uint8_t)(DAP_UART_TX_BUFFER_SIZE >> 8); + info[2] = (uint8_t)(DAP_UART_TX_BUFFER_SIZE >> 16); + info[3] = (uint8_t)(DAP_UART_TX_BUFFER_SIZE >> 24); + length = 4U; +#endif + break; + case DAP_ID_SWO_BUFFER_SIZE: +#if ((SWO_UART != 0) || (SWO_MANCHESTER != 0)) + info[0] = (uint8_t)(SWO_BUFFER_SIZE >> 0); + info[1] = (uint8_t)(SWO_BUFFER_SIZE >> 8); + info[2] = (uint8_t)(SWO_BUFFER_SIZE >> 16); + info[3] = (uint8_t)(SWO_BUFFER_SIZE >> 24); + length = 4U; +#endif + break; + case DAP_ID_PACKET_SIZE: + info[0] = (uint8_t)(DAP_PACKET_SIZE >> 0); + info[1] = (uint8_t)(DAP_PACKET_SIZE >> 8); + length = 2U; + break; + case DAP_ID_PACKET_COUNT: + info[0] = DAP_PACKET_COUNT; + length = 1U; + break; + default: + break; + } + + return (length); +} + + +// Delay for specified time +// delay: delay time in ms +void Delayms(uint32_t delay) { + delay *= ((CPU_CLOCK/1000U) + (DELAY_SLOW_CYCLES-1U)) / DELAY_SLOW_CYCLES; + PIN_DELAY_SLOW(delay); +} + + +// Process Delay command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_Delay(const uint8_t *request, uint8_t *response) { + uint32_t delay; + + delay = (uint32_t)(*(request+0)) | + (uint32_t)(*(request+1) << 8); + delay *= ((CPU_CLOCK/1000000U) + (DELAY_SLOW_CYCLES-1U)) / DELAY_SLOW_CYCLES; + + PIN_DELAY_SLOW(delay); + + *response = DAP_OK; + return ((2U << 16) | 1U); +} + + +// Process Host Status command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_HostStatus(const uint8_t *request, uint8_t *response) { + + switch (*request) { + case DAP_DEBUGGER_CONNECTED: + LED_CONNECTED_OUT((*(request+1) & 1U)); + break; + case DAP_TARGET_RUNNING: + LED_RUNNING_OUT((*(request+1) & 1U)); + break; + default: + *response = DAP_ERROR; + return ((2U << 16) | 1U); + } + + *response = DAP_OK; + return ((2U << 16) | 1U); +} + + +// Process Connect command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_Connect(const uint8_t *request, uint8_t *response) { + uint32_t port; + + if (*request == DAP_PORT_AUTODETECT) { + port = DAP_DEFAULT_PORT; + } else { + port = *request; + } + + switch (port) { +#if (DAP_SWD != 0) + case DAP_PORT_SWD: + DAP_Data.debug_port = DAP_PORT_SWD; + PORT_SWD_SETUP(); + break; +#endif +#if (DAP_JTAG != 0) + case DAP_PORT_JTAG: + DAP_Data.debug_port = DAP_PORT_JTAG; + PORT_JTAG_SETUP(); + break; +#endif + default: + port = DAP_PORT_DISABLED; + break; + } + + *response = (uint8_t)port; + return ((1U << 16) | 1U); +} + + +// Process Disconnect command and prepare response +// response: pointer to response data +// return: number of bytes in response +static uint32_t DAP_Disconnect(uint8_t *response) { + + DAP_Data.debug_port = DAP_PORT_DISABLED; + PORT_OFF(); + + *response = DAP_OK; + return (1U); +} + + +// Process Reset Target command and prepare response +// response: pointer to response data +// return: number of bytes in response +static uint32_t DAP_ResetTarget(uint8_t *response) { + + *(response+1) = RESET_TARGET(); + *(response+0) = DAP_OK; + return (2U); +} + + +// Process SWJ Pins command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_SWJ_Pins(const uint8_t *request, uint8_t *response) { +#if ((DAP_SWD != 0) || (DAP_JTAG != 0)) + uint32_t value; + uint32_t select; + uint32_t wait; + uint32_t timestamp; + + value = (uint32_t) *(request+0); + select = (uint32_t) *(request+1); + wait = (uint32_t)(*(request+2) << 0) | + (uint32_t)(*(request+3) << 8) | + (uint32_t)(*(request+4) << 16) | + (uint32_t)(*(request+5) << 24); + + if ((select & (1U << DAP_SWJ_SWCLK_TCK)) != 0U) { + if ((value & (1U << DAP_SWJ_SWCLK_TCK)) != 0U) { + PIN_SWCLK_TCK_SET(); + } else { + PIN_SWCLK_TCK_CLR(); + } + } + if ((select & (1U << DAP_SWJ_SWDIO_TMS)) != 0U) { + if ((value & (1U << DAP_SWJ_SWDIO_TMS)) != 0U) { + PIN_SWDIO_TMS_SET(); + } else { + PIN_SWDIO_TMS_CLR(); + } + } + if ((select & (1U << DAP_SWJ_TDI)) != 0U) { + PIN_TDI_OUT(value >> DAP_SWJ_TDI); + } + if ((select & (1U << DAP_SWJ_nTRST)) != 0U) { + PIN_nTRST_OUT(value >> DAP_SWJ_nTRST); + } + if ((select & (1U << DAP_SWJ_nRESET)) != 0U){ + PIN_nRESET_OUT(value >> DAP_SWJ_nRESET); + } + + if (wait != 0U) { +#if (TIMESTAMP_CLOCK != 0U) + if (wait > 3000000U) { + wait = 3000000U; + } +#if (TIMESTAMP_CLOCK >= 1000000U) + wait *= TIMESTAMP_CLOCK / 1000000U; +#else + wait /= 1000000U / TIMESTAMP_CLOCK; +#endif +#else + wait = 1U; +#endif + timestamp = TIMESTAMP_GET(); + do { + if ((select & (1U << DAP_SWJ_SWCLK_TCK)) != 0U) { + if ((value >> DAP_SWJ_SWCLK_TCK) ^ PIN_SWCLK_TCK_IN()) { + continue; + } + } + if ((select & (1U << DAP_SWJ_SWDIO_TMS)) != 0U) { + if ((value >> DAP_SWJ_SWDIO_TMS) ^ PIN_SWDIO_TMS_IN()) { + continue; + } + } + if ((select & (1U << DAP_SWJ_TDI)) != 0U) { + if ((value >> DAP_SWJ_TDI) ^ PIN_TDI_IN()) { + continue; + } + } + if ((select & (1U << DAP_SWJ_nTRST)) != 0U) { + if ((value >> DAP_SWJ_nTRST) ^ PIN_nTRST_IN()) { + continue; + } + } + if ((select & (1U << DAP_SWJ_nRESET)) != 0U) { + if ((value >> DAP_SWJ_nRESET) ^ PIN_nRESET_IN()) { + continue; + } + } + break; + } while ((TIMESTAMP_GET() - timestamp) < wait); + } + + value = (PIN_SWCLK_TCK_IN() << DAP_SWJ_SWCLK_TCK) | + (PIN_SWDIO_TMS_IN() << DAP_SWJ_SWDIO_TMS) | + (PIN_TDI_IN() << DAP_SWJ_TDI) | + (PIN_TDO_IN() << DAP_SWJ_TDO) | + (PIN_nTRST_IN() << DAP_SWJ_nTRST) | + (PIN_nRESET_IN() << DAP_SWJ_nRESET); + + *response = (uint8_t)value; +#else + *response = 0U; +#endif + + return ((6U << 16) | 1U); +} + + +// Process SWJ Clock command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_SWJ_Clock(const uint8_t *request, uint8_t *response) { +#if ((DAP_SWD != 0) || (DAP_JTAG != 0)) + uint32_t clock; + uint32_t delay; + + clock = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + + if (clock == 0U) { + *response = DAP_ERROR; + return ((4U << 16) | 1U); + } + + if (clock >= MAX_SWJ_CLOCK(DELAY_FAST_CYCLES)) { + DAP_Data.fast_clock = 1U; + DAP_Data.clock_delay = 1U; + } else { + DAP_Data.fast_clock = 0U; + + delay = ((CPU_CLOCK/2U) + (clock - 1U)) / clock; + if (delay > IO_PORT_WRITE_CYCLES) { + delay -= IO_PORT_WRITE_CYCLES; + delay = (delay + (DELAY_SLOW_CYCLES - 1U)) / DELAY_SLOW_CYCLES; + } else { + delay = 1U; + } + + DAP_Data.clock_delay = delay; + } + + *response = DAP_OK; +#else + *response = DAP_ERROR; +#endif + + return ((4U << 16) | 1U); +} + + +// Process SWJ Sequence command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_SWJ_Sequence(const uint8_t *request, uint8_t *response) { + uint32_t count; + + count = *request++; + if (count == 0U) { + count = 256U; + } + +#if ((DAP_SWD != 0) || (DAP_JTAG != 0)) + SWJ_Sequence(count, request); + *response = DAP_OK; +#else + *response = DAP_ERROR; +#endif + + count = (count + 7U) >> 3; + + return (((count + 1U) << 16) | 1U); +} + + +// Process SWD Configure command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_SWD_Configure(const uint8_t *request, uint8_t *response) { +#if (DAP_SWD != 0) + uint8_t value; + + value = *request; + DAP_Data.swd_conf.turnaround = (value & 0x03U) + 1U; + DAP_Data.swd_conf.data_phase = (value & 0x04U) ? 1U : 0U; + + *response = DAP_OK; +#else + *response = DAP_ERROR; +#endif + + return ((1U << 16) | 1U); +} + + +// Process SWD Sequence command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_SWD_Sequence(const uint8_t *request, uint8_t *response) { + uint32_t sequence_info; + uint32_t sequence_count; + uint32_t request_count; + uint32_t response_count; + uint32_t count; + +#if (DAP_SWD != 0) + *response++ = DAP_OK; +#else + *response++ = DAP_ERROR; +#endif + request_count = 1U; + response_count = 1U; + + sequence_count = *request++; + while (sequence_count--) { + sequence_info = *request++; + count = sequence_info & SWD_SEQUENCE_CLK; + if (count == 0U) { + count = 64U; + } + count = (count + 7U) / 8U; +#if (DAP_SWD != 0) + if ((sequence_info & SWD_SEQUENCE_DIN) != 0U) { + PIN_SWDIO_OUT_DISABLE(); + } else { + PIN_SWDIO_OUT_ENABLE(); + } + SWD_Sequence(sequence_info, request, response); + if (sequence_count == 0U) { + PIN_SWDIO_OUT_ENABLE(); + } +#endif + if ((sequence_info & SWD_SEQUENCE_DIN) != 0U) { + request_count++; +#if (DAP_SWD != 0) + response += count; + response_count += count; +#endif + } else { + request += count; + request_count += count + 1U; + } + } + + return ((request_count << 16) | response_count); +} + + +// Process JTAG Sequence command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_JTAG_Sequence(const uint8_t *request, uint8_t *response) { + uint32_t sequence_info; + uint32_t sequence_count; + uint32_t request_count; + uint32_t response_count; + uint32_t count; + +#if (DAP_JTAG != 0) + *response++ = DAP_OK; +#else + *response++ = DAP_ERROR; +#endif + request_count = 1U; + response_count = 1U; + + sequence_count = *request++; + while (sequence_count--) { + sequence_info = *request++; + count = sequence_info & JTAG_SEQUENCE_TCK; + if (count == 0U) { + count = 64U; + } + count = (count + 7U) / 8U; +#if (DAP_JTAG != 0) + JTAG_Sequence(sequence_info, request, response); +#endif + request += count; + request_count += count + 1U; +#if (DAP_JTAG != 0) + if ((sequence_info & JTAG_SEQUENCE_TDO) != 0U) { + response += count; + response_count += count; + } +#endif + } + + return ((request_count << 16) | response_count); +} + + +// Process JTAG Configure command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_JTAG_Configure(const uint8_t *request, uint8_t *response) { + uint32_t count; +#if (DAP_JTAG != 0) + uint32_t length; + uint32_t bits; + uint32_t n; + + count = *request++; + DAP_Data.jtag_dev.count = (uint8_t)count; + + bits = 0U; + for (n = 0U; n < count; n++) { + length = *request++; + DAP_Data.jtag_dev.ir_length[n] = (uint8_t)length; + DAP_Data.jtag_dev.ir_before[n] = (uint16_t)bits; + bits += length; + } + for (n = 0U; n < count; n++) { + bits -= DAP_Data.jtag_dev.ir_length[n]; + DAP_Data.jtag_dev.ir_after[n] = (uint16_t)bits; + } + + *response = DAP_OK; +#else + count = *request; + *response = DAP_ERROR; +#endif + + return (((count + 1U) << 16) | 1U); +} + + +// Process JTAG IDCODE command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_JTAG_IDCode(const uint8_t *request, uint8_t *response) { +#if (DAP_JTAG != 0) + uint32_t data; + + if (DAP_Data.debug_port != DAP_PORT_JTAG) { + goto id_error; + } + + // Device index (JTAP TAP) + DAP_Data.jtag_dev.index = *request; + if (DAP_Data.jtag_dev.index >= DAP_Data.jtag_dev.count) { + goto id_error; + } + + // Select JTAG chain + JTAG_IR(JTAG_IDCODE); + + // Read IDCODE register + data = JTAG_ReadIDCode(); + + // Store Data + *(response+0) = DAP_OK; + *(response+1) = (uint8_t)(data >> 0); + *(response+2) = (uint8_t)(data >> 8); + *(response+3) = (uint8_t)(data >> 16); + *(response+4) = (uint8_t)(data >> 24); + + return ((1U << 16) | 5U); + +id_error: +#endif + *response = DAP_ERROR; + return ((1U << 16) | 1U); +} + + +// Process Transfer Configure command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_TransferConfigure(const uint8_t *request, uint8_t *response) { + + DAP_Data.transfer.idle_cycles = *(request+0); + DAP_Data.transfer.retry_count = (uint16_t) *(request+1) | + (uint16_t)(*(request+2) << 8); + DAP_Data.transfer.match_retry = (uint16_t) *(request+3) | + (uint16_t)(*(request+4) << 8); + + *response = DAP_OK; + return ((5U << 16) | 1U); +} + + +// Process SWD Transfer command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +#if (DAP_SWD != 0) +static uint32_t DAP_SWD_Transfer(const uint8_t *request, uint8_t *response) { + const + uint8_t *request_head; + uint32_t request_count; + uint32_t request_value; + uint8_t *response_head; + uint32_t response_count; + uint32_t response_value; + uint32_t post_read; + uint32_t check_write; + uint32_t match_value; + uint32_t match_retry; + uint32_t retry; + uint32_t data; +#if (TIMESTAMP_CLOCK != 0U) + uint32_t timestamp; +#endif + + request_head = request; + + response_count = 0U; + response_value = 0U; + response_head = response; + response += 2; + + DAP_TransferAbort = 0U; + + post_read = 0U; + check_write = 0U; + + request++; // Ignore DAP index + + request_count = *request++; + + for (; request_count != 0U; request_count--) { + request_value = *request++; + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Read register + if (post_read) { + // Read was posted before + retry = DAP_Data.transfer.retry_count; + if ((request_value & (DAP_TRANSFER_APnDP | DAP_TRANSFER_MATCH_VALUE)) == DAP_TRANSFER_APnDP) { + // Read previous AP data and post next AP read + do { + response_value = SWD_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + } else { + // Read previous AP data + do { + response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + post_read = 0U; + } + if (response_value != DAP_TRANSFER_OK) { + break; + } + // Store previous AP data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); +#if (TIMESTAMP_CLOCK != 0U) + if (post_read) { + // Store Timestamp of next AP read + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } + } +#endif + } + if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) { + // Read with value match + match_value = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + request += 4; + match_retry = DAP_Data.transfer.match_retry; + if ((request_value & DAP_TRANSFER_APnDP) != 0U) { + // Post AP read + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(request_value, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } + } + do { + // Read register until its value matches or retry counter expires + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } + } while (((data & DAP_Data.transfer.match_mask) != match_value) && match_retry-- && !DAP_TransferAbort); + if ((data & DAP_Data.transfer.match_mask) != match_value) { + response_value |= DAP_TRANSFER_MISMATCH; + } + if (response_value != DAP_TRANSFER_OK) { + break; + } + } else { + // Normal read + retry = DAP_Data.transfer.retry_count; + if ((request_value & DAP_TRANSFER_APnDP) != 0U) { + // Read AP register + if (post_read == 0U) { + // Post AP read + do { + response_value = SWD_Transfer(request_value, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } +#if (TIMESTAMP_CLOCK != 0U) + // Store Timestamp + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } +#endif + post_read = 1U; + } + } else { + // Read DP register + do { + response_value = SWD_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } +#if (TIMESTAMP_CLOCK != 0U) + // Store Timestamp + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } +#endif + // Store data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + } + } + check_write = 0U; + } else { + // Write register + if (post_read) { + // Read previous data + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } + // Store previous data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + post_read = 0U; + } + // Load data + data = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + request += 4; + if ((request_value & DAP_TRANSFER_MATCH_MASK) != 0U) { + // Write match mask + DAP_Data.transfer.match_mask = data; + response_value = DAP_TRANSFER_OK; + } else { + // Write DP/AP register + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } +#if (TIMESTAMP_CLOCK != 0U) + // Store Timestamp + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } +#endif + check_write = 1U; + } + } + response_count++; + if (DAP_TransferAbort) { + break; + } + } + + for (; request_count != 0U; request_count--) { + // Process canceled requests + request_value = *request++; + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Read register + if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) { + // Read with value match + request += 4; + } + } else { + // Write register + request += 4; + } + } + + if (response_value == DAP_TRANSFER_OK) { + if (post_read) { + // Read previous data + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + // Store previous data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + } else if (check_write) { + // Check last write + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + } + } + +end: + *(response_head+0) = (uint8_t)response_count; + *(response_head+1) = (uint8_t)response_value; + + return (((uint32_t)(request - request_head) << 16) | (uint32_t)(response - response_head)); +} +#endif + + +// Process JTAG Transfer command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +#if (DAP_JTAG != 0) +static uint32_t DAP_JTAG_Transfer(const uint8_t *request, uint8_t *response) { + const + uint8_t *request_head; + uint32_t request_count; + uint32_t request_value; + uint32_t request_ir; + uint8_t *response_head; + uint32_t response_count; + uint32_t response_value; + uint32_t post_read; + uint32_t match_value; + uint32_t match_retry; + uint32_t retry; + uint32_t data; + uint32_t ir; +#if (TIMESTAMP_CLOCK != 0U) + uint32_t timestamp; +#endif + + request_head = request; + + response_count = 0U; + response_value = 0U; + response_head = response; + response += 2; + + DAP_TransferAbort = 0U; + + ir = 0U; + post_read = 0U; + + // Device index (JTAP TAP) + DAP_Data.jtag_dev.index = *request++; + if (DAP_Data.jtag_dev.index >= DAP_Data.jtag_dev.count) { + goto end; + } + + request_count = *request++; + + for (; request_count != 0U; request_count--) { + request_value = *request++; + request_ir = (request_value & DAP_TRANSFER_APnDP) ? JTAG_APACC : JTAG_DPACC; + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Read register + if (post_read) { + // Read was posted before + retry = DAP_Data.transfer.retry_count; + if ((ir == request_ir) && ((request_value & DAP_TRANSFER_MATCH_VALUE) == 0U)) { + // Read previous data and post next read + do { + response_value = JTAG_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + } else { + // Select JTAG chain + if (ir != JTAG_DPACC) { + ir = JTAG_DPACC; + JTAG_IR(ir); + } + // Read previous data + do { + response_value = JTAG_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + post_read = 0U; + } + if (response_value != DAP_TRANSFER_OK) { + break; + } + // Store previous data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); +#if (TIMESTAMP_CLOCK != 0U) + if (post_read) { + // Store Timestamp of next AP read + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } + } +#endif + } + if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) { + // Read with value match + match_value = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + request += 4; + match_retry = DAP_Data.transfer.match_retry; + // Select JTAG chain + if (ir != request_ir) { + ir = request_ir; + JTAG_IR(ir); + } + // Post DP/AP read + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } + do { + // Read register until its value matches or retry counter expires + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } + } while (((data & DAP_Data.transfer.match_mask) != match_value) && match_retry-- && !DAP_TransferAbort); + if ((data & DAP_Data.transfer.match_mask) != match_value) { + response_value |= DAP_TRANSFER_MISMATCH; + } + if (response_value != DAP_TRANSFER_OK) { + break; + } + } else { + // Normal read + if (post_read == 0U) { + // Select JTAG chain + if (ir != request_ir) { + ir = request_ir; + JTAG_IR(ir); + } + // Post DP/AP read + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } +#if (TIMESTAMP_CLOCK != 0U) + // Store Timestamp + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } +#endif + post_read = 1U; + } + } + } else { + // Write register + if (post_read) { + // Select JTAG chain + if (ir != JTAG_DPACC) { + ir = JTAG_DPACC; + JTAG_IR(ir); + } + // Read previous data + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } + // Store previous data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + post_read = 0U; + } + // Load data + data = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + request += 4; + if ((request_value & DAP_TRANSFER_MATCH_MASK) != 0U) { + // Write match mask + DAP_Data.transfer.match_mask = data; + response_value = DAP_TRANSFER_OK; + } else { + // Select JTAG chain + if (ir != request_ir) { + ir = request_ir; + JTAG_IR(ir); + } + // Write DP/AP register + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + break; + } +#if (TIMESTAMP_CLOCK != 0U) + // Store Timestamp + if ((request_value & DAP_TRANSFER_TIMESTAMP) != 0U) { + timestamp = DAP_Data.timestamp; + *response++ = (uint8_t) timestamp; + *response++ = (uint8_t)(timestamp >> 8); + *response++ = (uint8_t)(timestamp >> 16); + *response++ = (uint8_t)(timestamp >> 24); + } +#endif + } + } + response_count++; + if (DAP_TransferAbort) { + break; + } + } + + for (; request_count != 0U; request_count--) { + // Process canceled requests + request_value = *request++; + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Read register + if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) { + // Read with value match + request += 4; + } + } else { + // Write register + request += 4; + } + } + + if (response_value == DAP_TRANSFER_OK) { + // Select JTAG chain + if (ir != JTAG_DPACC) { + ir = JTAG_DPACC; + JTAG_IR(ir); + } + if (post_read) { + // Read previous data + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + // Store previous data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + } else { + // Check last write + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + } + } + +end: + *(response_head+0) = (uint8_t)response_count; + *(response_head+1) = (uint8_t)response_value; + + return (((uint32_t)(request - request_head) << 16) | (uint32_t)(response - response_head)); +} +#endif + + +// Process Dummy Transfer command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_Dummy_Transfer(const uint8_t *request, uint8_t *response) { + const + uint8_t *request_head; + uint32_t request_count; + uint32_t request_value; + + request_head = request; + + request++; // Ignore DAP index + + request_count = *request++; + + for (; request_count != 0U; request_count--) { + // Process dummy requests + request_value = *request++; + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Read register + if ((request_value & DAP_TRANSFER_MATCH_VALUE) != 0U) { + // Read with value match + request += 4; + } + } else { + // Write register + request += 4; + } + } + + *(response+0) = 0U; // Response count + *(response+1) = 0U; // Response value + + return (((uint32_t)(request - request_head) << 16) | 2U); +} + + +// Process Transfer command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_Transfer(const uint8_t *request, uint8_t *response) { + uint32_t num; + + switch (DAP_Data.debug_port) { +#if (DAP_SWD != 0) + case DAP_PORT_SWD: + num = DAP_SWD_Transfer(request, response); + break; +#endif +#if (DAP_JTAG != 0) + case DAP_PORT_JTAG: + num = DAP_JTAG_Transfer(request, response); + break; +#endif + default: + num = DAP_Dummy_Transfer(request, response); + break; + } + + return (num); +} + + +// Process SWD Transfer Block command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response +#if (DAP_SWD != 0) +static uint32_t DAP_SWD_TransferBlock(const uint8_t *request, uint8_t *response) { + uint32_t request_count; + uint32_t request_value; + uint32_t response_count; + uint32_t response_value; + uint8_t *response_head; + uint32_t retry; + uint32_t data; + + response_count = 0U; + response_value = 0U; + response_head = response; + response += 3; + + DAP_TransferAbort = 0U; + + request++; // Ignore DAP index + + request_count = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8); + request += 2; + if (request_count == 0U) { + goto end; + } + + request_value = *request++; + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Read register block + if ((request_value & DAP_TRANSFER_APnDP) != 0U) { + // Post AP read + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(request_value, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + } + while (request_count--) { + // Read DP/AP register + if ((request_count == 0U) && ((request_value & DAP_TRANSFER_APnDP) != 0U)) { + // Last AP read + request_value = DP_RDBUFF | DAP_TRANSFER_RnW; + } + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + // Store data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + response_count++; + } + } else { + // Write register block + while (request_count--) { + // Load data + data = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + request += 4; + // Write DP/AP register + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + response_count++; + } + // Check last write + retry = DAP_Data.transfer.retry_count; + do { + response_value = SWD_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + } + +end: + *(response_head+0) = (uint8_t)(response_count >> 0); + *(response_head+1) = (uint8_t)(response_count >> 8); + *(response_head+2) = (uint8_t) response_value; + + return ((uint32_t)(response - response_head)); +} +#endif + + +// Process JTAG Transfer Block command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response +#if (DAP_JTAG != 0) +static uint32_t DAP_JTAG_TransferBlock(const uint8_t *request, uint8_t *response) { + uint32_t request_count; + uint32_t request_value; + uint32_t response_count; + uint32_t response_value; + uint8_t *response_head; + uint32_t retry; + uint32_t data; + uint32_t ir; + + response_count = 0U; + response_value = 0U; + response_head = response; + response += 3; + + DAP_TransferAbort = 0U; + + // Device index (JTAP TAP) + DAP_Data.jtag_dev.index = *request++; + if (DAP_Data.jtag_dev.index >= DAP_Data.jtag_dev.count) { + goto end; + } + + request_count = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8); + request += 2; + if (request_count == 0U) { + goto end; + } + + request_value = *request++; + + // Select JTAG chain + ir = (request_value & DAP_TRANSFER_APnDP) ? JTAG_APACC : JTAG_DPACC; + JTAG_IR(ir); + + if ((request_value & DAP_TRANSFER_RnW) != 0U) { + // Post read + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + // Read register block + while (request_count--) { + // Read DP/AP register + if (request_count == 0U) { + // Last read + if (ir != JTAG_DPACC) { + JTAG_IR(JTAG_DPACC); + } + request_value = DP_RDBUFF | DAP_TRANSFER_RnW; + } + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + // Store data + *response++ = (uint8_t) data; + *response++ = (uint8_t)(data >> 8); + *response++ = (uint8_t)(data >> 16); + *response++ = (uint8_t)(data >> 24); + response_count++; + } + } else { + // Write register block + while (request_count--) { + // Load data + data = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + request += 4; + // Write DP/AP register + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(request_value, &data); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + if (response_value != DAP_TRANSFER_OK) { + goto end; + } + response_count++; + } + // Check last write + if (ir != JTAG_DPACC) { + JTAG_IR(JTAG_DPACC); + } + retry = DAP_Data.transfer.retry_count; + do { + response_value = JTAG_Transfer(DP_RDBUFF | DAP_TRANSFER_RnW, NULL); + } while ((response_value == DAP_TRANSFER_WAIT) && retry-- && !DAP_TransferAbort); + } + +end: + *(response_head+0) = (uint8_t)(response_count >> 0); + *(response_head+1) = (uint8_t)(response_count >> 8); + *(response_head+2) = (uint8_t) response_value; + + return ((uint32_t)(response - response_head)); +} +#endif + + +// Process Transfer Block command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_TransferBlock(const uint8_t *request, uint8_t *response) { + uint32_t num; + + switch (DAP_Data.debug_port) { +#if (DAP_SWD != 0) + case DAP_PORT_SWD: + num = DAP_SWD_TransferBlock (request, response); + break; +#endif +#if (DAP_JTAG != 0) + case DAP_PORT_JTAG: + num = DAP_JTAG_TransferBlock(request, response); + break; +#endif + default: + *(response+0) = 0U; // Response count [7:0] + *(response+1) = 0U; // Response count[15:8] + *(response+2) = 0U; // Response value + num = 3U; + break; + } + + if ((*(request+3) & DAP_TRANSFER_RnW) != 0U) { + // Read register block + num |= 4U << 16; + } else { + // Write register block + num |= (4U + (((uint32_t)(*(request+1)) | (uint32_t)(*(request+2) << 8)) * 4)) << 16; + } + + return (num); +} + + +// Process SWD Write ABORT command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response +#if (DAP_SWD != 0) +static uint32_t DAP_SWD_WriteAbort(const uint8_t *request, uint8_t *response) { + uint32_t data; + + // Load data (Ignore DAP index) + data = (uint32_t)(*(request+1) << 0) | + (uint32_t)(*(request+2) << 8) | + (uint32_t)(*(request+3) << 16) | + (uint32_t)(*(request+4) << 24); + + // Write Abort register + SWD_Transfer(DP_ABORT, &data); + + *response = DAP_OK; + return (1U); +} +#endif + + +// Process JTAG Write ABORT command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response +#if (DAP_JTAG != 0) +static uint32_t DAP_JTAG_WriteAbort(const uint8_t *request, uint8_t *response) { + uint32_t data; + + // Device index (JTAP TAP) + DAP_Data.jtag_dev.index = *request; + if (DAP_Data.jtag_dev.index >= DAP_Data.jtag_dev.count) { + *response = DAP_ERROR; + return (1U); + } + + // Select JTAG chain + JTAG_IR(JTAG_ABORT); + + // Load data + data = (uint32_t)(*(request+1) << 0) | + (uint32_t)(*(request+2) << 8) | + (uint32_t)(*(request+3) << 16) | + (uint32_t)(*(request+4) << 24); + + // Write Abort register + JTAG_WriteAbort(data); + + *response = DAP_OK; + return (1U); +} +#endif + + +// Process Write ABORT command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +static uint32_t DAP_WriteAbort(const uint8_t *request, uint8_t *response) { + uint32_t num; + + switch (DAP_Data.debug_port) { +#if (DAP_SWD != 0) + case DAP_PORT_SWD: + num = DAP_SWD_WriteAbort (request, response); + break; +#endif +#if (DAP_JTAG != 0) + case DAP_PORT_JTAG: + num = DAP_JTAG_WriteAbort(request, response); + break; +#endif + default: + *response = DAP_ERROR; + num = 1U; + break; + } + return ((5U << 16) | num); +} + + +// Process DAP Vendor command request and prepare response +// Default function (can be overridden) +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +__WEAK uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) { + (void)request; + *response = ID_DAP_Invalid; + return ((1U << 16) | 1U); +} + + +// Process DAP command request and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t DAP_ProcessCommand(const uint8_t *request, uint8_t *response) { + uint32_t num; + + if ((*request >= ID_DAP_Vendor0) && (*request <= ID_DAP_Vendor31)) { + return DAP_ProcessVendorCommand(request, response); + } + + *response++ = *request; + + switch (*request++) { + case ID_DAP_Info: + num = DAP_Info(*request, response+1); + *response = (uint8_t)num; + return ((2U << 16) + 2U + num); + + case ID_DAP_HostStatus: + num = DAP_HostStatus(request, response); + break; + + case ID_DAP_Connect: + num = DAP_Connect(request, response); + break; + case ID_DAP_Disconnect: + num = DAP_Disconnect(response); + break; + + case ID_DAP_Delay: + num = DAP_Delay(request, response); + break; + + case ID_DAP_ResetTarget: + num = DAP_ResetTarget(response); + break; + + case ID_DAP_SWJ_Pins: + num = DAP_SWJ_Pins(request, response); + break; + case ID_DAP_SWJ_Clock: + num = DAP_SWJ_Clock(request, response); + break; + case ID_DAP_SWJ_Sequence: + num = DAP_SWJ_Sequence(request, response); + break; + + case ID_DAP_SWD_Configure: + num = DAP_SWD_Configure(request, response); + break; + case ID_DAP_SWD_Sequence: + num = DAP_SWD_Sequence(request, response); + break; + + case ID_DAP_JTAG_Sequence: + num = DAP_JTAG_Sequence(request, response); + break; + case ID_DAP_JTAG_Configure: + num = DAP_JTAG_Configure(request, response); + break; + case ID_DAP_JTAG_IDCODE: + num = DAP_JTAG_IDCode(request, response); + break; + + case ID_DAP_TransferConfigure: + num = DAP_TransferConfigure(request, response); + break; + case ID_DAP_Transfer: + num = DAP_Transfer(request, response); + break; + case ID_DAP_TransferBlock: + num = DAP_TransferBlock(request, response); + break; + + case ID_DAP_WriteABORT: + num = DAP_WriteAbort(request, response); + break; + +#if ((SWO_UART != 0) || (SWO_MANCHESTER != 0)) + case ID_DAP_SWO_Transport: + num = SWO_Transport(request, response); + break; + case ID_DAP_SWO_Mode: + num = SWO_Mode(request, response); + break; + case ID_DAP_SWO_Baudrate: + num = SWO_Baudrate(request, response); + break; + case ID_DAP_SWO_Control: + num = SWO_Control(request, response); + break; + case ID_DAP_SWO_Status: + num = SWO_Status(response); + break; + case ID_DAP_SWO_ExtendedStatus: + num = SWO_ExtendedStatus(request, response); + break; + case ID_DAP_SWO_Data: + num = SWO_Data(request, response); + break; +#endif + +#if (DAP_UART != 0) + case ID_DAP_UART_Transport: + num = UART_Transport(request, response); + break; + case ID_DAP_UART_Configure: + num = UART_Configure(request, response); + break; + case ID_DAP_UART_Control: + num = UART_Control(request, response); + break; + case ID_DAP_UART_Status: + num = UART_Status(response); + break; + case ID_DAP_UART_Transfer: + num = UART_Transfer(request, response); + break; +#endif + + default: + *(response-1) = ID_DAP_Invalid; + return ((1U << 16) | 1U); + } + + return ((1U << 16) + 1U + num); +} + + +// Execute DAP command (process request and prepare response) +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t DAP_ExecuteCommand(const uint8_t *request, uint8_t *response) { + uint32_t cnt, num, n; + + if (*request == ID_DAP_ExecuteCommands) { + *response++ = *request++; + cnt = *request++; + *response++ = (uint8_t)cnt; + num = (2U << 16) | 2U; + while (cnt--) { + n = DAP_ProcessCommand(request, response); + num += n; + request += (uint16_t)(n >> 16); + response += (uint16_t) n; + } + return (num); + } + + return DAP_ProcessCommand(request, response); +} + + +// Setup DAP +void DAP_Setup(void) { + + // Default settings + DAP_Data.debug_port = 0U; + DAP_Data.fast_clock = 0U; + DAP_Data.clock_delay = CLOCK_DELAY(DAP_DEFAULT_SWJ_CLOCK); + DAP_Data.transfer.idle_cycles = 0U; + DAP_Data.transfer.retry_count = 100U; + DAP_Data.transfer.match_retry = 0U; + DAP_Data.transfer.match_mask = 0x00000000U; +#if (DAP_SWD != 0) + DAP_Data.swd_conf.turnaround = 1U; + DAP_Data.swd_conf.data_phase = 0U; +#endif +#if (DAP_JTAG != 0) + DAP_Data.jtag_dev.count = 0U; +#endif + + DAP_SETUP(); // Device specific setup +} diff --git a/Source/DAP_vendor.c b/Source/DAP_vendor.c new file mode 100644 index 0000000..a4ae496 --- /dev/null +++ b/Source/DAP_vendor.c @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2013-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 1. December 2017 + * $Revision: V2.0.0 + * + * Project: CMSIS-DAP Source + * Title: DAP_vendor.c CMSIS-DAP Vendor Commands + * + *---------------------------------------------------------------------------*/ + +#include "DAP_config.h" +#include "DAP.h" + +//************************************************************************************************** +/** +\defgroup DAP_Vendor_Adapt_gr Adapt Vendor Commands +\ingroup DAP_Vendor_gr +@{ + +The file DAP_vendor.c provides template source code for extension of a Debug Unit with +Vendor Commands. Copy this file to the project folder of the Debug Unit and add the +file to the MDK-ARM project under the file group Configuration. +*/ + +/** Process DAP Vendor Command and prepare Response Data +\param request pointer to request data +\param response pointer to response data +\return number of bytes in response (lower 16 bits) + number of bytes in request (upper 16 bits) +*/ +uint32_t DAP_ProcessVendorCommand(const uint8_t *request, uint8_t *response) { + uint32_t num = (1U << 16) | 1U; + + *response++ = *request; // copy Command ID + + switch (*request++) { // first byte in request is Command ID + case ID_DAP_Vendor0: +#if 0 // example user command + num += 1U << 16; // increment request count + if (*request == 1U) { // when first command data byte is 1 + *response++ = 'X'; // send 'X' as response + num++; // increment response count + } +#endif + break; + + case ID_DAP_Vendor1: break; + case ID_DAP_Vendor2: break; + case ID_DAP_Vendor3: break; + case ID_DAP_Vendor4: break; + case ID_DAP_Vendor5: break; + case ID_DAP_Vendor6: break; + case ID_DAP_Vendor7: break; + case ID_DAP_Vendor8: break; + case ID_DAP_Vendor9: break; + case ID_DAP_Vendor10: break; + case ID_DAP_Vendor11: break; + case ID_DAP_Vendor12: break; + case ID_DAP_Vendor13: break; + case ID_DAP_Vendor14: break; + case ID_DAP_Vendor15: break; + case ID_DAP_Vendor16: break; + case ID_DAP_Vendor17: break; + case ID_DAP_Vendor18: break; + case ID_DAP_Vendor19: break; + case ID_DAP_Vendor20: break; + case ID_DAP_Vendor21: break; + case ID_DAP_Vendor22: break; + case ID_DAP_Vendor23: break; + case ID_DAP_Vendor24: break; + case ID_DAP_Vendor25: break; + case ID_DAP_Vendor26: break; + case ID_DAP_Vendor27: break; + case ID_DAP_Vendor28: break; + case ID_DAP_Vendor29: break; + case ID_DAP_Vendor30: break; + case ID_DAP_Vendor31: break; + } + + return (num); +} + +///@} diff --git a/Source/JTAG_DP.c b/Source/JTAG_DP.c new file mode 100644 index 0000000..24b1f3f --- /dev/null +++ b/Source/JTAG_DP.c @@ -0,0 +1,370 @@ +/* + * Copyright (c) 2013-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 1. December 2017 + * $Revision: V2.0.0 + * + * Project: CMSIS-DAP Source + * Title: JTAG_DP.c CMSIS-DAP JTAG DP I/O + * + *---------------------------------------------------------------------------*/ + +#include "DAP_config.h" +#include "DAP.h" + + +// JTAG Macros + +#define PIN_TCK_SET PIN_SWCLK_TCK_SET +#define PIN_TCK_CLR PIN_SWCLK_TCK_CLR +#define PIN_TMS_SET PIN_SWDIO_TMS_SET +#define PIN_TMS_CLR PIN_SWDIO_TMS_CLR + +#define JTAG_CYCLE_TCK() \ + PIN_TCK_CLR(); \ + PIN_DELAY(); \ + PIN_TCK_SET(); \ + PIN_DELAY() + +#define JTAG_CYCLE_TDI(tdi) \ + PIN_TDI_OUT(tdi); \ + PIN_TCK_CLR(); \ + PIN_DELAY(); \ + PIN_TCK_SET(); \ + PIN_DELAY() + +#define JTAG_CYCLE_TDO(tdo) \ + PIN_TCK_CLR(); \ + PIN_DELAY(); \ + tdo = PIN_TDO_IN(); \ + PIN_TCK_SET(); \ + PIN_DELAY() + +#define JTAG_CYCLE_TDIO(tdi,tdo) \ + PIN_TDI_OUT(tdi); \ + PIN_TCK_CLR(); \ + PIN_DELAY(); \ + tdo = PIN_TDO_IN(); \ + PIN_TCK_SET(); \ + PIN_DELAY() + +#define PIN_DELAY() PIN_DELAY_SLOW(DAP_Data.clock_delay) + + +#if (DAP_JTAG != 0) + + +// Generate JTAG Sequence +// info: sequence information +// tdi: pointer to TDI generated data +// tdo: pointer to TDO captured data +// return: none +void JTAG_Sequence (uint32_t info, const uint8_t *tdi, uint8_t *tdo) { + uint32_t i_val; + uint32_t o_val; + uint32_t bit; + uint32_t n, k; + + n = info & JTAG_SEQUENCE_TCK; + if (n == 0U) { + n = 64U; + } + + if (info & JTAG_SEQUENCE_TMS) { + PIN_TMS_SET(); + } else { + PIN_TMS_CLR(); + } + + while (n) { + i_val = *tdi++; + o_val = 0U; + for (k = 8U; k && n; k--, n--) { + JTAG_CYCLE_TDIO(i_val, bit); + i_val >>= 1; + o_val >>= 1; + o_val |= bit << 7; + } + o_val >>= k; + if (info & JTAG_SEQUENCE_TDO) { + *tdo++ = (uint8_t)o_val; + } + } +} + + +// JTAG Set IR +// ir: IR value +// return: none +#define JTAG_IR_Function(speed) /**/ \ +static void JTAG_IR_##speed (uint32_t ir) { \ + uint32_t n; \ + \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TCK(); /* Select-DR-Scan */ \ + JTAG_CYCLE_TCK(); /* Select-IR-Scan */ \ + PIN_TMS_CLR(); \ + JTAG_CYCLE_TCK(); /* Capture-IR */ \ + JTAG_CYCLE_TCK(); /* Shift-IR */ \ + \ + PIN_TDI_OUT(1U); \ + for (n = DAP_Data.jtag_dev.ir_before[DAP_Data.jtag_dev.index]; n; n--) { \ + JTAG_CYCLE_TCK(); /* Bypass before data */ \ + } \ + for (n = DAP_Data.jtag_dev.ir_length[DAP_Data.jtag_dev.index] - 1U; n; n--) { \ + JTAG_CYCLE_TDI(ir); /* Set IR bits (except last) */ \ + ir >>= 1; \ + } \ + n = DAP_Data.jtag_dev.ir_after[DAP_Data.jtag_dev.index]; \ + if (n) { \ + JTAG_CYCLE_TDI(ir); /* Set last IR bit */ \ + PIN_TDI_OUT(1U); \ + for (--n; n; n--) { \ + JTAG_CYCLE_TCK(); /* Bypass after data */ \ + } \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TCK(); /* Bypass & Exit1-IR */ \ + } else { \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TDI(ir); /* Set last IR bit & Exit1-IR */ \ + } \ + \ + JTAG_CYCLE_TCK(); /* Update-IR */ \ + PIN_TMS_CLR(); \ + JTAG_CYCLE_TCK(); /* Idle */ \ + PIN_TDI_OUT(1U); \ +} + + +// JTAG Transfer I/O +// request: A[3:2] RnW APnDP +// data: DATA[31:0] +// return: ACK[2:0] +#define JTAG_TransferFunction(speed) /**/ \ +static uint8_t JTAG_Transfer##speed (uint32_t request, uint32_t *data) { \ + uint32_t ack; \ + uint32_t bit; \ + uint32_t val; \ + uint32_t n; \ + \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TCK(); /* Select-DR-Scan */ \ + PIN_TMS_CLR(); \ + JTAG_CYCLE_TCK(); /* Capture-DR */ \ + JTAG_CYCLE_TCK(); /* Shift-DR */ \ + \ + for (n = DAP_Data.jtag_dev.index; n; n--) { \ + JTAG_CYCLE_TCK(); /* Bypass before data */ \ + } \ + \ + JTAG_CYCLE_TDIO(request >> 1, bit); /* Set RnW, Get ACK.0 */ \ + ack = bit << 1; \ + JTAG_CYCLE_TDIO(request >> 2, bit); /* Set A2, Get ACK.1 */ \ + ack |= bit << 0; \ + JTAG_CYCLE_TDIO(request >> 3, bit); /* Set A3, Get ACK.2 */ \ + ack |= bit << 2; \ + \ + if (ack != DAP_TRANSFER_OK) { \ + /* Exit on error */ \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TCK(); /* Exit1-DR */ \ + goto exit; \ + } \ + \ + if (request & DAP_TRANSFER_RnW) { \ + /* Read Transfer */ \ + val = 0U; \ + for (n = 31U; n; n--) { \ + JTAG_CYCLE_TDO(bit); /* Get D0..D30 */ \ + val |= bit << 31; \ + val >>= 1; \ + } \ + n = DAP_Data.jtag_dev.count - DAP_Data.jtag_dev.index - 1U; \ + if (n) { \ + JTAG_CYCLE_TDO(bit); /* Get D31 */ \ + for (--n; n; n--) { \ + JTAG_CYCLE_TCK(); /* Bypass after data */ \ + } \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TCK(); /* Bypass & Exit1-DR */ \ + } else { \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TDO(bit); /* Get D31 & Exit1-DR */ \ + } \ + val |= bit << 31; \ + if (data) { *data = val; } \ + } else { \ + /* Write Transfer */ \ + val = *data; \ + for (n = 31U; n; n--) { \ + JTAG_CYCLE_TDI(val); /* Set D0..D30 */ \ + val >>= 1; \ + } \ + n = DAP_Data.jtag_dev.count - DAP_Data.jtag_dev.index - 1U; \ + if (n) { \ + JTAG_CYCLE_TDI(val); /* Set D31 */ \ + for (--n; n; n--) { \ + JTAG_CYCLE_TCK(); /* Bypass after data */ \ + } \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TCK(); /* Bypass & Exit1-DR */ \ + } else { \ + PIN_TMS_SET(); \ + JTAG_CYCLE_TDI(val); /* Set D31 & Exit1-DR */ \ + } \ + } \ + \ +exit: \ + JTAG_CYCLE_TCK(); /* Update-DR */ \ + PIN_TMS_CLR(); \ + JTAG_CYCLE_TCK(); /* Idle */ \ + PIN_TDI_OUT(1U); \ + \ + /* Capture Timestamp */ \ + if (request & DAP_TRANSFER_TIMESTAMP) { \ + DAP_Data.timestamp = TIMESTAMP_GET(); \ + } \ + \ + /* Idle cycles */ \ + n = DAP_Data.transfer.idle_cycles; \ + while (n--) { \ + JTAG_CYCLE_TCK(); /* Idle */ \ + } \ + \ + return ((uint8_t)ack); \ +} + + +#undef PIN_DELAY +#define PIN_DELAY() PIN_DELAY_FAST() +JTAG_IR_Function(Fast) +JTAG_TransferFunction(Fast) + +#undef PIN_DELAY +#define PIN_DELAY() PIN_DELAY_SLOW(DAP_Data.clock_delay) +JTAG_IR_Function(Slow) +JTAG_TransferFunction(Slow) + + +// JTAG Read IDCODE register +// return: value read +uint32_t JTAG_ReadIDCode (void) { + uint32_t bit; + uint32_t val; + uint32_t n; + + PIN_TMS_SET(); + JTAG_CYCLE_TCK(); /* Select-DR-Scan */ + PIN_TMS_CLR(); + JTAG_CYCLE_TCK(); /* Capture-DR */ + JTAG_CYCLE_TCK(); /* Shift-DR */ + + for (n = DAP_Data.jtag_dev.index; n; n--) { + JTAG_CYCLE_TCK(); /* Bypass before data */ + } + + val = 0U; + for (n = 31U; n; n--) { + JTAG_CYCLE_TDO(bit); /* Get D0..D30 */ + val |= bit << 31; + val >>= 1; + } + PIN_TMS_SET(); + JTAG_CYCLE_TDO(bit); /* Get D31 & Exit1-DR */ + val |= bit << 31; + + JTAG_CYCLE_TCK(); /* Update-DR */ + PIN_TMS_CLR(); + JTAG_CYCLE_TCK(); /* Idle */ + + return (val); +} + + +// JTAG Write ABORT register +// data: value to write +// return: none +void JTAG_WriteAbort (uint32_t data) { + uint32_t n; + + PIN_TMS_SET(); + JTAG_CYCLE_TCK(); /* Select-DR-Scan */ + PIN_TMS_CLR(); + JTAG_CYCLE_TCK(); /* Capture-DR */ + JTAG_CYCLE_TCK(); /* Shift-DR */ + + for (n = DAP_Data.jtag_dev.index; n; n--) { + JTAG_CYCLE_TCK(); /* Bypass before data */ + } + + PIN_TDI_OUT(0U); + JTAG_CYCLE_TCK(); /* Set RnW=0 (Write) */ + JTAG_CYCLE_TCK(); /* Set A2=0 */ + JTAG_CYCLE_TCK(); /* Set A3=0 */ + + for (n = 31U; n; n--) { + JTAG_CYCLE_TDI(data); /* Set D0..D30 */ + data >>= 1; + } + n = DAP_Data.jtag_dev.count - DAP_Data.jtag_dev.index - 1U; + if (n) { + JTAG_CYCLE_TDI(data); /* Set D31 */ + for (--n; n; n--) { + JTAG_CYCLE_TCK(); /* Bypass after data */ + } + PIN_TMS_SET(); + JTAG_CYCLE_TCK(); /* Bypass & Exit1-DR */ + } else { + PIN_TMS_SET(); + JTAG_CYCLE_TDI(data); /* Set D31 & Exit1-DR */ + } + + JTAG_CYCLE_TCK(); /* Update-DR */ + PIN_TMS_CLR(); + JTAG_CYCLE_TCK(); /* Idle */ + PIN_TDI_OUT(1U); +} + + +// JTAG Set IR +// ir: IR value +// return: none +void JTAG_IR (uint32_t ir) { + if (DAP_Data.fast_clock) { + JTAG_IR_Fast(ir); + } else { + JTAG_IR_Slow(ir); + } +} + + +// JTAG Transfer I/O +// request: A[3:2] RnW APnDP +// data: DATA[31:0] +// return: ACK[2:0] +uint8_t JTAG_Transfer(uint32_t request, uint32_t *data) { + if (DAP_Data.fast_clock) { + return JTAG_TransferFast(request, data); + } else { + return JTAG_TransferSlow(request, data); + } +} + + +#endif /* (DAP_JTAG != 0) */ diff --git a/Source/SWO.c b/Source/SWO.c new file mode 100644 index 0000000..4ed50ad --- /dev/null +++ b/Source/SWO.c @@ -0,0 +1,798 @@ +/* + * Copyright (c) 2013-2021 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 29. March 2021 + * $Revision: V2.0.1 + * + * Project: CMSIS-DAP Source + * Title: SWO.c CMSIS-DAP SWO I/O + * + *---------------------------------------------------------------------------*/ + +#include "DAP_config.h" +#include "DAP.h" +#if (SWO_UART != 0) +#include "Driver_USART.h" +#endif +#if (SWO_STREAM != 0) +#include "cmsis_os2.h" +#define osObjectsExternal +#include "osObjects.h" +#endif + +#if (SWO_STREAM != 0) +#ifdef DAP_FW_V1 +#error "SWO Streaming Trace not supported in DAP V1!" +#endif +#endif + +#if (SWO_UART != 0) + +// USART Driver +#define _USART_Driver_(n) Driver_USART##n +#define USART_Driver_(n) _USART_Driver_(n) +extern ARM_DRIVER_USART USART_Driver_(SWO_UART_DRIVER); +#define pUSART (&USART_Driver_(SWO_UART_DRIVER)) + +static uint8_t USART_Ready = 0U; + +#endif /* (SWO_UART != 0) */ + + +#if ((SWO_UART != 0) || (SWO_MANCHESTER != 0)) + + +#define SWO_STREAM_TIMEOUT 50U /* Stream timeout in ms */ + +#define USB_BLOCK_SIZE 512U /* USB Block Size */ +#define TRACE_BLOCK_SIZE 64U /* Trace Block Size (2^n: 32...512) */ + +// Trace State +static uint8_t TraceTransport = 0U; /* Trace Transport */ +static uint8_t TraceMode = 0U; /* Trace Mode */ +static uint8_t TraceStatus = 0U; /* Trace Status without Errors */ +static uint8_t TraceError[2] = {0U, 0U}; /* Trace Error flags (banked) */ +static uint8_t TraceError_n = 0U; /* Active Trace Error bank */ + +// Trace Buffer +static uint8_t TraceBuf[SWO_BUFFER_SIZE]; /* Trace Buffer (must be 2^n) */ +static volatile uint32_t TraceIndexI = 0U; /* Incoming Trace Index */ +static volatile uint32_t TraceIndexO = 0U; /* Outgoing Trace Index */ +static volatile uint8_t TraceUpdate; /* Trace Update Flag */ +static uint32_t TraceBlockSize; /* Current Trace Block Size */ + +#if (TIMESTAMP_CLOCK != 0U) +// Trace Timestamp +static volatile struct { + uint32_t index; + uint32_t tick; +} TraceTimestamp; +#endif + +// Trace Helper functions +static void ClearTrace (void); +static void ResumeTrace (void); +static uint32_t GetTraceCount (void); +static uint8_t GetTraceStatus (void); +static void SetTraceError (uint8_t flag); + +#if (SWO_STREAM != 0) +extern osThreadId_t SWO_ThreadId; +static volatile uint8_t TransferBusy = 0U; /* Transfer Busy Flag */ +static uint32_t TransferSize; /* Current Transfer Size */ +#endif + + +#if (SWO_UART != 0) + +// USART Driver Callback function +// event: event mask +static void USART_Callback (uint32_t event) { + uint32_t index_i; + uint32_t index_o; + uint32_t count; + uint32_t num; + + if (event & ARM_USART_EVENT_RECEIVE_COMPLETE) { +#if (TIMESTAMP_CLOCK != 0U) + TraceTimestamp.tick = TIMESTAMP_GET(); +#endif + index_o = TraceIndexO; + index_i = TraceIndexI; + index_i += TraceBlockSize; + TraceIndexI = index_i; +#if (TIMESTAMP_CLOCK != 0U) + TraceTimestamp.index = index_i; +#endif + num = TRACE_BLOCK_SIZE - (index_i & (TRACE_BLOCK_SIZE - 1U)); + count = index_i - index_o; + if (count <= (SWO_BUFFER_SIZE - num)) { + index_i &= SWO_BUFFER_SIZE - 1U; + TraceBlockSize = num; + pUSART->Receive(&TraceBuf[index_i], num); + } else { + TraceStatus = DAP_SWO_CAPTURE_ACTIVE | DAP_SWO_CAPTURE_PAUSED; + } + TraceUpdate = 1U; +#if (SWO_STREAM != 0) + if (TraceTransport == 2U) { + if (count >= (USB_BLOCK_SIZE - (index_o & (USB_BLOCK_SIZE - 1U)))) { + osThreadFlagsSet(SWO_ThreadId, 1U); + } + } +#endif + } + if (event & ARM_USART_EVENT_RX_OVERFLOW) { + SetTraceError(DAP_SWO_BUFFER_OVERRUN); + } + if (event & (ARM_USART_EVENT_RX_BREAK | + ARM_USART_EVENT_RX_FRAMING_ERROR | + ARM_USART_EVENT_RX_PARITY_ERROR)) { + SetTraceError(DAP_SWO_STREAM_ERROR); + } +} + +// Enable or disable SWO Mode (UART) +// enable: enable flag +// return: 1 - Success, 0 - Error +__WEAK uint32_t SWO_Mode_UART (uint32_t enable) { + int32_t status; + + USART_Ready = 0U; + + if (enable != 0U) { + status = pUSART->Initialize(USART_Callback); + if (status != ARM_DRIVER_OK) { + return (0U); + } + status = pUSART->PowerControl(ARM_POWER_FULL); + if (status != ARM_DRIVER_OK) { + pUSART->Uninitialize(); + return (0U); + } + } else { + pUSART->Control(ARM_USART_CONTROL_RX, 0U); + pUSART->Control(ARM_USART_ABORT_RECEIVE, 0U); + pUSART->PowerControl(ARM_POWER_OFF); + pUSART->Uninitialize(); + } + return (1U); +} + +// Configure SWO Baudrate (UART) +// baudrate: requested baudrate +// return: actual baudrate or 0 when not configured +__WEAK uint32_t SWO_Baudrate_UART (uint32_t baudrate) { + int32_t status; + uint32_t index; + uint32_t num; + + if (baudrate > SWO_UART_MAX_BAUDRATE) { + baudrate = SWO_UART_MAX_BAUDRATE; + } + + if (TraceStatus & DAP_SWO_CAPTURE_ACTIVE) { + pUSART->Control(ARM_USART_CONTROL_RX, 0U); + if (pUSART->GetStatus().rx_busy) { + TraceIndexI += pUSART->GetRxCount(); + pUSART->Control(ARM_USART_ABORT_RECEIVE, 0U); + } + } + + status = pUSART->Control(ARM_USART_MODE_ASYNCHRONOUS | + ARM_USART_DATA_BITS_8 | + ARM_USART_PARITY_NONE | + ARM_USART_STOP_BITS_1, + baudrate); + + if (status == ARM_DRIVER_OK) { + USART_Ready = 1U; + } else { + USART_Ready = 0U; + return (0U); + } + + if (TraceStatus & DAP_SWO_CAPTURE_ACTIVE) { + if ((TraceStatus & DAP_SWO_CAPTURE_PAUSED) == 0U) { + index = TraceIndexI & (SWO_BUFFER_SIZE - 1U); + num = TRACE_BLOCK_SIZE - (index & (TRACE_BLOCK_SIZE - 1U)); + TraceBlockSize = num; + pUSART->Receive(&TraceBuf[index], num); + } + pUSART->Control(ARM_USART_CONTROL_RX, 1U); + } + + return (baudrate); +} + +// Control SWO Capture (UART) +// active: active flag +// return: 1 - Success, 0 - Error +__WEAK uint32_t SWO_Control_UART (uint32_t active) { + int32_t status; + + if (active) { + if (!USART_Ready) { + return (0U); + } + TraceBlockSize = 1U; + status = pUSART->Receive(&TraceBuf[0], 1U); + if (status != ARM_DRIVER_OK) { + return (0U); + } + status = pUSART->Control(ARM_USART_CONTROL_RX, 1U); + if (status != ARM_DRIVER_OK) { + return (0U); + } + } else { + pUSART->Control(ARM_USART_CONTROL_RX, 0U); + if (pUSART->GetStatus().rx_busy) { + TraceIndexI += pUSART->GetRxCount(); + pUSART->Control(ARM_USART_ABORT_RECEIVE, 0U); + } + } + return (1U); +} + +// Start SWO Capture (UART) +// buf: pointer to buffer for capturing +// num: number of bytes to capture +__WEAK void SWO_Capture_UART (uint8_t *buf, uint32_t num) { + TraceBlockSize = num; + pUSART->Receive(buf, num); +} + +// Get SWO Pending Trace Count (UART) +// return: number of pending trace data bytes +__WEAK uint32_t SWO_GetCount_UART (void) { + uint32_t count; + + if (pUSART->GetStatus().rx_busy) { + count = pUSART->GetRxCount(); + } else { + count = 0U; + } + return (count); +} + +#endif /* (SWO_UART != 0) */ + + +#if (SWO_MANCHESTER != 0) + +// Enable or disable SWO Mode (Manchester) +// enable: enable flag +// return: 1 - Success, 0 - Error +__WEAK uint32_t SWO_Mode_Manchester (uint32_t enable) { + return (0U); +} + +// Configure SWO Baudrate (Manchester) +// baudrate: requested baudrate +// return: actual baudrate or 0 when not configured +__WEAK uint32_t SWO_Baudrate_Manchester (uint32_t baudrate) { + return (0U); +} + +// Control SWO Capture (Manchester) +// active: active flag +// return: 1 - Success, 0 - Error +__WEAK uint32_t SWO_Control_Manchester (uint32_t active) { + return (0U); +} + +// Start SWO Capture (Manchester) +// buf: pointer to buffer for capturing +// num: number of bytes to capture +__WEAK void SWO_Capture_Manchester (uint8_t *buf, uint32_t num) { +} + +// Get SWO Pending Trace Count (Manchester) +// return: number of pending trace data bytes +__WEAK uint32_t SWO_GetCount_Manchester (void) { +} + +#endif /* (SWO_MANCHESTER != 0) */ + + +// Clear Trace Errors and Data +static void ClearTrace (void) { + +#if (SWO_STREAM != 0) + if (TraceTransport == 2U) { + if (TransferBusy != 0U) { + SWO_AbortTransfer(); + TransferBusy = 0U; + } + } +#endif + + TraceError[0] = 0U; + TraceError[1] = 0U; + TraceError_n = 0U; + TraceIndexI = 0U; + TraceIndexO = 0U; + +#if (TIMESTAMP_CLOCK != 0U) + TraceTimestamp.index = 0U; + TraceTimestamp.tick = 0U; +#endif +} + +// Resume Trace Capture +static void ResumeTrace (void) { + uint32_t index_i; + uint32_t index_o; + + if (TraceStatus == (DAP_SWO_CAPTURE_ACTIVE | DAP_SWO_CAPTURE_PAUSED)) { + index_i = TraceIndexI; + index_o = TraceIndexO; + if ((index_i - index_o) < SWO_BUFFER_SIZE) { + index_i &= SWO_BUFFER_SIZE - 1U; + switch (TraceMode) { +#if (SWO_UART != 0) + case DAP_SWO_UART: + TraceStatus = DAP_SWO_CAPTURE_ACTIVE; + SWO_Capture_UART(&TraceBuf[index_i], 1U); + break; +#endif +#if (SWO_MANCHESTER != 0) + case DAP_SWO_MANCHESTER: + TraceStatus = DAP_SWO_CAPTURE_ACTIVE; + SWO_Capture_Manchester(&TraceBuf[index_i], 1U); + break; +#endif + default: + break; + } + } + } +} + +// Get Trace Count +// return: number of available data bytes in trace buffer +static uint32_t GetTraceCount (void) { + uint32_t count; + + if (TraceStatus == DAP_SWO_CAPTURE_ACTIVE) { + do { + TraceUpdate = 0U; + count = TraceIndexI - TraceIndexO; + switch (TraceMode) { +#if (SWO_UART != 0) + case DAP_SWO_UART: + count += SWO_GetCount_UART(); + break; +#endif +#if (SWO_MANCHESTER != 0) + case DAP_SWO_MANCHESTER: + count += SWO_GetCount_Manchester(); + break; +#endif + default: + break; + } + } while (TraceUpdate != 0U); + } else { + count = TraceIndexI - TraceIndexO; + } + + return (count); +} + +// Get Trace Status (clear Error flags) +// return: Trace Status (Active flag and Error flags) +static uint8_t GetTraceStatus (void) { + uint8_t status; + uint32_t n; + + n = TraceError_n; + TraceError_n ^= 1U; + status = TraceStatus | TraceError[n]; + TraceError[n] = 0U; + + return (status); +} + +// Set Trace Error flag(s) +// flag: error flag(s) to set +static void SetTraceError (uint8_t flag) { + TraceError[TraceError_n] |= flag; +} + + +// Process SWO Transport command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t SWO_Transport (const uint8_t *request, uint8_t *response) { + uint8_t transport; + uint32_t result; + + if ((TraceStatus & DAP_SWO_CAPTURE_ACTIVE) == 0U) { + transport = *request; + switch (transport) { + case 0U: + case 1U: +#if (SWO_STREAM != 0) + case 2U: +#endif + TraceTransport = transport; + result = 1U; + break; + default: + result = 0U; + break; + } + } else { + result = 0U; + } + + if (result != 0U) { + *response = DAP_OK; + } else { + *response = DAP_ERROR; + } + + return ((1U << 16) | 1U); +} + + +// Process SWO Mode command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t SWO_Mode (const uint8_t *request, uint8_t *response) { + uint8_t mode; + uint32_t result; + + mode = *request; + + switch (TraceMode) { +#if (SWO_UART != 0) + case DAP_SWO_UART: + SWO_Mode_UART(0U); + break; +#endif +#if (SWO_MANCHESTER != 0) + case DAP_SWO_MANCHESTER: + SWO_Mode_Manchester(0U); + break; +#endif + default: + break; + } + + switch (mode) { + case DAP_SWO_OFF: + result = 1U; + break; +#if (SWO_UART != 0) + case DAP_SWO_UART: + result = SWO_Mode_UART(1U); + break; +#endif +#if (SWO_MANCHESTER != 0) + case DAP_SWO_MANCHESTER: + result = SWO_Mode_Manchester(1U); + break; +#endif + default: + result = 0U; + break; + } + if (result != 0U) { + TraceMode = mode; + } else { + TraceMode = DAP_SWO_OFF; + } + + TraceStatus = 0U; + + if (result != 0U) { + *response = DAP_OK; + } else { + *response = DAP_ERROR; + } + + return ((1U << 16) | 1U); +} + + +// Process SWO Baudrate command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t SWO_Baudrate (const uint8_t *request, uint8_t *response) { + uint32_t baudrate; + + baudrate = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8) | + (uint32_t)(*(request+2) << 16) | + (uint32_t)(*(request+3) << 24); + + switch (TraceMode) { +#if (SWO_UART != 0) + case DAP_SWO_UART: + baudrate = SWO_Baudrate_UART(baudrate); + break; +#endif +#if (SWO_MANCHESTER != 0) + case DAP_SWO_MANCHESTER: + baudrate = SWO_Baudrate_Manchester(baudrate); + break; +#endif + default: + baudrate = 0U; + break; + } + + if (baudrate == 0U) { + TraceStatus = 0U; + } + + *response++ = (uint8_t)(baudrate >> 0); + *response++ = (uint8_t)(baudrate >> 8); + *response++ = (uint8_t)(baudrate >> 16); + *response = (uint8_t)(baudrate >> 24); + + return ((4U << 16) | 4U); +} + + +// Process SWO Control command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t SWO_Control (const uint8_t *request, uint8_t *response) { + uint8_t active; + uint32_t result; + + active = *request & DAP_SWO_CAPTURE_ACTIVE; + + if (active != (TraceStatus & DAP_SWO_CAPTURE_ACTIVE)) { + if (active) { + ClearTrace(); + } + switch (TraceMode) { +#if (SWO_UART != 0) + case DAP_SWO_UART: + result = SWO_Control_UART(active); + break; +#endif +#if (SWO_MANCHESTER != 0) + case DAP_SWO_MANCHESTER: + result = SWO_Control_Manchester(active); + break; +#endif + default: + result = 0U; + break; + } + if (result != 0U) { + TraceStatus = active; +#if (SWO_STREAM != 0) + if (TraceTransport == 2U) { + osThreadFlagsSet(SWO_ThreadId, 1U); + } +#endif + } + } else { + result = 1U; + } + + if (result != 0U) { + *response = DAP_OK; + } else { + *response = DAP_ERROR; + } + + return ((1U << 16) | 1U); +} + + +// Process SWO Status command and prepare response +// response: pointer to response data +// return: number of bytes in response +uint32_t SWO_Status (uint8_t *response) { + uint8_t status; + uint32_t count; + + status = GetTraceStatus(); + count = GetTraceCount(); + + *response++ = status; + *response++ = (uint8_t)(count >> 0); + *response++ = (uint8_t)(count >> 8); + *response++ = (uint8_t)(count >> 16); + *response = (uint8_t)(count >> 24); + + return (5U); +} + + +// Process SWO Extended Status command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t SWO_ExtendedStatus (const uint8_t *request, uint8_t *response) { + uint8_t cmd; + uint8_t status; + uint32_t count; +#if (TIMESTAMP_CLOCK != 0U) + uint32_t index; + uint32_t tick; +#endif + uint32_t num; + + num = 0U; + cmd = *request; + + if (cmd & 0x01U) { + status = GetTraceStatus(); + *response++ = status; + num += 1U; + } + + if (cmd & 0x02U) { + count = GetTraceCount(); + *response++ = (uint8_t)(count >> 0); + *response++ = (uint8_t)(count >> 8); + *response++ = (uint8_t)(count >> 16); + *response++ = (uint8_t)(count >> 24); + num += 4U; + } + +#if (TIMESTAMP_CLOCK != 0U) + if (cmd & 0x04U) { + do { + TraceUpdate = 0U; + index = TraceTimestamp.index; + tick = TraceTimestamp.tick; + } while (TraceUpdate != 0U); + *response++ = (uint8_t)(index >> 0); + *response++ = (uint8_t)(index >> 8); + *response++ = (uint8_t)(index >> 16); + *response++ = (uint8_t)(index >> 24); + *response++ = (uint8_t)(tick >> 0); + *response++ = (uint8_t)(tick >> 8); + *response++ = (uint8_t)(tick >> 16); + *response++ = (uint8_t)(tick >> 24); + num += 4U; + } +#endif + + return ((1U << 16) | num); +} + + +// Process SWO Data command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t SWO_Data (const uint8_t *request, uint8_t *response) { + uint8_t status; + uint32_t count; + uint32_t index; + uint32_t n, i; + + status = GetTraceStatus(); + count = GetTraceCount(); + + if (TraceTransport == 1U) { + n = (uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8); + if (n > (DAP_PACKET_SIZE - 4U)) { + n = DAP_PACKET_SIZE - 4U; + } + if (count > n) { + count = n; + } + } else { + count = 0U; + } + + *response++ = status; + *response++ = (uint8_t)(count >> 0); + *response++ = (uint8_t)(count >> 8); + + if (TraceTransport == 1U) { + index = TraceIndexO; + for (i = index, n = count; n; n--) { + i &= SWO_BUFFER_SIZE - 1U; + *response++ = TraceBuf[i++]; + } + TraceIndexO = index + count; + ResumeTrace(); + } + + return ((2U << 16) | (3U + count)); +} + + +#if (SWO_STREAM != 0) + +// SWO Data Transfer complete callback +void SWO_TransferComplete (void) { + TraceIndexO += TransferSize; + TransferBusy = 0U; + ResumeTrace(); + osThreadFlagsSet(SWO_ThreadId, 1U); +} + +// SWO Thread +__NO_RETURN void SWO_Thread (void *argument) { + uint32_t timeout; + uint32_t flags; + uint32_t count; + uint32_t index; + uint32_t i, n; + (void) argument; + + timeout = osWaitForever; + + for (;;) { + flags = osThreadFlagsWait(1U, osFlagsWaitAny, timeout); + if (TraceStatus & DAP_SWO_CAPTURE_ACTIVE) { + timeout = SWO_STREAM_TIMEOUT; + } else { + timeout = osWaitForever; + flags = osFlagsErrorTimeout; + } + if (TransferBusy == 0U) { + count = GetTraceCount(); + if (count != 0U) { + index = TraceIndexO & (SWO_BUFFER_SIZE - 1U); + n = SWO_BUFFER_SIZE - index; + if (count > n) { + count = n; + } + if (flags != osFlagsErrorTimeout) { + i = index & (USB_BLOCK_SIZE - 1U); + if (i == 0U) { + count &= ~(USB_BLOCK_SIZE - 1U); + } else { + n = USB_BLOCK_SIZE - i; + if (count >= n) { + count = n; + } else { + count = 0U; + } + } + } + if (count != 0U) { + TransferSize = count; + TransferBusy = 1U; + SWO_QueueTransfer(&TraceBuf[index], count); + } + } + } + } +} + +#endif /* (SWO_STREAM != 0) */ + + +#endif /* ((SWO_UART != 0) || (SWO_MANCHESTER != 0)) */ diff --git a/Source/SW_DP.c b/Source/SW_DP.c new file mode 100644 index 0000000..803cf42 --- /dev/null +++ b/Source/SW_DP.c @@ -0,0 +1,286 @@ +/* + * Copyright (c) 2013-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 1. December 2017 + * $Revision: V2.0.0 + * + * Project: CMSIS-DAP Source + * Title: SW_DP.c CMSIS-DAP SW DP I/O + * + *---------------------------------------------------------------------------*/ + +#include "DAP_config.h" +#include "DAP.h" + + +// SW Macros + +#define PIN_SWCLK_SET PIN_SWCLK_TCK_SET +#define PIN_SWCLK_CLR PIN_SWCLK_TCK_CLR + +#define SW_CLOCK_CYCLE() \ + PIN_SWCLK_CLR(); \ + PIN_DELAY(); \ + PIN_SWCLK_SET(); \ + PIN_DELAY() + +#define SW_WRITE_BIT(bit) \ + PIN_SWDIO_OUT(bit); \ + PIN_SWCLK_CLR(); \ + PIN_DELAY(); \ + PIN_SWCLK_SET(); \ + PIN_DELAY() + +#define SW_READ_BIT(bit) \ + PIN_SWCLK_CLR(); \ + PIN_DELAY(); \ + bit = PIN_SWDIO_IN(); \ + PIN_SWCLK_SET(); \ + PIN_DELAY() + +#define PIN_DELAY() PIN_DELAY_SLOW(DAP_Data.clock_delay) + + +// Generate SWJ Sequence +// count: sequence bit count +// data: pointer to sequence bit data +// return: none +#if ((DAP_SWD != 0) || (DAP_JTAG != 0)) +void SWJ_Sequence (uint32_t count, const uint8_t *data) { + uint32_t val; + uint32_t n; + + val = 0U; + n = 0U; + while (count--) { + if (n == 0U) { + val = *data++; + n = 8U; + } + if (val & 1U) { + PIN_SWDIO_TMS_SET(); + } else { + PIN_SWDIO_TMS_CLR(); + } + SW_CLOCK_CYCLE(); + val >>= 1; + n--; + } +} +#endif + + +// Generate SWD Sequence +// info: sequence information +// swdo: pointer to SWDIO generated data +// swdi: pointer to SWDIO captured data +// return: none +#if (DAP_SWD != 0) +void SWD_Sequence (uint32_t info, const uint8_t *swdo, uint8_t *swdi) { + uint32_t val; + uint32_t bit; + uint32_t n, k; + + n = info & SWD_SEQUENCE_CLK; + if (n == 0U) { + n = 64U; + } + + if (info & SWD_SEQUENCE_DIN) { + while (n) { + val = 0U; + for (k = 8U; k && n; k--, n--) { + SW_READ_BIT(bit); + val >>= 1; + val |= bit << 7; + } + val >>= k; + *swdi++ = (uint8_t)val; + } + } else { + while (n) { + val = *swdo++; + for (k = 8U; k && n; k--, n--) { + SW_WRITE_BIT(val); + val >>= 1; + } + } + } +} +#endif + + +#if (DAP_SWD != 0) + + +// SWD Transfer I/O +// request: A[3:2] RnW APnDP +// data: DATA[31:0] +// return: ACK[2:0] +#define SWD_TransferFunction(speed) /**/ \ +static uint8_t SWD_Transfer##speed (uint32_t request, uint32_t *data) { \ + uint32_t ack; \ + uint32_t bit; \ + uint32_t val; \ + uint32_t parity; \ + \ + uint32_t n; \ + \ + /* Packet Request */ \ + parity = 0U; \ + SW_WRITE_BIT(1U); /* Start Bit */ \ + bit = request >> 0; \ + SW_WRITE_BIT(bit); /* APnDP Bit */ \ + parity += bit; \ + bit = request >> 1; \ + SW_WRITE_BIT(bit); /* RnW Bit */ \ + parity += bit; \ + bit = request >> 2; \ + SW_WRITE_BIT(bit); /* A2 Bit */ \ + parity += bit; \ + bit = request >> 3; \ + SW_WRITE_BIT(bit); /* A3 Bit */ \ + parity += bit; \ + SW_WRITE_BIT(parity); /* Parity Bit */ \ + SW_WRITE_BIT(0U); /* Stop Bit */ \ + SW_WRITE_BIT(1U); /* Park Bit */ \ + \ + /* Turnaround */ \ + PIN_SWDIO_OUT_DISABLE(); \ + for (n = DAP_Data.swd_conf.turnaround; n; n--) { \ + SW_CLOCK_CYCLE(); \ + } \ + \ + /* Acknowledge response */ \ + SW_READ_BIT(bit); \ + ack = bit << 0; \ + SW_READ_BIT(bit); \ + ack |= bit << 1; \ + SW_READ_BIT(bit); \ + ack |= bit << 2; \ + \ + if (ack == DAP_TRANSFER_OK) { /* OK response */ \ + /* Data transfer */ \ + if (request & DAP_TRANSFER_RnW) { \ + /* Read data */ \ + val = 0U; \ + parity = 0U; \ + for (n = 32U; n; n--) { \ + SW_READ_BIT(bit); /* Read RDATA[0:31] */ \ + parity += bit; \ + val >>= 1; \ + val |= bit << 31; \ + } \ + SW_READ_BIT(bit); /* Read Parity */ \ + if ((parity ^ bit) & 1U) { \ + ack = DAP_TRANSFER_ERROR; \ + } \ + if (data) { *data = val; } \ + /* Turnaround */ \ + for (n = DAP_Data.swd_conf.turnaround; n; n--) { \ + SW_CLOCK_CYCLE(); \ + } \ + PIN_SWDIO_OUT_ENABLE(); \ + } else { \ + /* Turnaround */ \ + for (n = DAP_Data.swd_conf.turnaround; n; n--) { \ + SW_CLOCK_CYCLE(); \ + } \ + PIN_SWDIO_OUT_ENABLE(); \ + /* Write data */ \ + val = *data; \ + parity = 0U; \ + for (n = 32U; n; n--) { \ + SW_WRITE_BIT(val); /* Write WDATA[0:31] */ \ + parity += val; \ + val >>= 1; \ + } \ + SW_WRITE_BIT(parity); /* Write Parity Bit */ \ + } \ + /* Capture Timestamp */ \ + if (request & DAP_TRANSFER_TIMESTAMP) { \ + DAP_Data.timestamp = TIMESTAMP_GET(); \ + } \ + /* Idle cycles */ \ + n = DAP_Data.transfer.idle_cycles; \ + if (n) { \ + PIN_SWDIO_OUT(0U); \ + for (; n; n--) { \ + SW_CLOCK_CYCLE(); \ + } \ + } \ + PIN_SWDIO_OUT(1U); \ + return ((uint8_t)ack); \ + } \ + \ + if ((ack == DAP_TRANSFER_WAIT) || (ack == DAP_TRANSFER_FAULT)) { \ + /* WAIT or FAULT response */ \ + if (DAP_Data.swd_conf.data_phase && ((request & DAP_TRANSFER_RnW) != 0U)) { \ + for (n = 32U+1U; n; n--) { \ + SW_CLOCK_CYCLE(); /* Dummy Read RDATA[0:31] + Parity */ \ + } \ + } \ + /* Turnaround */ \ + for (n = DAP_Data.swd_conf.turnaround; n; n--) { \ + SW_CLOCK_CYCLE(); \ + } \ + PIN_SWDIO_OUT_ENABLE(); \ + if (DAP_Data.swd_conf.data_phase && ((request & DAP_TRANSFER_RnW) == 0U)) { \ + PIN_SWDIO_OUT(0U); \ + for (n = 32U+1U; n; n--) { \ + SW_CLOCK_CYCLE(); /* Dummy Write WDATA[0:31] + Parity */ \ + } \ + } \ + PIN_SWDIO_OUT(1U); \ + return ((uint8_t)ack); \ + } \ + \ + /* Protocol error */ \ + for (n = DAP_Data.swd_conf.turnaround + 32U + 1U; n; n--) { \ + SW_CLOCK_CYCLE(); /* Back off data phase */ \ + } \ + PIN_SWDIO_OUT_ENABLE(); \ + PIN_SWDIO_OUT(1U); \ + return ((uint8_t)ack); \ +} + + +#undef PIN_DELAY +#define PIN_DELAY() PIN_DELAY_FAST() +SWD_TransferFunction(Fast) + +#undef PIN_DELAY +#define PIN_DELAY() PIN_DELAY_SLOW(DAP_Data.clock_delay) +SWD_TransferFunction(Slow) + + +// SWD Transfer I/O +// request: A[3:2] RnW APnDP +// data: DATA[31:0] +// return: ACK[2:0] +uint8_t SWD_Transfer(uint32_t request, uint32_t *data) { + if (DAP_Data.fast_clock) { + return SWD_TransferFast(request, data); + } else { + return SWD_TransferSlow(request, data); + } +} + + +#endif /* (DAP_SWD != 0) */ diff --git a/Source/UART.c b/Source/UART.c new file mode 100644 index 0000000..8e9eae5 --- /dev/null +++ b/Source/UART.c @@ -0,0 +1,652 @@ +/* + * Copyright (c) 2021 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ---------------------------------------------------------------------- + * + * $Date: 1. March 2021 + * $Revision: V1.0.0 + * + * Project: CMSIS-DAP Source + * Title: UART.c CMSIS-DAP UART + * + *---------------------------------------------------------------------------*/ + +#include "DAP_config.h" +#include "DAP.h" + +#if (DAP_UART != 0) + +#ifdef DAP_FW_V1 +#error "UART Communication Port not supported in DAP V1!" +#endif + +#include "Driver_USART.h" + +#include "cmsis_os2.h" +#include + +#define UART_RX_BLOCK_SIZE 32U /* Uart Rx Block Size (must be 2^n) */ + +// USART Driver +#define _USART_Driver_(n) Driver_USART##n +#define USART_Driver_(n) _USART_Driver_(n) +extern ARM_DRIVER_USART USART_Driver_(DAP_UART_DRIVER); +#define pUSART (&USART_Driver_(DAP_UART_DRIVER)) + +// UART Configuration +#if (DAP_UART_USB_COM_PORT != 0) +static uint8_t UartTransport = DAP_UART_TRANSPORT_USB_COM_PORT; +#else +static uint8_t UartTransport = DAP_UART_TRANSPORT_NONE; +#endif + +// UART Flags +static uint8_t UartConfigured = 0U; +static uint8_t UartReceiveEnabled = 0U; +static uint8_t UartTransmitEnabled = 0U; +static uint8_t UartTransmitActive = 0U; + +// UART TX Buffer +static uint8_t UartTxBuf[DAP_UART_TX_BUFFER_SIZE]; +static volatile uint32_t UartTxIndexI = 0U; +static volatile uint32_t UartTxIndexO = 0U; + +// UART RX Buffer +static uint8_t UartRxBuf[DAP_UART_RX_BUFFER_SIZE]; +static volatile uint32_t UartRxIndexI = 0U; +static volatile uint32_t UartRxIndexO = 0U; + +// Uart Errors +static volatile uint8_t UartErrorRxDataLost = 0U; +static volatile uint8_t UartErrorFraming = 0U; +static volatile uint8_t UartErrorParity = 0U; + +// UART Transmit +static uint32_t UartTxNum = 0U; + +// Function prototypes +static uint8_t UART_Init (void); +static void UART_Uninit (void); +static uint8_t UART_Get_Status (void); +static uint8_t UART_Receive_Enable (void); +static uint8_t UART_Transmit_Enable (void); +static void UART_Receive_Disable (void); +static void UART_Transmit_Disable (void); +static void UART_Receive_Flush (void); +static void UART_Transmit_Flush (void); +static void UART_Receive (void); +static void UART_Transmit (void); + + +// USART Driver Callback function +// event: event mask +static void USART_Callback (uint32_t event) { + if (event & ARM_USART_EVENT_SEND_COMPLETE) { + UartTxIndexO += UartTxNum; + UartTransmitActive = 0U; + UART_Transmit(); + } + if (event & ARM_USART_EVENT_RECEIVE_COMPLETE) { + UartRxIndexI += UART_RX_BLOCK_SIZE; + UART_Receive(); + } + if (event & ARM_USART_EVENT_RX_OVERFLOW) { + UartErrorRxDataLost = 1U; + } + if (event & ARM_USART_EVENT_RX_FRAMING_ERROR) { + UartErrorFraming = 1U; + } + if (event & ARM_USART_EVENT_RX_PARITY_ERROR) { + UartErrorParity = 1U; + } +} + +// Init UART +// return: DAP_OK or DAP_ERROR +static uint8_t UART_Init (void) { + int32_t status; + uint8_t ret = DAP_ERROR; + + UartConfigured = 0U; + UartReceiveEnabled = 0U; + UartTransmitEnabled = 0U; + UartTransmitActive = 0U; + UartErrorRxDataLost = 0U; + UartErrorFraming = 0U; + UartErrorParity = 0U; + UartTxIndexI = 0U; + UartTxIndexO = 0U; + UartRxIndexI = 0U; + UartRxIndexO = 0U; + UartTxNum = 0U; + + status = pUSART->Initialize(USART_Callback); + if (status == ARM_DRIVER_OK) { + status = pUSART->PowerControl(ARM_POWER_FULL); + } + if (status == ARM_DRIVER_OK) { + ret = DAP_OK; + } + + return (ret); +} + +// Un-Init UART +static void UART_Uninit (void) { + UartConfigured = 0U; + + pUSART->PowerControl(ARM_POWER_OFF); + pUSART->Uninitialize(); +} + +// Get UART Status +// return: status +static uint8_t UART_Get_Status (void) { + uint8_t status = 0U; + + if (UartReceiveEnabled != 0U) { + status |= DAP_UART_STATUS_RX_ENABLED; + } + if (UartErrorRxDataLost != 0U) { + UartErrorRxDataLost = 0U; + status |= DAP_UART_STATUS_RX_DATA_LOST; + } + if (UartErrorFraming != 0U) { + UartErrorFraming = 0U; + status |= DAP_UART_STATUS_FRAMING_ERROR; + } + if (UartErrorParity != 0U) { + UartErrorParity = 0U; + status |= DAP_UART_STATUS_PARITY_ERROR; + } + if (UartTransmitEnabled != 0U) { + status |= DAP_UART_STATUS_TX_ENABLED; + } + + return (status); +} + +// Enable UART Receive +// return: DAP_OK or DAP_ERROR +static uint8_t UART_Receive_Enable (void) { + int32_t status; + uint8_t ret = DAP_ERROR; + + if (UartReceiveEnabled == 0U) { + // Flush Buffers + UartRxIndexI = 0U; + UartRxIndexO = 0U; + + UART_Receive(); + status = pUSART->Control(ARM_USART_CONTROL_RX, 1U); + if (status == ARM_DRIVER_OK) { + UartReceiveEnabled = 1U; + ret = DAP_OK; + } + } else { + ret = DAP_OK; + } + + return (ret); +} + +// Enable UART Transmit +// return: DAP_OK or DAP_ERROR +static uint8_t UART_Transmit_Enable (void) { + int32_t status; + uint8_t ret = DAP_ERROR; + + if (UartTransmitEnabled == 0U) { + // Flush Buffers + UartTransmitActive = 0U; + UartTxIndexI = 0U; + UartTxIndexO = 0U; + UartTxNum = 0U; + + status = pUSART->Control(ARM_USART_CONTROL_TX, 1U); + if (status == ARM_DRIVER_OK) { + UartTransmitEnabled = 1U; + ret = DAP_OK; + } + } else { + ret = DAP_OK; + } + + return (ret); +} + +// Disable UART Receive +static void UART_Receive_Disable (void) { + if (UartReceiveEnabled != 0U) { + pUSART->Control(ARM_USART_CONTROL_RX, 0U); + pUSART->Control(ARM_USART_ABORT_RECEIVE, 0U); + UartReceiveEnabled = 0U; + } +} + +// Disable UART Transmit +static void UART_Transmit_Disable (void) { + if (UartTransmitEnabled != 0U) { + pUSART->Control(ARM_USART_ABORT_SEND, 0U); + pUSART->Control(ARM_USART_CONTROL_TX, 0U); + UartTransmitActive = 0U; + UartTransmitEnabled = 0U; + } +} + +// Flush UART Receive buffer +static void UART_Receive_Flush (void) { + pUSART->Control(ARM_USART_ABORT_RECEIVE, 0U); + UartRxIndexI = 0U; + UartRxIndexO = 0U; + if (UartReceiveEnabled != 0U) { + UART_Receive(); + } +} + +// Flush UART Transmit buffer +static void UART_Transmit_Flush (void) { + pUSART->Control(ARM_USART_ABORT_SEND, 0U); + UartTransmitActive = 0U; + UartTxIndexI = 0U; + UartTxIndexO = 0U; + UartTxNum = 0U; +} + +// Receive data from target via UART +static void UART_Receive (void) { + uint32_t index; + + index = UartRxIndexI & (DAP_UART_RX_BUFFER_SIZE - 1U); + pUSART->Receive(&UartRxBuf[index], UART_RX_BLOCK_SIZE); +} + +// Transmit available data to target via UART +static void UART_Transmit (void) { + uint32_t count; + uint32_t index; + + count = UartTxIndexI - UartTxIndexO; + index = UartTxIndexO & (DAP_UART_TX_BUFFER_SIZE - 1U); + + if (count != 0U) { + if ((index + count) <= DAP_UART_TX_BUFFER_SIZE) { + UartTxNum = count; + } else { + UartTxNum = DAP_UART_TX_BUFFER_SIZE - index; + } + UartTransmitActive = 1U; + pUSART->Send(&UartTxBuf[index], UartTxNum); + } +} + +// Process UART Transport command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t UART_Transport (const uint8_t *request, uint8_t *response) { + uint8_t transport; + uint8_t ret = DAP_ERROR; + + transport = *request; + switch (transport) { + case DAP_UART_TRANSPORT_NONE: + switch (UartTransport) { + case DAP_UART_TRANSPORT_NONE: + ret = DAP_OK; + break; + case DAP_UART_TRANSPORT_USB_COM_PORT: +#if (DAP_UART_USB_COM_PORT != 0) + USB_COM_PORT_Activate(0U); + UartTransport = DAP_UART_TRANSPORT_NONE; + ret = DAP_OK; +#endif + break; + case DAP_UART_TRANSPORT_DAP_COMMAND: + UART_Receive_Disable(); + UART_Transmit_Disable(); + UART_Uninit(); + UartTransport = DAP_UART_TRANSPORT_NONE; + ret= DAP_OK; + break; + } + break; + case DAP_UART_TRANSPORT_USB_COM_PORT: + switch (UartTransport) { + case DAP_UART_TRANSPORT_NONE: +#if (DAP_UART_USB_COM_PORT != 0) + if (USB_COM_PORT_Activate(1U) == 0U) { + UartTransport = DAP_UART_TRANSPORT_USB_COM_PORT; + ret = DAP_OK; + } +#endif + break; + case DAP_UART_TRANSPORT_USB_COM_PORT: + ret = DAP_OK; + break; + case DAP_UART_TRANSPORT_DAP_COMMAND: + UART_Receive_Disable(); + UART_Transmit_Disable(); + UART_Uninit(); + UartTransport = DAP_UART_TRANSPORT_NONE; +#if (DAP_UART_USB_COM_PORT != 0) + if (USB_COM_PORT_Activate(1U) == 0U) { + UartTransport = DAP_UART_TRANSPORT_USB_COM_PORT; + ret = DAP_OK; + } +#endif + break; + } + break; + case DAP_UART_TRANSPORT_DAP_COMMAND: + switch (UartTransport) { + case DAP_UART_TRANSPORT_NONE: + ret = UART_Init(); + if (ret == DAP_OK) { + UartTransport = DAP_UART_TRANSPORT_DAP_COMMAND; + } + break; + case DAP_UART_TRANSPORT_USB_COM_PORT: +#if (DAP_UART_USB_COM_PORT != 0) + USB_COM_PORT_Activate(0U); + UartTransport = DAP_UART_TRANSPORT_NONE; +#endif + ret = UART_Init(); + if (ret == DAP_OK) { + UartTransport = DAP_UART_TRANSPORT_DAP_COMMAND; + } + break; + case DAP_UART_TRANSPORT_DAP_COMMAND: + ret = DAP_OK; + break; + } + break; + default: + break; + } + + *response = ret; + + return ((1U << 16) | 1U); +} + +// Process UART Configure command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t UART_Configure (const uint8_t *request, uint8_t *response) { + uint8_t control, status; + uint32_t baudrate; + int32_t result; + + if (UartTransport != DAP_UART_TRANSPORT_DAP_COMMAND) { + status = DAP_UART_CFG_ERROR_DATA_BITS | + DAP_UART_CFG_ERROR_PARITY | + DAP_UART_CFG_ERROR_STOP_BITS; + baudrate = 0U; // baudrate error + } else { + + status = 0U; + control = *request; + baudrate = (uint32_t)(*(request+1) << 0) | + (uint32_t)(*(request+2) << 8) | + (uint32_t)(*(request+3) << 16) | + (uint32_t)(*(request+4) << 24); + + result = pUSART->Control(control | + ARM_USART_MODE_ASYNCHRONOUS | + ARM_USART_FLOW_CONTROL_NONE, + baudrate); + if (result == ARM_DRIVER_OK) { + UartConfigured = 1U; + } else { + UartConfigured = 0U; + switch (result) { + case ARM_USART_ERROR_BAUDRATE: + status = 0U; + baudrate = 0U; + break; + case ARM_USART_ERROR_DATA_BITS: + status = DAP_UART_CFG_ERROR_DATA_BITS; + break; + case ARM_USART_ERROR_PARITY: + status = DAP_UART_CFG_ERROR_PARITY; + break; + case ARM_USART_ERROR_STOP_BITS: + status = DAP_UART_CFG_ERROR_STOP_BITS; + break; + default: + status = DAP_UART_CFG_ERROR_DATA_BITS | + DAP_UART_CFG_ERROR_PARITY | + DAP_UART_CFG_ERROR_STOP_BITS; + baudrate = 0U; + break; + } + } + } + + *response++ = status; + *response++ = (uint8_t)(baudrate >> 0); + *response++ = (uint8_t)(baudrate >> 8); + *response++ = (uint8_t)(baudrate >> 16); + *response = (uint8_t)(baudrate >> 24); + + return ((5U << 16) | 5U); +} + +// Process UART Control command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t UART_Control (const uint8_t *request, uint8_t *response) { + uint8_t control; + uint8_t result; + uint8_t ret = DAP_OK; + + if (UartTransport != DAP_UART_TRANSPORT_DAP_COMMAND) { + ret = DAP_ERROR; + } else { + + control = *request; + + if ((control & DAP_UART_CONTROL_RX_DISABLE) != 0U) { + // Receive disable + UART_Receive_Disable(); + } else if ((control & DAP_UART_CONTROL_RX_ENABLE) != 0U) { + // Receive enable + if (UartConfigured != 0U) { + result = UART_Receive_Enable(); + if (result != DAP_OK) { + ret = DAP_ERROR; + } + } else { + ret = DAP_ERROR; + } + } + if ((control & DAP_UART_CONTROL_RX_BUF_FLUSH) != 0U) { + UART_Receive_Flush(); + } + + if ((control & DAP_UART_CONTROL_TX_DISABLE) != 0U) { + // Transmit disable + UART_Transmit_Disable(); + } else if ((control & DAP_UART_CONTROL_TX_ENABLE) != 0U) { + // Transmit enable + if (UartConfigured != 0U) { + result = UART_Transmit_Enable(); + if (result != DAP_OK) { + ret = DAP_ERROR; + } + } else { + ret = DAP_ERROR; + } + } + if ((control & DAP_UART_CONTROL_TX_BUF_FLUSH) != 0U) { + UART_Transmit_Flush(); + } + } + + *response = ret; + + return ((1U << 16) | 1U); +} + +// Process UART Status command and prepare response +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t UART_Status (uint8_t *response) { + uint32_t rx_cnt, tx_cnt; + uint32_t cnt; + uint8_t status; + + if ((UartTransport != DAP_UART_TRANSPORT_DAP_COMMAND) || + (UartConfigured == 0U)) { + rx_cnt = 0U; + tx_cnt = 0U; + status = 0U; + } else { + + rx_cnt = UartRxIndexI - UartRxIndexO; + rx_cnt += pUSART->GetRxCount(); + if (rx_cnt > (DAP_UART_RX_BUFFER_SIZE - (UART_RX_BLOCK_SIZE*2))) { + // Overflow + UartErrorRxDataLost = 1U; + rx_cnt = (DAP_UART_RX_BUFFER_SIZE - (UART_RX_BLOCK_SIZE*2)); + UartRxIndexO = UartRxIndexI - rx_cnt; + } + + tx_cnt = UartTxIndexI - UartTxIndexO; + cnt = pUSART->GetTxCount(); + if (UartTransmitActive != 0U) { + tx_cnt -= cnt; + } + + status = UART_Get_Status(); + } + + *response++ = status; + *response++ = (uint8_t)(rx_cnt >> 0); + *response++ = (uint8_t)(rx_cnt >> 8); + *response++ = (uint8_t)(rx_cnt >> 16); + *response++ = (uint8_t)(rx_cnt >> 24); + *response++ = (uint8_t)(tx_cnt >> 0); + *response++ = (uint8_t)(tx_cnt >> 8); + *response++ = (uint8_t)(tx_cnt >> 16); + *response = (uint8_t)(tx_cnt >> 24); + + return ((0U << 16) | 9U); +} + +// Process UART Transfer command and prepare response +// request: pointer to request data +// response: pointer to response data +// return: number of bytes in response (lower 16 bits) +// number of bytes in request (upper 16 bits) +uint32_t UART_Transfer (const uint8_t *request, uint8_t *response) { + uint32_t rx_cnt, tx_cnt; + uint32_t rx_num, tx_num; + uint8_t *rx_data; + const + uint8_t *tx_data; + uint32_t num; + uint32_t index; + uint8_t status; + + if (UartTransport != DAP_UART_TRANSPORT_DAP_COMMAND) { + status = 0U; + rx_cnt = 0U; + tx_cnt = 0U; + } else { + + // RX Data + rx_cnt = ((uint32_t)(*(request+0) << 0) | + (uint32_t)(*(request+1) << 8)); + + if (rx_cnt > (DAP_PACKET_SIZE - 6U)) { + rx_cnt = (DAP_PACKET_SIZE - 6U); + } + rx_num = UartRxIndexI - UartRxIndexO; + rx_num += pUSART->GetRxCount(); + if (rx_num > (DAP_UART_RX_BUFFER_SIZE - (UART_RX_BLOCK_SIZE*2))) { + // Overflow + UartErrorRxDataLost = 1U; + rx_num = (DAP_UART_RX_BUFFER_SIZE - (UART_RX_BLOCK_SIZE*2)); + UartRxIndexO = UartRxIndexI - rx_num; + } + if (rx_cnt > rx_num) { + rx_cnt = rx_num; + } + + rx_data = (response+5); + index = UartRxIndexO & (DAP_UART_RX_BUFFER_SIZE - 1U); + if ((index + rx_cnt) <= DAP_UART_RX_BUFFER_SIZE) { + memcpy( rx_data, &UartRxBuf[index], rx_cnt); + } else { + num = DAP_UART_RX_BUFFER_SIZE - index; + memcpy( rx_data, &UartRxBuf[index], num); + memcpy(&rx_data[num], &UartRxBuf[0], rx_cnt - num); + } + UartRxIndexO += rx_cnt; + + // TX Data + tx_cnt = ((uint32_t)(*(request+2) << 0) | + (uint32_t)(*(request+3) << 8)); + tx_data = (request+4); + + if (tx_cnt > (DAP_PACKET_SIZE - 5U)) { + tx_cnt = (DAP_PACKET_SIZE - 5U); + } + tx_num = UartTxIndexI - UartTxIndexO; + num = pUSART->GetTxCount(); + if (UartTransmitActive != 0U) { + tx_num -= num; + } + if (tx_cnt > (DAP_UART_TX_BUFFER_SIZE - tx_num)) { + tx_cnt = (DAP_UART_TX_BUFFER_SIZE - tx_num); + } + + index = UartTxIndexI & (DAP_UART_TX_BUFFER_SIZE - 1U); + if ((index + tx_cnt) <= DAP_UART_TX_BUFFER_SIZE) { + memcpy(&UartTxBuf[index], tx_data, tx_cnt); + } else { + num = DAP_UART_TX_BUFFER_SIZE - index; + memcpy(&UartTxBuf[index], tx_data, num); + memcpy(&UartTxBuf[0], &tx_data[num], tx_cnt - num); + } + UartTxIndexI += tx_cnt; + + if (UartTransmitActive == 0U) { + UART_Transmit(); + } + + status = UART_Get_Status(); + } + + *response++ = status; + *response++ = (uint8_t)(tx_cnt >> 0); + *response++ = (uint8_t)(tx_cnt >> 8); + *response++ = (uint8_t)(rx_cnt >> 0); + *response = (uint8_t)(rx_cnt >> 8); + + return (((4U + tx_cnt) << 16) | (5U + rx_cnt)); +} + +#endif /* DAP_UART */ diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..6abf6c7 --- /dev/null +++ b/modular.json @@ -0,0 +1,17 @@ +{ + "dep": [ + { + "type": "git", + "provider": "ficom_modules", + "repo": "CmsisCore5" + } + ], + "cmake": { + "inc_dirs": [ + "Include" + ], + "srcs": [ + "Source/**.c" + ] + } +} \ No newline at end of file