STM32F7を使ってみる19 -CubeF7がv1.8.0になった-

9月も終わりを迎え、ようやく涼しくなってきましたね。
ねむいさんはここ数年は初夏〜晩秋にかけては登山や自然歩道攻略にリソースを
全振りしているのでこちらのぶろぐはなかなか更新するネタが無いのですが、
OpenOCDやSTM32のトピックは常にチェックしておりますのでご安心ください。

さて9月の下旬にSTM32F7Cubeが更新されV1.8.0になっております。
それに伴いCubeF7の中核をなすHALライブラリも大幅更新となっていました。

大きな変更はソースコード中にソースのバージョン表記が一切なくなったこと
です…なぜこのようなことにしたのか理解できないのですがこれあとあと面倒な
事になりそうでちょっと心配です。特に公式のフォーラム上でくだらない漫才
繰り広げられそうで私はちょっと戦慄しております。

あとはコールバックや割り込みハンドラの細かいバグ潰しでこちらもそれほど
致命的なものではないようですね。実際にCubeF7V1.7.0のHALライブラリと直接
差し替えても特に動作に支障はなかったです。


USBライブラリのMSCのアレについては相変わらずバグったままなので注意して
ください。scsi_blk_addrのuint32_tをuint64_tにしておくのを忘れずに。


それとBSP関連が結構変わっており手を加えないといけません。
私のいつものサンプルにおいてはSTM32F769-Discoではotm8009のドライバを使用
していますがV1.7.0まではランドスケープ(800x480)だったのがポートレイトに
(480x800)なってしまっています。ひとつ前のに戻しておかないと表示も入力も
めちゃくちゃです!これに関してはotm8009.hの定義を元のV1.7.0のやつのに
戻すことで対処。

それともう一件はmp3等のサウンド再生用の関数でこれまたSTM32F769-Disco上に
搭載されたcodec、wm8994を駆動するための初期化の関数内で微妙な改変が行われ
ておりそのままではヘッドフォンから音が出力されなくなってしまったことが
判明しましたorz。(STM32F746G-Discoも同様です)

これについては私が作成してた上位関数があるmp3_support.c,aac_support.c,
そしてwav_support.cのEVAL_AUDIO_Initの第一引数をOUTPUT_DEVICE_SPEAKER
からOUTPUT_DEVICE_BOTHにすることで対処しました。ほんとはこれが正しい
記述だったのかな!?


と言うわけでCubeF7V1.8.0を適用し上記の修正を加えた今月分のいつものの更新
を行いましたので
皆様どしどしご利用ください。
ちなみにARM提供のCMSISのヘッダファイルはCubeF7梱包の奴は使用せずgithubで
日々更新されているその時の出来たてホヤホヤの奴
を適用しています☆
F7のサンプルに限らず他の品種にも時間が空いた時にこのCMSISヘッダファイル群は
まとめて適用して更新しておりますのでSTM32に限らず他のCortex-Mx系のARM
マイコンを使用されてる方にも恩恵があると思います。


ここまで書いて思い出しましたが一般信者へのリリースが待ち焦がれている
STM32H7について、CubeH7ライブラリは実は既にお披露目となっていました
STM32H7のSDIOはなんとUHS-1対応となりましたがリファレンスマニュアルを読むと
動的にI/O電圧を内部で切り替えられる機構はなく専用のトランスレータICと組み
合わせて制御する仕組みとなっています。Discovery系のボードではさすがにトラ
ンスレータは乗ると思いますがNucleo系はちょっと予算的にも信号の精度的にも
難しそうですね。一応トランスレータ無しの3.3Vオンリーなら従来のNS(25MHz)と
HS(50MHz)はサポートしてるのでホビーならこれで十分ですけど。

この辺H7のさらなる進化でUHSモード時のI/O電圧動的切り替えがチップ内部で
出来るようになってくれると嬉しいですね〜

Go to top of page