본문 바로가기
임베디드.일렉트로닉스

EFM32 UART Bootloader (부트로더)

by i.got.it 2015. 8. 29.

 

 

 

개요

 

EFM32 UART Bootloader 정리.

1. 모든 EFM32 는 공장출하시 플래시에 UART 부트로더가 기록된 상태.

2. 상기의 부트로더영역은 사용자 코드로 덮어쓰기 하여 해당기능을 사용하지 않을 수도 있다.

3. single character command 로 program, verify, 등 가능.

4. UART로 펌웨어데이터 수신시 XMODEM CRC 프로토콜 기반한다.

5. UART 통신규격 : 1 stop bit, no parity, 8 data bits, baud rate 57600~460800 (EFM32 에서 baud rate 자동탐지 기능 있음.)

6. 테라텀 등에서XMODEM CRC 파일 송신가능하다.

 

참조정보 Application Note AN003 : http://www.silabs.com/Support%20Documents/TechnicalDocs/AN0003.pdf

 

 

 

 

 

 

EFM32 UART Bootloader 모드 진입시키는 방법.

 

 

EFM32 핀 DBG_SWCLK 를 풀업 한 상태에서, EFM32 를 리셋하면 UART부트로더 모드로 된다.

 - 리셋방법: RESETN 핀에 (기본)High ->Low->High 인가한다.

 - DBG_SWCLK 핀은 EFM32 내부적으로 고정 풀다운 되어있음.

 - EFM32 RESET 핀은 내부적으로 고정 풀업 되어있음.

 

DBG_SWCLK 핀은 내부적으로 풀다운 되어있고 이 핀에 아무런 처리 하지 않은 상태에서 리셋하는 경우에는 통상적인 부팅절차에 따라 부터로더는 flash 영역을 조사하여 있는 경우 실행시키고, 없는 경우엔 부트로더는 EM2 sleep 상태진입하고, 주기적으로 부트로드 핀을 점검한다.

 

 

 

 

 

 

부트로더 진입이후 펌웨어 기록위한 UART 통신 절차.

 

EFM32 가 Bootloader 모드로 진입한 상태에서 이후 통신은 UART 기반으로 이뤄진다.

 

UART 통신규격 : 1 stop bit, no parity, 8 data bits, baud rate 57600~460800

 

1. 호스트 측에서 "U" 전송.

EFM32 에서 baud rate 자동탐지 기능 있으며, 이를 위하여 초기에 호스트 측에서 EFM32 측으로 U (대문자)를 전송해야 한다. 이 데이터를 기반으로 EFM32 는 자동으로 Baud rate 를 설정한다.

 

U 를 입력받은 EFM32 는 UART로 아래와 같은 응답 데이터를 출력한다.

 

1.40 ChipID: F08AB6000B153525

 

앞의 1.40 은 bootloader 버전이고 뒤의 것은 chip ID 이다.

 

2. 호스트 측에서 "u" 전송.

호스트에서 소문자 u 전송이후 EFM32 는 XMODEM-CRC 포맷으로 수신대기 상태에 있게된다.

 

3. 호스트에서 펌웨어 데이터 전송.

- XMODEM 128 byte CRC16 규격으로 전송해야함.

 

 

 

 

 

 

///426.

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5