다음을 통해 공유


MCU 프로그래밍 및 디버깅 인터페이스

Important

Azure Sphere(레거시) 설명서입니다. Azure Sphere(레거시)는 2027년 9월 27일에 사용 중지되며 사용자는 이 시간까지 Azure Sphere(통합)로 마이그레이션해야 합니다. TOC 위에 있는 버전 선택기를 사용하여 Azure Sphere(통합) 설명서를 볼 수 있습니다.

MT3620은 디바이스 프로비저닝 및 복구 중에 사용할 두 개의 전용 UART와 두 개의 제어 신호(재설정 및 복구)를 노출합니다. 또한 SWD 인터페이스는 RTApps 디버깅에 사용할 수 있으며 추가 UART는 Microsoft 진단을 위해 예약되어 있습니다.

Azure Sphere PC 소프트웨어 도구는 이러한 인터페이스를 PC에 노출하는 USB-UART 인터페이스 칩을 사용하여 도구를 인식하고 상호 작용할 수 있도록 해야 합니다. Azure Sphere 도구에는 서비스 UART를 사용하여 USB를 통해 애플리케이션을 로드하고 복구 UART를 사용하여 Azure Sphere OS를 복구하는 지원이 포함됩니다. PC 도구에서 인터페이스를 노출하려면 FTDI(Future Technology Devices International) FT4232HQ USB-UART 인터페이스 칩이 필요합니다. 현재 이 도구는 다른 제조업체의 다른 FTDI 칩 또는 인터페이스 칩을 지원하지 않습니다.

개발 보드의 경우 이 인터페이스 칩은 일반적으로 MT3620과 동일한 PCB에 있습니다. 이 방법은 MT3620 RDB(참조 개발 보드) 디자인에 설명되어 있습니다. MT3620을 사용하는 사용자 지정 보드 또는 모듈의 경우 이 하드웨어는 제조 또는 서비스 중에만 필요하므로 인터페이스 칩을 별도의 PCB에 두는 것이 적절할 수 있으므로 단위당 비용을 절감할 수 있습니다. 이 방법은 독립 실행형 프로그래밍 및 디버깅 인터페이스 보드 디자인에 설명되어 있습니다.

포트 개요

MT3620은 3개의 UART와 칩 프로그래밍, Microsoft 진단 및 프로비전에 사용되는 SWD 인터페이스를 노출합니다. 네 인터페이스에는 다음과 같은 함수가 있습니다.

  • UART 디버그 - 디버그 UART를 사용하면 Microsoft에서 진단을 수행할 수 있습니다. 이 UART는 애플리케이션 디버깅 또는 진단에 사용할 수 없습니다.

    Microsoft의 지시에 따라 이 인터페이스는 특정 문제를 디버깅할 때 유용할 수 있는 추가 진단 정보를 캡처하는 방법을 제공합니다. 따라서 소프트웨어 또는 하드웨어 개발에 사용되는 디바이스에 이 인터페이스를 포함하는 것이 좋지만 제조 단계에 도달한 디바이스의 경우 선택 사항으로 간주할 수 있습니다.

  • SWD 인터페이스 - SWD 인터페이스는 M4F 코어에서 실행되는 RTApps(실시간 지원 애플리케이션)를 디버깅할 때 사용됩니다. 이 인터페이스는 두 M4F 코어 간에 공유됩니다.

    RTApp을 디버그하는 기능이 필요한 경우(예: 디바이스 개발 중) 디바이스에서 이 인터페이스를 지원해야 합니다. 디바이스가 제조 단계에 도달하면 이 인터페이스를 선택 사항으로 간주할 수 있으며 생략할 수 있습니다.

  • 서비스 UART - 서비스 UART는 MT3620과 호스트 컴퓨터 간의 기본 프로그래밍 및 디버깅 인터페이스를 제공합니다.

    이 인터페이스를 사용하면 다음 단락에 설명된 대로 복구를 제외하고 연결된 디바이스가 필요한 모든 Azure Sphere CLI 작업을 사용할 수 있습니다. 서비스 UART는 MT3620과 호스트 컴퓨터 간의 기본 인터페이스이므로 소프트웨어 개발을 지원하는 디바이스와 소매 디바이스를 제조하는 동안 이 인터페이스를 사용할 수 있어야 합니다. 이 인터페이스를 현장 디바이스에 사용할 수 있는 경우 서비스 엔지니어가 사용할 수도 있습니다. 예를 들어 디바이스가 인터넷에 연결되지 않아 클라우드 업데이트를 받지 못하는 경우 앱 소프트웨어의 새 버전을 로드할 수도 있습니다.

  • 복구 UART - 복구 포트는 최신 버전의 운영 체제로 디바이스를 복구하는 방법을 제공합니다.

    디바이스를 최신 버전의 운영 체제로 복구하는 것은 디바이스를 제조하는 동안 일반적인 작업이므로 이 인터페이스는 제조 중에 지원되어야 합니다. 그러나 디바이스가 고객에게 판매되고 인터넷에 연결되면 클라우드 업데이트를 통해 디바이스가 최신 버전의 운영 체제로 최신 상태로 유지됩니다.

