- 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 で作業した時の記録
- DFU-UTILの各バージョンのソースコード から、dfu-util-0.5.tar.gz をダウンロード
- 今見ると、dfu-util-0.6.tar.gz がリリースされているね。動作確認していないけど、これも良いかも知れない。
$ 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件
2020-11-14
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
今日の2件
- counter: 8145
- today: 1
- yesterday: 0
- online: 1