NucleoをST-LINK部を割って別体にして使っていたが、mbedの時はそれで問題なく動いていたから疑問にも思ってなかったのだが、stm32duino(platformIOしかり)でuploadする際にどうもうまくいかないことがわかった。たまにできることもあるんだが、ずっとわからないままだった。ある時、割ってないF411を使ったところ普通にuploadして動き始めたことで、何かしら接続してない配線があるんじゃないかと思い始めた。
Nucleo-64pinのGerberと、回路図を見比べながら確認したところ、2本の接続をしていなかったことが判明。
| ST-LINK回路信号 | これまでのReplica側 | 本来必要な配線 |
| JTCK | PA14 | ← |
| JTMS | PA13 | ← |
| NRST | NRST | ← |
| SWO | D3ピン(PB3) | ← |
| VREF | 未接続 | IOREF(+3.3V) |
| MCO | 未接続 | SB50(PF0/PH0) |
| TX | SB61/SB62 | ← |
| RX | SB63 | ← |
| USBの5V | U5V | ← |
| GND | GND | ← |
- VREFはST-LINK側のAIN1に接続されていて、ターゲットに電圧が供給されていることを監視している模様
- MCOはターゲットMCUのクロックを監視しているようでs、クロックがスタートしないと走らない仕組みのようだ
どうやら割って切り離した部分をST-LINKやOpenデバッガみたいに使おうとするとこの2本が必要になるようで、mbedの時みたいにビルドしてからファイルドロップするだけなら必要はなかった。。。ということらしい。
Arduino-IDEを使ってstm32duinoで書こうとすると、よくよくメッセージを見るとTarget Voltageが0V付近で、書き込み成功となるがプログラムが走らず、という現象。platformIOでも同じ現象
困ったことに、これでたくさん作っちゃったしなぁ、でも、mbed-ceが本命だからとりあえず良いか?
コメントを追加