Zに振り回された

以前から製作しているstm32f4xxの装置は全部で7台作ることにした。追加注文した部品も届き、昨日は5枚目stm32f4xx基板を作成。2時間ほどで完成し、電源を投入するとビヤーと電流が流れる。2Aほど。電源装置の電流制限がかかっている感じ。

とりあえず、コネクタなどで簡単に外せる部品は全て外してみるがかわらない。テスターで調べると3.3VのラインとGNDがショートしている。チップコンデンサは故障モードがショートだと聞いたことがあるので、これの故障を疑い、3.3Vのラインのパスコンを全て外してみるが変化なし。

Revision Z ?

ヤニクリーンでフラックスを洗い流し、ハンダ付けを調べ直すが怪しいところは見つからない。ここで一旦諦めかけるが、ピカーンとあることを思い出す。 Revision Z ?

stm32f4xxのErattaを確認した時、PDR_ON端子はRevision Zでは、Vssに繋がっているからね、と書いてあったことを思い出す。ちなみにRevision Zの前はRevision A。なんか最初から最後に飛んでいる気がする。

PDR_ONという端子がわかりにくいのだが、どうも内部の電源レギュレータをパスさせることができる端子らしい。GNDに接続することで電源電圧を1.8Vから1.7Vに下げることができる。しかし、動作保証温度も狭くなるので通常はVddに接続する。と言っても -40~+105℃が0~70℃になるだけ。

今までは Revision Aだったので、3.3Vに接続していた。チップを確認すると”Z”の文字があった。つまり、Vdd(3.3V)に接続されていた端子が内部的にVss(GND)に接続されることになるわけだ。

今回は珍しく基板発注前にErattaに目を通していたし、STM32F4-Discoveryの回路図もチェックしていたので基板はRevision Zに対応している。PDR_ON端子の接続先は0Ωの抵抗で切り替えることにしている。これを付け直すことで無事、3.3VとGNDのショートは解消。電源をつないでも大量の電流が流れることはなくなった。

ST-LINKを接続し、ファームウェアの書き込みを行うとST-LINKで接続できないというエラーになる。うーむ、2Aも流してCPUを壊してしまった。そのうち表面実装取り外しキットで外してCPUを取り替えようということで基板は保管することにした。

そして、今日

ここまでは昨日の話。ここから今日の話。

Revision Zで基板が動いた実績が無いので、今日こそは、ちゃんと1枚作ろうと、また2時間ほどかけて基板を組み立てる。電源を入れても、変な電流はながれない。ST-Linkをつなぎ、ファームウェアの書き込みを行うとエラーになって書き込めない。SWDとJTAGを切り替えてもダメ。何回やってもダメ。

ハンダ付けの確認をやってもダメ。もしかしてチップが、まとめて故障しているのかとか思うが、あまり考えられないし確認する方法も無い。SWD/JTAGなんて、電源さえ繋がっていれば動きそうそうに思える。何が問題なのかわからない。万策尽きて諦めかけるが、このままでは残りの装置がいつまでたっても完成しない。

ここでDFUのことを思い出す。STM32のROMにはboot-loaderのプログラムが内蔵されていて、それを使ってファームウェアを書き込むことができる。私の基板もUARTからDFUを使用するのに対応している。

STmicroのサイトからUART経由のDFUを使用するプログラムをダウンロードし、動かしてみると、CPUは反応しているようだ。ファームウェアを書き込むと動作、ちゃんと動いた。しかし、再度 DFUで書き込もうとすると最初のACKはあるようだが、その後のコマンドの返事が変だ、というようなエラーが出て書き込めない。

ちなみに、昨日作ったボードでDFUを試すと、これもACKは返っているが、その後エラーになる。CPUは死んでいないようだ。しかし、プログラムは書き込めない。

解決

ここで、また諦めかけるがRevision Zでおかしなことが起こっているのではないかと「stm32+revision Z」で検索をかけるといろいろ情報が出てきた。ZではST-LINK Utitityが認識しないらしい。STM32F4-DiscoveryのチップもZになり問題が発生しているそうだ。CPUが返すIDコードが変わったのが原因で、ST-LINKは次のバージョンで対応するらしい。修正のパッチをネットに上げてくれている人がいて、それを使えば解決できるということで、無事解決、ファームウェアの書き込みに成功し、CPUを付け替える必要も無くなった。

メデタシメデタシ。Revision Zにエラく振り回された2日間だった。DFUがおかしい件は解決していないが、これもまた新しい製品にソフトが対応していないとかの話ではないかと思う。

ST-Linkのエラーメッセージが、もう少し配慮してくれていれば解決がもう少し早かったような気がするが、仕方がない。解決できて良かった。

STM32F4モジュールの基板


STM32F4モジュールの基板も昨日到着した。今日、組み立ててみたかったのだが、時間が無くなってしまった。明日へ持ち越しだ。

Leave a Reply

メールアドレスが公開されることはありません。