しばらく前に、訳あってNucleo-H743を購入。ぼちぼちとH7を使いはじめています。そろそろ新しいRevision Xになっているかと思っていたのですが、手元に届いたのは運悪くRevision Yでした。シリコンバグで困るようなことになったら、買い直すことになるかも。
このボードはNucleo144なので、USB FSポート用のマイクロUSBコネクタが付いているます。そのため、BOOT0をHにしてやるだけで、ブートローダのUSB DFUを動かすことができます。
STM32CubeProgを使ってログ表示を見ていたら、ちょっと気になる内容を見つけました。USBのデバイス ディスクリプタの内容のダンプが含まれているのですが、
Serial Numberの値がやけにキリのいい値になっています。普通デバイス固有の番号になるはずなので、こんなキリのいい数になるはずは無いのですが。。。
そこで、デバイス固有の96bitのIDを保持しているはずの領域の内容をダンプしてみると。。
全然違う値が入っているじゃないですか。
それじゃぁ、表示されたUSB Serial Numberはいったい、どこから出てきた数字なのでしょう。「もしかして、デバイス固有のIDではなくて、デバイスの種別を表しているDEVICE_ID情報を表示しているのではないか?」と考えて、その領域の内容を見てみると。。
想像どおりでした。間違ってDEVICE_IDの内容を表示しています。つまり、STM32H743のUSB DFUは、どのチップでも同じシリアル番号を返すことになりますね。もしかすると新しい Revision XのシリコンではSystem ROMの内容が更新されて直っているのでしょうか?
このボードはNucleo144なので、USB FSポート用のマイクロUSBコネクタが付いているます。そのため、BOOT0をHにしてやるだけで、ブートローダのUSB DFUを動かすことができます。
STM32CubeProgを使ってログ表示を見ていたら、ちょっと気になる内容を見つけました。USBのデバイス ディスクリプタの内容のダンプが含まれているのですが、
Serial Numberの値がやけにキリのいい値になっています。普通デバイス固有の番号になるはずなので、こんなキリのいい数になるはずは無いのですが。。。
そこで、デバイス固有の96bitのIDを保持しているはずの領域の内容をダンプしてみると。。
全然違う値が入っているじゃないですか。
それじゃぁ、表示されたUSB Serial Numberはいったい、どこから出てきた数字なのでしょう。「もしかして、デバイス固有のIDではなくて、デバイスの種別を表しているDEVICE_ID情報を表示しているのではないか?」と考えて、その領域の内容を見てみると。。
想像どおりでした。間違ってDEVICE_IDの内容を表示しています。つまり、STM32H743のUSB DFUは、どのチップでも同じシリアル番号を返すことになりますね。もしかすると新しい Revision XのシリコンではSystem ROMの内容が更新されて直っているのでしょうか?
一時期はCubeMXのボードリストにDiscoveryも表示されていたのですが、最新のCubeMXでは消えてしまいましたので、幻に終わるのかもしれません。