このページでは

C

STM32H750Bディスカバリー・キット

このトピックでは、STM の STM32H750B Discovery Kit について必要な情報を提供します。

ボードの特徴

  1. ARM Cortex-M7
  2. 4.3インチRGBタッチディスプレイ
  3. 128-Mbit SDRAM
  4. 1-Mbit NORフラッシュ
  5. 4GバイトオンボードeMMC

対応色深度

このボードのリファレンス・ポートは、16bppおよび32bpp(デフォルト)の色深度をサポートしています。このボードは24bppもサポートしていますが、リファレンス・ポートには実装されていません。詳細については、QUL_COLOR_DEPTHと 色深度を参照してください。

注意: プリビルド・プラットフォーム・ライブラリはデフォルトの32bppにのみ対応しています。16bpp の色深度では、QUL_COLOR_DEPTH値を 16 に設定してプラットフォーム ライブラリを再構築する必要があります。ソースからプラットフォームをビルドするには、評価パッケージに対するQt Quick Ultralite プラットフォーム・ライブラリのビルドを参照してください。

ビルド済みデモとサンプル

STM32H750B ボード用パッケージには、ビルド済みのサーモデモ・バイナリが付属しています。demos_images ディレクトリにあります。

ブートローダ(STM32H750Bに必要)のフラッシュ方法については「STボード用ブートローダ・フラッシング手順」を、アプリケーション・バイナリをデバイスにフラッシュする方法については「STボード用フラッシュ手順」を参照してください。

デバッグ・メッセージの読み取り

デフォルトでは、qul_printf およびQul::PlatformInterface::log 呼び出しの出力は、USB 経由でホスト・マシンに公開され ている仮想シリアル・ポートにリダイレクトされます。

ハードウェア・アクセラレーション

リファレンス・ポートは、ハードウェア・アクセラレーション・グラフィックスにSTMicroelectronics Chrom-Art Accelerator (DMA2D)を使用しています。

DMA2Dは、画像操作専用のダイレクト・メモリ・アクセス(DMA)アクセラレータです。以下の操作が可能です:

  • 画像を特定の色で塗りつぶす。
  • ソース画像をデスティネーション画像にコピーする。
  • コピー元画像を、ピクセル・フォーマット変換を伴うコピー先画像にコピーする。
  • 異なるピクセル形式を持つ2つの完全なソース画像をブレンドし、その結果をピクセル形式変換付きで宛先画像にコピーします。

列挙した操作はすべて、画像の一部分または全体に対して実行できます。

詳細については、STマイクロエレクトロニクスのドキュメントを参照してください:

ハードウェア構成

後述のSTM32H750XB MCU固有のペリフェラルの詳細については、STマイクロエレクトロニクスのドキュメントを参照してください:

注: 以下のセクションでは、低レイヤ(LL)とハードウェア抽象化レイヤ(HAL)の両方がSTM32Cube抽象化レイヤを参照しています。

STM32CubeMX

STM32H750B-DK ボードのハードウェア・コンフィギュレーションは、STM32CubeMX で生成されたコードと、STM32Cube MCU Package for STM32H7 series リポジトリの周辺機器 BSP ドライバで構成されています。

すべての STM32CubeMX 生成コード(システム・クロック設定を除く)は、stm32h750b-discovery-baremetal/3rdparty/Core フォルダにあります。

このフォルダには、以下のコンフィギュレーションが含まれています:

  • ブートローダ、MPU、QSPI、および SDRAMmain.c
  • GPIO およびクロックstm32h7xx_hal_msp.c
  • 割り込みルーチンstm32h7xx_it.c
  • USARTusart.c

システム・クロック構成

システム・クロック構成はQt Quick Ultraliteプラットフォーム・ソース・ファイルstm32h750b-discovery-baremetal/platform_clock.cpp にあります。SystemClock_Config() 関数はカスタムクロック構成でオーバーライドできるように弱く宣言されています。

システム・ティック・タイマー

ARM Cortex-M SysTick タイマーは、STM32Cube MCU パッケージのリポジトリ・ファイルDrivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c で、HAL_InitTick() 関数を使用してタイムベース・ソースとして設定されます。

低レイヤー(LL)SysTick_Handler() 関数は、Qt Quick Ultralite プラットフォーム・ソース・ファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_it.c にあります。

割り込みハンドラ

低レイヤー(LL)プロセッサ例外および周辺割り込みハンドラはstm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_it.c にあります。

LCD-TFTディスプレイコントローラ(LTDC)割り込みコールバックおよびタッチ割り込みピンコールバック用のハードウェア抽象化レイヤ(HAL)割り込みハンドラは、Qt Quick Ultraliteプラットフォームソースファイルstm32h750b-discovery-baremetal/platform_irq.cpp にあります。

