임베디드랜드

    ▶ 회로설명 (circuit description) : "MY 로거"의 실험에 들어가기 전에... "MY 로거" 내부 소프트웨어인 임베디드 프로그램을 업데이트하는 방법을 설명합니다. 임베디드 프로그램, 즉 펌웨어의 업데이트는... 최근의 MP3, PMP등 소형 정보기기에서 지원하고 있는 기능으로, 빠르게 변하는 정보환경에 대응하기 위한 것입니다. 왜냐하면, (마이컴을 사용한) 기기에서 기능을 변화시키려면 내부 소프트웨어의 교체가 필요하기 때문이지요... ^^
    마찬가지로 "MY 로거"도 여러가지 응용사례에 따라, 기능이 변경되거나 추가될 것이 예상되므로 펌웨어의 교체는 필수적입니다. 이를위해 "MY 로거"는 PIC16F873A 내부 ROM안에 부트로더(bootloader)라는 작은 프로그램을 상주시켜, 펌웨어를 PC에서 다운로드 할 수 있도록 하고 있습니다. (부트로더가 없으면 프로그램 교체는 매번 롬라이터를 사용하여야 합니다. -_-)
    부트로더는 마이컴 리셋(reset) 직후에... 먼저 (마이컴) RS232C 통신포트를 통해, (PC에 연결된) 다운로더 프로그램의 접속을 확인해 봅니다. 만일 대기하고 있는 다운로더를 발견하면... 먼저 새로운 프로그램을 내려 받고나서, (새 프로그램을) 실행시킵니다. 접속된 다운로더를 찾지 못한다면... 내장된 예전 프로그램을 실행시킵니다. (이 확인 시간은 아주 짧으므로 사용자는 부트로더의 존재를 감지할 수 없습니다)
    ※ 부트로더의 동작은... 작은 OS인, (마이컴 ROM에 내장된) 모니터 프로그램을 연상시키네요... ^^
    ※ 사용한 PIC 부트로더는 Carlos Buelna씨가 개발/배포한 공개 소프트웨어 입니다. 단 PIC 전용 C 프로그램인 "HI-TECH C"의 컴파일/링크로 생성된 hex 파일만을 사용할 수 있습니다. (다른 어셈블러나 C 컴파일러에서 생성된 hex 파일은... 프로그램 실행이 보증되지 않으므로 주의!!!)
    Carlos Buelna씨의 부트로더 자료는 http://www.microchipc.com/PIC16bootload/16F87xA/ 참조 ^^
     
    ▶ 회로도 (The circuit diagram) : 내장 부트로더를 이용한... 임베디드 프로그램 로딩 (loading)

    "MY 로거" PIC16F873A에는 부트로더가 내장되어 판매되므로... PC에 다운로더 프로그램인 CD2m을 카피하면 준비가 완료됩니다.
    위의 그림에 부트로더의 사용법과 CD2m 다운로더의 실행화면을 보였습니다. 먼저 PC의 COM 포트와 "MY 로거"를 RS232C 케이블로 연결시킵니다. 이 때 연결한 PC측 COM 포트의 번호를 확인하고, CD2m 다운로더의 "COM 포트 번호"와 일치시켜 줍니다. (디폴트값은 "COM1"입니다. 즉 COM 1번 포트에 케이블을 연결하면 셋팅을 변경할 필요가 없습니다)
    ※ RS232C 통신속도를 정의하는 "보오 레이트"는 19200 bps로 변경할 수 없습니다. (따라서 CD2m 다운로더의 보오 레이트도 19200으로 셋팅합니다. 그 이유는 "MY 로거"내의 부트로더 프로그램이 19200 bps 전용이기 때문입니다)

    RS232C 케이블 연결과 다운로더 셋팅이 끝나면... 그림내 플로우의 ② 번부터, 번호순대로 진행하면 됩니다. 주의점은 ⑤ 번의 "MY 로거" 리셋 스위치 취급입니다. ⑤ 번에서 리셋 스위치를 누르고 있는 채로 (스위치를 손에서 떼면 안됨)... ⑥ 번으로 가서 CD2m 다운로더 "Start" 버튼을 클릭합니다. 클릭하자마자 ⑦ 번으로 진행하여, 누르고 있던 "MY 로거" 리셋 스위치를 떼면 됩니다.

    이유는 부트로더는 리셋 직후에 동작하고, 이 때는 PC측의 다운로더가 미리 대기하고 있어야 되기 때문입니다. PB 스위치를 손에서 떼면 리셋이 풀리면서... "MY 로거" 16F873A의 부트로더가 실행되기 시작합니다. (리셋 스위치를 왼손으로 누르고 있는 것이 편리... 오른손은 마우스를 사용해야 하니까요. ^^)
    부트로더와 CD2m 다운로드의 접속이 성공하면 "다운로드 진행바"가 증가하는 것을 볼 수 있습니다. ^^ 다운로딩이 끝나면, 바로 "MY 로거" 프로그램이 실행되는 것을 볼 수 있습니다. 한 번에 성공하지 못하면... (당황하지 말고) 두 세번 시도해서 (다운로딩) 감각을 익혀둡니다. 업로딩은 지원하지 않습니다.

    ※ "MY 로거"의 리셋 버튼을 누르면... ("MY 로거"의) LED 4 가 꺼집니다. LED 1은 전원상태를 체크하며, LED 4 는 녹색으로 PIC16F873A 마이크로 콘트롤러가 "정상적으로 동작하고 있음"을 표시해 줍니다. ^^

    ※ 다운로드용 임베디드 프로그램은 *.hex 형식의 파일이어야 합니다.
    ※ 시중에서 구입한 PIC16F873A는 내부 ROM이 비어 있으므로... 부트로더도 들어있지 않습니다. 따라서 처음에 한 번은 (롬라이터를 사용해서) 부트로더 프로그램을 PIC16F873A ROM안에 구워 넣어야 합니다.

    ※ 펌웨어 업데이트용 다운로더 (CD2m.zip 136k) <다운로드>

    MY 로거 Ver. 2.0 펌웨어 프로그램 (임베디드 프로그램) (LoggerV2R0.zip 3.9k) <다운로드>
    http://www.devicemart.co.kr/mart7/circuitry/bbs.php?table=beginner&query=view&uid=49&p=1
Posted by suvisor