STM32F4の情報 / STM32プログラム書き込み


  • USBインターフェースを使った DFU と言う方法が一番簡単。
  • STM32へプログラムを書き込む方法は色々ある。
    • STLINKでの書き込み
    • JTAG経由での書き込み
    • シリアルインターフェース経由での書き込み
    • USB経由でDFUで書き込む。
  • この中で、DFUでの書き込みは、STM32F103以前では、面倒だった。
    • STM32F103以前では、他の方法でDFUプログラムを書き込む必要があった。
  • しかし、STM32F105以降では、予めDFUプログラムが書き込まれているので簡単。
  • と言うわけで、ここでは DFU を使ったプログラムの書き込み方を説明する。

Windowsの場合

最新版 DFU 書き込みアプリを使う。

  • STMicroelectronics
  • 「マイコン&メモリ」のアイコンをクリック
  • 「マイクロコントローラ」のアイコンをクリック
  • 左欄の「32bit マイクロコントローラ : STM32」をクリック
  • 「リソース」のタブをクリック
  • ソフトウェアリソースの「全て参照」をクリック
  • リストの中から「DfuSe? USB」の文字列を探す。
  • um0412.zip をダウンロードし、インストール

書き込み方

  • 普段使っていないので、使い方忘れた!
  • 水城さん、書き込んでおいて!

Linuxの場合

DFU-UTL をソースから構築

  • Ubuntu 10.04 で作業した時の記録
$ sudo apt-get install libusb-dev autogen pkg-config autotools-dev autoconf automake 
$ sudo apt-get install libusb-1.0-0-dev
$ tar zxvf ~/ダウンロード/dfu-util-0.5.tar.gz 
$ cd dfu-util-0.5/
$ ./autogen.sh 
$ ./configure 
$ make
$ sudo cp src/dfu-util /usr/local/bin/

DFU-UTL を使って、プログラムを書き込む

  • デジタルオーディオプレーヤーの基板上のDIPスイッチをプログラム側に設定する。
    • BOOT0をHに、BOOT1をLにしている。
    • プログラム実行時には、BOOT0をLに、BOOT1は問わず。
  • この状態で、USBを接続。
    • STM32F405側は、
      • USB FSの DP及びDM は 27Ωでパソコンと接続。DPのみを 1.5kΩでプルアップ。プルアップは、27Ω のSTM32側
      • USB の 5V を 3.3V にシリーズレギュレータで変換しただけの電源で、STM32を動かしている。
  • 書き込むプログラムのバイナリが、「main.bin」の場合
$ sudo dfu-util -a 0 -d 0x0483:0xdf11 --dfuse-address 0x08000000 -D main.bin
  • 私は、「~/.bashrc」 の最後に下行を追加して、簡単なコマンドで書き込めるようにしている。
alias dfuw='sudo dfu-util -a 0 -d 0x0483:0xdf11 --dfuse-address 0x08000000 -D '
  • これで、次のように書き込める。
$ dfuw main.bin
  • いちいち、パスワードを入力するのは、ちょっと面倒だが。

プロジェクト


共通



最新の20件

2016-12-31 2014-11-10 2014-08-17 2013-12-23 2013-09-29 2013-08-09 2013-08-07 2013-08-03 2012-11-28 2012-08-25 2012-07-05 2012-07-03 2012-07-01

今日の9件

  • counter: 7292
  • today: 2
  • yesterday: 0
  • online: 1