구성 요소 개요

다음 다이어그램에서는 4 포트 FTDI 인터페이스의 주요 구성 요소와 MT3620과의 상호 연결에 대한 개요를 제공합니다.

MT3620에 대한 4포트 FTDI 인터페이스 다이어그램

FTDI 칩 및 회로를 MT3620과 동일한 보드의 일부로 사용하거나(예: 개발 보드를 작성하는 경우) MT3620 디바이스와 PC 사이에 있는 별도의 인터페이스 보드로 사용하도록 선택할 수 있습니다.

포트 할당

PC 도구와의 호환성을 보장하려면 다음 표에 설명된 대로 디자인에 사용되는 노출된 각 UART 및 SWD 인터페이스가 FTDI 포트에 연결되어 있는지 확인해야 합니다.

Function FT4232HQ 핀 함수(핀 번호) MT3620 PIN 함수(PIN 번호)
복구 UART, 리셋 및 복구 스트래핑 복구 Port-D DDBUS0(48) RECOVERY_RXD(134)
DDBUS1 (52) RECOVERY_TXD (135)
DDBUS2 (53) RECOVERY_CTS (137)
DDBUS3 (54) RECOVERY_RTS (136)
DDBUS5 (57) DEBUG_RTS (96)*
DDBUS6 (58) SYSRST_N (125) (및 선택적으로 WAKEUP (70) 아래 상세 회로를 통해)
서비스 UART Port-C CDBUS0(38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2(40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD 및 다시 설정

포트 B BDBUS0 (26) SWCLK SWD 회로에 대한 자세한 내용은 SWD 인터페이스를 참조하세요.
BDBUS1 (27) SWDIO out
BDBUS2 (28) 의 SWDIO
BDBUS4 (30) SWDIO 방향
BDBUS5 (32) SWD enable
BDBUS6(33) SYSRST_N (125) (및 선택적으로 WAKEUP (70) 아래 상세 회로를 통해)

UART 디버그

Port-A ADBUS0 (16) DEBUG_RXD (94)
ADBUS1(17) DEBUG_TXD (95)
ADBUS2 (18) DEBUG_CTS (97)
ADBUS3 (19) DEBUG_RTS (96)*

*DEBUG_RTS MT3620의 '스트래핑 핀' 중 하나이며, 칩 재설정 중에 높이 당겨지면 칩이 복구 모드로 전환됩니다. 이 핀은 디버그 UART의 RTS 핀입니다.

회로도

다음 도형은 FT4232HQ 칩을 지원하는 데 필요한 주요 구성 요소를 보여 줍니다. MT3620 참조 보드 디자인이 도형을 통합한 참조 디자인을 제공합니다.

도식 1:

FTDI 칩을 지원하는 도식

참고 - 도식 1:

  • 리셋 라인이 있는 계열의 1K 저항기는 사용자가 리셋 단추를 누르는 경우(디자인에 포함된 경우) 복구 중에 리셋 라인이 프로그래밍 방식으로 제어되는 경우 단락을 방지하기 위해 포함됩니다.
  • PCB를 배치할 때 USB_P 및 USB_N 차등 쌍이 서로 병렬로 라우팅되어 특징적인 차등 임피던스 90을 제공하는지 확인합니다.
  • (선택 사항) SWD 선이 있는 계열의 33값 저항기는 일시적인 것을 줄이기 위한 것이며 FT4232HQ 가까이 배치해야 합니다.

도식 2:

FTDI 칩을 지원하는 절전 모드 해제/재설정 회로를 사용한 도식

참고 - 도식 2:

  • SYSRST_N 100K 저항기(R8)로 높게 당깁니다. 즉, 칩 재설정은 기본적으로 어설션되지 않습니다.

다음 두 요소는 선택 사항입니다. 있는 경우 실제 RESET 단추와 PC에 대한 FTDI 인터페이스가 RESET이 전환되었을 때 MT3620을 자동으로 해제할 수 있습니다. 이 기능은 다시 설정 단추 또는 PC 인터페이스가 Power Down 모드에서 계속 작동해야 하는 Power Down 모드를 사용하는 모든 디자인에 권장됩니다.

  • Schottky 다이오드 쌍은 SYSRST_N WAKEUP 간에 계열로 연결되며 다이오드의 공통 음극 연결은 재설정 단추와 FTDI 재설정 신호에 연결됩니다. 이렇게 하면 WAKEUP이 낮게 전환할 때 SYSRST_N 낮게 전환되지 않습니다.
  • WAKEUP은 3V3_RTC 전원 공급 장치에 연결된 100K 저항기로 높이 당겨집니다. 100K 저항은 SYSRST_N 낮게 전환할 때 WAKEUP이 낮게 전환되도록 합니다. 3V3_RTC 연결하면 MT3620 전원 공급 장치가 Power Down 모드에서 꺼질 경우 WAKEUP이 계속 높아집니다.

FTDI EEPROM

FTDI 인터페이스 칩은 제조업체의 세부 정보 및 일련 번호를 저장하는 데 사용되는 작은 EEPROM에 연결해야 하는 핀 집합을 제공합니다. 보드 어셈블리 후에 이 정보는 FTDI FT_PROG 프로그래밍 도구의 뒷부분에서 설명한 대로 FTDI에서 제공하는 소프트웨어 도구를 사용하여 USB를 통해 EEPROM으로 프로그래밍됩니다.

다음 EEPROM 부품은 FTDI 칩과 호환됩니다.

  • 93LC46BT-I/OT
  • 93LC56BT-I/OT
  • 93LC66BT-I/OT

3.3V 공급과 호환되는 LC 변형을 사용합니다. 내부 개발을 위해 Microsoft는 항상 93LC56BT-I/OT 부분을 사용했습니다.

다음과 같이 EEPROM을 FTDI 칩에 연결합니다.

EEPROM 회로 FTDI 칩에 연결
EEProm 회로 FTDI 칩에 연결

UART 인터페이스

MT3620과 FTDI 간의 복구, 서비스 및 디버그 UART 연결에는 특별한 회로가 필요하지 않습니다. 그러나 TXD와 RXD 및 CTS와 RTS의 교차에 유의합니다. FTDI 설명서에서는 각 포트의 핀 0을 TXD로, 1을 RXD로 고정하는 것을 설명합니다. 이러한 정의는 FTDI 칩에 상대적입니다. 즉, 핀 0은 출력 부분이고 핀 1은 입력 부분입니다. 결과적으로 MT3620에 대한 RXD 및 TXD 연결을 교차해야 합니다(CTS 및 RTS의 경우도 유사함). 다음 다이어그램에서는 서비스 UART에 대해 이를 보여 줍니다. 복구 및 디버그 UART에도 동일한 체계를 사용합니다.

복구 및 서비스 UART 연결

SWD 인터페이스

FTDI 칩은 일반적으로 UART와 USB 사이의 브리지를 제공하는 데 사용되지만 Azure Sphere 프로그래밍 및 디버깅 인터페이스는 쿼드 트라이스테이트 버퍼를 기반으로 하는 추가 회로를 사용하여 FTDI 부분이 고속 SWD 인터페이스로 작동할 수 있도록 합니다.

다음은 FTDI 칩에 필요한 회로 및 연결을 보여 줍니다. SWDIO 신호는 MT3620 핀 98에 연결되고 SWCLK는 핀 99에 연결됩니다.

삼자 상태 버퍼 정렬 FTDI 포트 B 연결
3상 버퍼 배열 ftdi 포트 B 연결

USB 작업 LED(선택 사항)

USB 작업 LED는 정상 작동 중에 USB 연결을 통한 데이터 전송을 나타내는 데 유용할 수 있습니다. 여러 가지 방법으로 USB 활동 LED를 구현할 수 있습니다. 다음 회로는 단지 예에 불과합니다.

회로 AND는 FT4232HQ EEPROM에 연결하는 시계 및 데이터 줄을 함께 사용합니다. 명확하지는 않지만 이 두 줄은 USB를 통해 데이터를 보내고 받을 때 전환되므로 USB 활동을 나타내는 데 사용할 수 있습니다. 그러나 AND 게이트의 출력 시 시간이 너무 짧아서 LED를 비추지 않습니다. 따라서 이 신호는 모노 안정 회로를 구동하는 데 사용되며, 이 회로는 LED를 구동합니다.

단일 상태 회로의 시간이 100ms로 설정되므로 USB 트래픽의 짧은 버스트로도 LED가 켜지게 됩니다.

USB 활동 LED

FTDI FT_PROG 프로그래밍 도구

FTDI는 EEPROM 프로그래밍을 돕기 위해 FT_PROG이라는 무료 소프트웨어 도구를 제공합니다. 이 도구는 Windows GUI 애플리케이션과 명령줄 도구로 모두 사용할 수 있습니다. 두 옵션은 동일한 패키지에서 동시에 설치됩니다. FTDI 웹 사이트에서 도구를 다운로드하고 기본 위치에 설치합니다.

FT_PROG 명령줄 도구

FT_PROG 명령줄 버전은 구성 파일의 이름을 매개 변수로 사용하고 단일 명령으로 여러 디바이스를 프로그래밍하기 때문에 EEPROM을 프로그래밍하는 기본 방법입니다.

GitHub의 Azure Sphere 하드웨어 디자인 리포지토리에는 명령줄 도구와 함께 사용할 EEPROM 구성 파일이 포함되어 있습니다. 제조 시나리오에서 이 파일과 명령줄 도구를 사용하는 것이 좋습니다. 구성 파일은 다음 설정을 사용하여 EEPROM을 프로그래밍합니다.

  • D2XX 직접 모드를 사용하도록 설정하고 Virtual COM 포트를 사용하지 않도록 설정
  • 'AS'로 시작하는 일련 번호를 자동으로 생성합니다.
  • 제품 설명을 "MSFT MT3620 Std 인터페이스"로 설정

EEPROM을 프로그래밍하려면 Azure Sphere PC 도구가 제품 설명 문자열을 찾고 이 값이 변경되면 실패하므로 수정 없이 이 파일을 그대로 사용해야 합니다.

EEPROM 프로그래밍에 대한 단계별 지침

명령줄 버전의 FT_PROG 사용하여 4포트 FTDI 칩에 대한 EEPROM을 프로그래밍하려면 다음을 수행합니다.

  1. 기본 위치에 C:\Program Files(x86)\FTDI\FT_ProgFTDI 도구를 설치합니다.

  2. 하나 이상의 MT3620 보드를 PC에 연결합니다.

  3. 명령 프롬프트(예: cmd.exe)를 열고 구성 파일을 저장한 폴더로 변경합니다.

  4. 연결된 모든 디바이스를 나열하려면 다음 명령을 입력합니다.

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan

    4개의 디바이스가 연결된 경우 출력은 다음과 유사합니다.

    Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    
  5. 연결된 모든 디바이스를 프로그래밍하려면 다음 명령을 입력합니다. 연결된 디바이스의 인덱스(0, 1, 2 등)와 cycl 매개 변수를 prog 지정합니다.

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan prog 0,1,2,3 MT3620_Standard_Interface.xml cycl 0,1,2,3

    도구는 다음을 표시해야 합니다.

     Scanning for devices...
     Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 0 programmed successfully!
     Device 1 programmed successfully!
     Device 2 programmed successfully!
     Device 3 programmed successfully!
     Finished
    
     Re-enumerating Device 0....
     Re-enumerating Device 1....
     Re-enumerating Device 2....
     Re-enumerating Device 3....
    
  6. 프로그래밍이 성공했는지 확인하려면 다음을 한 번 더 검색합니다.

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan

    일련 번호는 출력에 변경 내용이 있으며 이제 AS로 시작합니다.

    Scanning for devices...
     Device 0: FT4232H, MSFT MT3620 Std Interface, AS5AW7FD
     Device 1: FT4232H, MSFT MT3620 Std Interface, AS5AHG3C
     Device 2: FT4232H, MSFT MT3620 Std Interface, AS5DWM2I
     Device 3: FT4232H, MSFT MT3620 Std Interface, AS5JQ0LJ
    

FT_PROG GUI 애플리케이션

애플리케이션의 Windows GUI 버전은 EEPROM 정보의 상태를 읽고 확인하는 데 유용합니다. 정보를 변경하는 데 사용할 수도 있습니다. 그러나 도구의 명령줄 버전을 사용하여 디바이스를 프로그래밍하는 것이 좋습니다.

애플리케이션을 시작한 후 스캔 단추(돋보기 아이콘 포함)를 클릭하여 EEPROM의 현재 내용을 읽고 표시합니다.

다음 예제와 같이 알 수 없는 디바이스 대화 상자가 나타나면 응용 프로그램 창에 정보가 올바르게 표시될 때까지 확인을 클릭합니다.

FT_PROG 알 수 없는 디바이스 화면

다음 예제에서는 올바른 화면을 보여 줍니다.

올바른 표시 FT_PROG

소프트웨어 사용에 대한 자세한 내용은 FT_PROG 설명서를 참조하세요.