0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

STM32H743I-EVAL2を使ってみた件

Last updated at Posted at 2020-09-04

STM32H743I-EVAL 試し始めた。

ソフトウェアを書き換えた後でデフォルトプログラム(demoソフト)に戻すため、書き込みバイナリファイル(実際はHEXファイルだった)を探した時からの独り言です。

##ダウンロード

  1. STM32H743I-EVAL紹介ページにアクセス
    https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32h743i-eval.html

  2. Resources(赤〇部)をクリック
    image.png

  3. ページ下部にスクロールし「STM32H743I-EVAL compiled demo binary」をチェックしてダウンロード。
    image.png

##書き込み
・書き込みアダプタ: ST-LINK/V2 を使用。

・オーソドックスな STM32 ST-LINK utility は使いません。
EVAボードに実装されている外付けNORフラッシュメモリへの書き込みができず、
「“no elf loader found for this operation”.」のエラーメッセージが表示されます。
(※v4.5.0 使用しましたが「External Loader」メニューにメモリ該当型番なし。)

・まず、STM32CubeProg をインストールします。

・ダウンロードしたdemoプログラム格納フォルダの「program_hexfile.bat」を実行します。
image.png
 書き換えには私のPC環境で12分30秒かかりました。

##ST-LINK V3
つーか普通にST-LINK実装されてますね。それも"V3"が。(マニュアル読まないクセがいかん)
image.png
 これだと書き換え約3分半。もう"V2"使わない。
  ※「STM32 ST-LINK utility」では"V3"アダプタ認識せず。たぶん利用不能かと。

マスストレージもしっかり出現しますね。Nucleoライクにbinファイルをポイっと格納できそうですね。
image.png
####binファイル生成
(MDK-ARMの場合)
ユーザーオプション設定で
fromelf --bin --output=$H@H.bin $H@H.axf
を設定し、ビルド生成ファイルaxfをbinファイルへ変換。
image.png
その後binファイルをマスストレージへドラッグ&ドロップ!
うん。ちゃんと書けました。
##仮想COM
仮想COMポートもあるね。
image.png

ショートピン[JP7,8] 2-3、2-3 ショートでRS232C I/Fから仮想COMへ切り替わる。
image.png

##USART
これまでSTM32FとかSTM32Lとか使ってきたけどSTM32HのUSARTってレジスタ名とか設定ビット配置変わってるし。機能もいろいろ追加されたんかな。どこの型番からなのかいまいちネットで情報引き出せませんが。
仕方ないリファレンスマニュアル見比べるか。日本語版もあるし。

自分のこれまでのリソースとHALドライバの割り込み処理の相性が悪かったため、割り込みハンドラを自作のに入れ替えてたけど、STM32L版から修正した箇所はざっくり抜粋して次の感じ。

usart

/* ステータスレジスタビット代替定義 */
#ifdef STM32H7
#define 	USART_SR_TXE		USART_ISR_TXE_TXFNF
#define 	USART_SR_RXNE		USART_ISR_RXNE_RXFNE
#define 	USART_SR_PE			USART_ISR_PE
#define 	USART_SR_FE			USART_ISR_FE
#define 	USART_SR_NE			USART_ISR_NE
#define 	USART_SR_ORE		USART_ISR_ORE
#endif

  :
  :

/* ステータス読み出し */
#ifdef STM32H7
	uint32_t isrflags   = READ_REG(huart->Instance->ISR);
#else
	uint32_t isrflags   = READ_REG(huart->Instance->SR);
#endif

  :
  :

/* 送信レジスタ書き込み */
#ifdef STM32H7
			huart->Instance->TDR = txdata;
#else
			huart->Instance->DR = txdata;
#endif

  :
  :

/* 受信レジスタ読み込み */
#ifdef STM32H7
		volatile uint8_t txdata = huart->Instance->RDR;
#else
		volatile uint8_t txdata = huart->Instance->DR;
#endif

普通に調歩同期でFIFO無し(CubeMX標準生成モード)にて使う限り、この程度の調整で普通に動作した。

##LTDC

STM32Cube MCU Package
https://www.st.com/ja/embedded-software/stm32cubeh7.html
をDLして
.\STM32Cube_FW_H7_V1.8.0\Projects\STM32H743I-EVAL\Examples\LTDC\LTDC_Display_1Layer
をビルドして書き込む。
image.png
でもこれ、CubeMXのプロジェクトファイル(.ioc)がない。

またCubeMXでデフォルトで自動生成したソースコードは内部クロック設定のためそのままではLTDCサンプル動作しない。
LTDC_Display_1Layer プロジェクトソースコードと見比べながら以下のようにCubeMXプロジェクトのクロック設定を調整した。
image.png
自前のプログラムに組み込んで、とりあえずお花の外国姉さん表示できた。


※随時追記予定。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?