2015-01-15 7 views
1

STM32F4 마이크로 컨트롤러가 Android (4.4) USB 호스트 포트에 연결되어 있습니다. Android 기기에서 마이크로 컨트롤러의 펌웨어 업그레이드를하고 싶습니다.Android에서 STM32 장치 펌웨어 업그레이드 (DFU/DfuSe)

===================       =================== 
| Android 4.4 | <=======================> | STM32F405xx | 
|  Device  | USB Host  USB Device | Microcontroller | 
===================       =================== 

전통적으로 STM32 마이크로 컨트롤러는 펌웨어가 ST에서 제공 DfuSe Utility라는 PC 도구를 사용하여 업그레이드 할 수 있습니다. 하지만 대신 Android 기기에서이 작업을 수행해야합니다. 해당 도구의 소스가 제공됩니다.

질문 :

  1. 는 마이크로 컨트롤러의 펌웨어는 Java 안드로이드의 표준 USB Host libraries를 사용하여 업그레이드 할 수 있습니까?
  2. NDK을 사용하고 DfuSe 소스를 포트해야합니까? 그렇다면 어떤 라이브러리를 사용하여 NDK에서 USB에 액세스해야합니까?

어떤 방향으로 이동해야하며 어떻게해야합니까?

+0

NDK 가능성이 더 열심히하지 쉽게 일을합니다. 당신이 필요로하는 것을 할 수있는 가능성이 가장 높습니다. 열거 된 후에 장치와 아주 빨리 대화 할 필요가있는 상황이라면 질문 할 수 있습니다. 그렇지만 나는 그것이 믿을 수 없다고 생각하지 않습니다. 공장 ROM USB 부트 로더에 시간 초과가 있습니다. 또 다른 가능한 도전은 DFU 모드 디바이스가 제품보다는 ST로부터의 어떤 것으로 사용자에게 나타날 수 있다는 것입니다 (liu_tanyi의 커스텀 부트 로더가 장점을가집니다). –

+0

네, 맞습니다. DFU 모드에서 STM32 장치는 다른 제품 ID (PID)로 나타납니다. 이 모든 것이 자바에서 가능하다면 정말 행복 할 것입니다. 나의 초기 생각은 다음과 같은 컨트롤 전송을 사용하는 것이다.'mConnection.controlTransfer (requestType, request, value, index, buffer, length, length, timeout); –

답변

1

NDK를 사용하지 않고 DFU를 사용하여 USB를 통해 Android에서 직접 STM32 마이크로 컨트롤러를 프로그래밍하는 자체 솔루션을 만들었습니다. 우리는 여기에서 프로젝트를 오픈 소스 화 :

https://github.com/UmbrelaSmart/android-stm32-dfu-programmer

0

내 프로젝트에서는 STM32를 가상 COM 포트 디바이스로 프로그래밍하고 STM32의 내부 플래시를 지우거나 쓰는 간단한 통신 프로토콜 그룹을 정의한다. Andriod에 대해서도 똑같이 할 수 있다고 생각하지만 안드로이드에 가상 COM 포트를위한 기존 드라이버가 있는지 모르겠습니다.

그러나 STM32로 또는 STM32에서 바이트를 전송할 수 있다면 아무리 문제가 되어도 프로그래밍 할 수 있습니다. 부트 로더의 기본 기능은 정말로 간단합니다. 단지 데이터를 수신하고 있어야만하는 위치에 씁니다.

+0

사실이고 사실상 더 간단 할 수도 있습니다. 공장 ROM USB 로더는 우발적 인 삭제로부터 더 안전하다는 이점을 가지고 있습니다. 즉, 장치가 개발자가 만든 부트 로더보다 벽돌이 적습니다. 반면에, 귀하의 계획에 따라 제품은 ST DFU 장치로 표시하는 대신 업그레이드를 열거 할 때 자체 ID를 유지합니다. –

+0

감사합니다. 나는 결코이 접근법을 고려하지 않았습니다. 현재 간단한 HID 인터페이스를 통해 USB를 통해 STM32 장치와 통신 중입니다. 아마도 바이너리 파일을 보내고 장치가 자체적으로 리 플래시 할 수 있습니다. STM32가 전송, 저장 및 명령 할 수있는 방법에 대해 설명해 주시겠습니까? 좋은 리소스와 코드를 가르쳐 주시겠습니까? –

+0

자체 깜박임에 ST 애플리케이션 노트가 있습니다. 그들은 자신의 웹 사이트를 개편하고 싶어하므로 현재 위치를 직접 찾아야합니다. –