STM32H7でSPI
ちょっと嵌ったので備忘録的に。
以前公開したこちらの記事ですが、その後STM32H7でも同じようなことを行おうとしました。
okb-lysenko.hatenablog.com
○事象
F7のときとほぼ同じ設定であるのにも関わらず、SPIのDevice IDに誤った値が
帰ってくる。(何らかの原因で通信に失敗している)
○対処
今回はオシロすら使うまでもなく、気まぐれで設定を弄ったら治ってしまいました。
H7ではF7には存在しなかったオプションがあると思います。
色々調べて、特に怪しいなと考えたのは以下の項目でした。(デフォルト値を併記します)
・NSSP mode->Enable
・Nss Polarity->Low
・Master Keep Io Status->Master Keep Io Status->Disable
これらのうち、上2個はどうも間違っていなさそう。しかし3番目がよくわからん。そこで
次のような投稿を見つけました。
投稿主はNSS HW制御なので状況は違うのですが、試しに以下のように設定変更すると、
無事0x38が戻ってきました。
・Master Keep Io Status->Master Keep Io Status->Enable
HW制御でなくても影響を受けるものなのですね・・・。