다음을 통해 공유


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

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

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

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

포트 개요

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

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

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

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

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

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

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

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

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

구성 요소 개요

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

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

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

포트 할당

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

함수 FT4232HQ 핀 함수(핀 번호) MT3620 핀 함수(핀 번호)
복구 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 및 초기화

Port-B BDBUS0 (26) SWCLK SWD 회로에 대한 자세한 내용은 SWD 인터페이스를 참조하세요.
BDBUS1 (27) SWDIO out
BDBUS2 (28) 의 SWDIO
BDBUS4 (30) SWDIO 방향
BDBUS5 (32) SWD 사용
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 라인이 있는 계열의 33H 저항기는 일시적을 줄이기 위한 것이며 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은 입력입니다. 따라서 RXD 및 TXD 연결을 MT3620(CTS 및 RTS의 경우 유사하게)으로 교차해야 합니다. 다음 다이어그램에서는 서비스 UART에 대해 이를 보여 줍니다. 복구 및 디버그 UART에도 동일한 체계를 사용합니다.

복구 및 서비스 UART 연결

SWD 인터페이스

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

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

3단계 버퍼 정렬 FTDI 포트-B 연결
tri-state 버퍼 정렬 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 직접 모드를 사용하도록 설정하고 가상 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. 다음 명령을 입력하여 연결된 모든 디바이스를 프로그래밍합니다. 및 cycl 매개 변수 다음에 연결된 디바이스의 인덱스(0, 1, 2 등)를 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 설명서를 참조하세요.