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番目がよくわからん。そこで
次のような投稿を見つけました。

https://community.st.com/s/question/0D53W00000A2xuESAR/why-is-spi-not-working-on-nucleoh743zi2-nss-is-wrong-direction-and-no-clockno-output-solved-but-why

投稿主はNSS HW制御なので状況は違うのですが、試しに以下のように設定変更すると、
無事0x38が戻ってきました。

・Master Keep Io Status->Master Keep Io Status->Enable

HW制御でなくても影響を受けるものなのですね・・・。