atolab

モノづくりを楽しむ大学生の備忘録。まだまだ初心者です。お手柔らかにお願いします。

マイコンから見てみよう(書き込み編)

ハーフサイズに参加するのであれば、サイズ的に電子回路の基板はプリント基板でなければ厳しそうです。

今まで使用したことのあるマイコンはSTM32VLD、STBee、STBeeMiniとすべて市販の開発ボードしか使用したことがありません。そして、開発環境は今までマイコン徹底入門 | STM32で組み込みシステム開発さんに頼りきりでした。以前から自作マイコンボードを使用してみたいという思いがあり、これを期にSTM32マイコンとその開発環境について調べてみました。

 

まず今回はマイコンへの書き込み方法です。

マイコンへの書きこみ方法は今回調べてみただけで以上の4つが出てきました。

DFU(Device Firmware Upgrade)

USBを用いてマイコンのFlashROMにプログラムを書き込む方法です。今まで、この方法でしか書き込んだことがありませんでした。

あらかじめ、マイコン内にDFUプログラムを書き込むことでこの方法が可能になります。以前は他の方法でFlashROMにDFUプログラムを書き込まなければならなかったそうですが、現在はほとんどのチップ購入時にはすでに書き込み済みのようです。それを確認するにはSTMアプリケーションノートAN2606を見ると良いようです。

主に以下のサイトを参考にさせていただきました。

STM32シリーズへの書き込み(DFU編) – ろぼっとぼっと

JTAG(Joint Test Action Group)

JTAGとはこの規格を定めた、団体の名前です。

JTAGはシリアル通信を用いて、IC内部に設けられたテスト用の回路にアクセスし、そのICの端子の状態を操作したり、ICの内部回路と通信することができる技術です。

JTAG技術情報トップ | 特殊電子回路

というようにDFUと違ってデバッグも行うことができます。

純正ST-LINKやSTM32VLDなどを使用することでパソコンとマイコンをつなぐことができます。

SWD(Serial Wired Debug)

ARM社独自の規格です。JTAGから信号線を2本にした通信方式です。

純正ST-LINKなどを用いるだけでなく、STMマイコンをVersaloon化しそれを用いることで書き込みを行えます。

Versaloon化は以下のサイトを参考にするとよいと思います。

Versaloonの導入方法 | マイコン徹底入門

以下のサイトを参考にしました。

JTAG/SWDってなに?

UART(Universal Asynchronous Receiver Transmitter)

デバッグをする時にも使用するUARTですが、プログラムを書き込みにも使用します。

STM32はシステムROM領域(マイコンチップ製造時に書き込み済みのメモリエリア)UARTによるフラッシュROMの更新プログラムが予め記録されています。そのためフラッシュROMに何も記録されていない状態でも、システムROMを起動することにより、外部と通信して、フラッシュROMの更新を行うことができます。

マイコン徹底入門/UART

引用元に書いてありますがJTAGに比べていろいろめんどくさいことがあるそうです。

 

以上のようにマイコンに様々な方法でプログラムを書き込むことができるようです。

できれば、今まで使ってたDFUで書き込みができるようにしたいと思いました。

期末テストが近いのでここぐらいで、、、