이번에 Pixhawk 카피본을 제작해 보았다. 오픈소스 하드웨어 프로젝트라서 회로도가 모두 공개되어 있으므로 복사하는것 자체는 어렵지 않지만 

회로도대로 PCB를 설계하고 만드는 작업은 아주 어려운 과정이었다.

몇번의 시행착오 끝에 설계를 완성할 수 있었다. 보드 크기는 얼마 되지 않지만 작은 사이즈에 실장되는 부품들이 많아서 공간에 구겨 넣는 작업이 만만치 않으므로 천상 수삽은 어렵고 SMT를 통해 제작해야만 한다. 

저항이나 캡들은 모두 1005 사이즈로 설계하였다.


실제로 완성된 보드의 모습.


하지만 보드가 완성되었다고 해서 바로 연결하면 Pixhawk로 동작하지 않는다. PC에서 USB에 연결했을 때 Pixhawk 모듈로 인식하는 것은 기본적으로

USB연결을 가능하게 해주는 Bootloader가 올라가 있기 때문이다. 

만약 부트로더가 없다면 해당 타겟의 개발자용으로 나온 값비싼 JTAG같은 프로그래머를 사용해야 한다. 

부트로더는 쉽게 이야기하자면 정해진 규칙에 따라 사용자 프로그램을 타겟 보드에 올릴 수 있는 연결 통로라고 할 수 있다.

픽스호크는 크게 2개의 CPU 혹은 마이크로 컨트롤러로 구성되는데 PX4IO와  PX4FMU이고 각각 STM32F1 과 STM32F4 버전의 컨트롤러가 장착된다.

FMU에 해당하는 칩이 보드에 가장 크게 장착된 컨트롤러로서 USB가 연결되고 자세제어 등 상위 제어에 사용되는 칩이다.

STM은 친절하게도 보드에 부트로더를 쉽게 구울 수 있도록 하는 여러가지 기능을 제공하는데 DFU가 바로 그것이다.

DFU란 Device Firmware Upgrade를 의미하는데 칩 자체에 별도의 부트로더 영역이 있어서 시작할때 부트로더 영역으로 진입하게 되면 사용자 프로그램을 

업로드할 수 있는 연결 인터페이스가 제공된다. 

통신 프로토콜을 따라 별도로 업로드하는 프로그램을 제작할 수 있지만 STM에서는 아래 링크에서 해당 프로그램을 제공하고 있다.

http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html


간단한 가입절차를 통해 프로그램을 다운로드할 수 있다.

설치하고 파일을 업로드 해보자.


먼저 다음 파일이 필요하다.

px4fmuv2_bl.bin 이라는 파일인데 부트로더 이미지이다. 아래 링크에서 다운로드 한다.

https://github.com/ArduPilot/ardupilot/tree/master/mk/PX4/bootloader


bin파일을 dfu 파일로 변환해야 한다.

시작메뉴에서 STM... 아래에 Dfu file manager를 연다.


DFU파일을 만들 것이므로 첫번째 항목을 선택하고 OK를 클릭한다.


설정 화면에서 아래와 같이 설정한다.


  • Vendor ID: 0x 0483
  • Product ID: 0x df11
  • Version ID: 0x 2100


Multi BIN... 항목을 선택하여 변환할 파일을 추가한다.

File에는 앞서 다운로드받은 px4fmuv2_bl.bin 파일을 선택한다.


Address 는 0x08000000 으로 설정하고 Add to list>> 를 눌러 파일을 등록한다. OK 누르고 Generate.. 버튼을 누르면 파일 변환이 성공이다.



다음은 부트로더로 진입하는 방법이다.

아래 그림과 같이 FMU의 Boot0 Pin을 핀셋으로 High와 연결한 상태에서 PC의 USB선을 연결한다.


PC에서 USB인식이 끝나면 아래와 같이 장치관리자에 DFU장치로 인식이 될것이다.

이제 앞에서 만든 부트로더를 타겟에 올린다.

시작 -> STM... -> DfuseDemo를 선택하여 실행한다.


아래 그림과 같은 화면이 뜬다.



화면 하단의 Choose... 버튼을 눌러 아까 만든 .dfu파일을 선택한다.

파일이 정상적이라면 Load Success가 나타나고 아까 설정한 VendorID와  ProductID가 뜬다.



Verify after download항목을 체크 해제하고 Upgrade버튼을 눌러 업그레이드를 시작한다.

모든게 정상적이라면 Success 라는 메세지가 표시될 것이다.



이제 USB선을 제거했다가 다시 연결하면 장치 관리자에 새로운 COM포트가 만들어져 있을 것이다.

이제 PX4FMU의 부트로더가 정상적으로 업로드 된 것이다.


전원을 인가하면 노란색 LED가 10HZ 정도로 깜빡거리는 것을 확인할 수 있다.




다음에는 PX4IO 칩에 부트로더를 올리고 펌웨어를 다운로드 하는 과정을 알아보자.

+ Recent posts