Chrom-ART アクセラレータ (DMA2D)

DMA2DコンフィギュレーションはQt Quick Ultraliteプラットフォームソースファイルplatform/boards/st/common/platform_drawing.cpp にあります。

DMA2Dのネストされたベクトル割り込みコントローラ(NVIC)とクロックのコンフィギュレーションは、Qt Quick Ultraliteプラットフォームのソースファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_hal_msp.c にあります。

表示

LCD-TFTディスプレイ・コントローラー(LTDC)のコンフィギュレーション設定は、Qt Quick Ultraliteプラットフォーム・ソース・ファイルstm32h750b-discovery-baremetal/platform_display.cpp にあります。

setLcdClockConfiguration() 関数を使用して、LTDC 用のクロック設定を与えることができます。

LTDCクロックイネーブルとGPIOコンフィギュレーション設定は、Qt Quick Ultraliteプラットフォームソースファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_hal_msp.c にあります。

クワッド・シリアル・ペリフェラル・インターフェイス(QSPI)

QSPI構成については、BSP_QSPI_Init() で周辺機器設定を、QSPI_MspInit()Drivers/BSP/STM32H750B-DK/stm32h750b_discovery_qspi.c ファイルからピンアウト/クロック構成を確認してください。

QSPIは、Qt Quick Ultraliteプラットフォーム・ソース・ファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/main.c でメモ リ・マップ・モードに設定されています。

乱数発生器(RNG)

乱数生成器(RNG)の初期化はQt Quick Ultraliteプラットフォーム・ソース・ファイルplatform/boards/st/common/platform_rng.cpp にあります。

RNG ハードウェアインスタンスのクロック設定は3rdparty/Core/Src/stm32h7xx_hal_msp.c にあります。

SDRAM

SDRAM BSP コンフィギュレーションは、STM32Cube MCU パッケージのリポジトリ・ファイルDrivers/BSP/STM32H750B-DK/stm32h750b_discovery_sdram.c にあります。

SDRAM MPU コンフィギュレーションは、Qt Quick Ultralite プラットフォーム・ソース・ファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/main.c にあります。

タッチパネル

タッチパネルのコンフィギュレーションは、STM32Cube MCU パッケージのリポジトリ・ファイルDrivers/BSP/STM32H750B-DK/stm32h750b_discovery_ts.c にあります。

タッチパネル・ドライバICはI2C4ハードウェア・インスタンスに接続され、タッチ割り込み信号はGPIOGピン2に接続されています。

I2C4 コンフィギュレーションは、STM32Cube MCU パッケージのリポジトリ・ファイルDrivers/BSP/STM32H750B-DK/stm32h750b_discovery_bus.c にあるMX_I2C4_Init() という関数にあります。

USART

USART3ハードウェアインスタンスは、仮想COMポート上のログに使用されます。USART3 設定は、Qt Quick Ultralite プラットフォーム・ソース・ファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/usart.c にあります。

USART3のGPIOとクロック設定はQt Quick Ultraliteプラットフォームソースファイルstm32h750b-discovery-baremetal/3rdparty/Core/Src/stm32h7xx_hal_msp.c にあります。

既知の問題または制限

  • SDRAM帯域幅が限られているため、CPUでSDRAMにアクセスすると、LTDC FIFO Underrunにより、フレームバッファがディスプレイコントローラによってスキャンされている間にビジュアルアーチファクトが発生する可能性があります。LTDC FIFO Underrun UI要素が多く、重いアニメーションを持つアプリケーションでは、ビジュアルグリッチの原因となるエラーが発生する可能性があります。UIを簡素化する以外に、Qt Quick Ultraliteコア・ライブラリに別のビルド・タイプを使用することを検討してください。例えば、MinSizeRel の代わりに、Debug またはRelease を使用します。ビジュアルアーチファクトの発生を防ぐには、CPUを使用してブレンドする必要がある、回転または透視変換された画像の使用を減らすようにしてください。
  • SDKバージョン1.12.1のみがサポートされています。

RLE解凍

このボードのCPUは、圧縮された画像をSDRAMのフレームバッファに直接ブレンドすることができません。そのような画像は、DMA2Dを使用してSDRAMのフレームバッファにブレンドする前に、限られたサイズの中間バッファに解凍されます。この方法では、非圧縮画像に比べて、RLE圧縮画像をブレンドするための性能オーバーヘッドが大きくなります。

platform_stm32.cppのqul_scratch_bufferのサイズを大きくすることである程度性能を改善できますが、その代償としてRAMの使用量が増えます。


詳細はこちら。