2020年

1/2ページ

Qtでプログラミング

  • 2020.12.27
  • Qt

モーターのベクトル制御をするためには強力なデバッグ環境が欠かせない。デバッグ環境と言っても色々あるが、個人的には数十マイクロ秒ごとに複数のデータを送ってきてくれればそれで良い。 具体的に言うと最低限d,q軸の電圧と電流、バス電圧、ローターの電気角+もう2つくらいを制御周期ごとにパソコンでモニターしたい。それも浮動小数点型で。 今までずっと株式会社データ・テクノさんのCPLTというツールを使っていた […]

STM32F7 WWDG(ウィンドウウォッチドッグ)

最近ずっとSTM32マイコンのペリフェラルの記事を書いているが、今回で終わりだ。最後はWWDG(独立ウォッチドッグ)について。機能が少なくとても単純なのでリファレンスマニュアル(RM0410 Rev4)を見ればすぐに使えるだろう。ここでは特徴や注意点を書こうと思う。 概要 WWDGはダウンカウンタとして動作する。APB1のペリフェラルクロックで動作するため精度は良いが、バスのクロックが停止すると一 […]

STM32F7 IWDG(独立ウォッチドッグ)

また前回から時間が空いてしまったが引き続きSTM32F7の機能について記述していく。今回IはIWDG(独立ウォッチドッグ)について。以下にマニュアルと書かれているのはリファレンスマニュアル(RM0410 Rev4)のことを指している。 概要 IWDGのタイマーは内蔵RCクロックによってmainとは完全に独立で動作する。RCクロックの名の通りRC発振回路で動作しているため時間精度は悪い。0xFFFか […]

STM32F7 FLASH(フラッシュメモリ)

前回から時間が空いてしまったが引き続きSTM32F7の機能について記述していく。今回はフラッシュメモリについて。以下にマニュアルと書かれているのはリファレンスマニュアル(RM0410 Rev4)のことを指している。 バンクのモード STM32F7のフラッシュメモリには以下の2つのモードがあり、マイコンが起動する際のOPTCRレジスタのnBANKビットの状態によってどのモードになるかが決まる。・シン […]

STM32F7 RCC(リセットとクロック)

引き続きSTM32F7の機能について記述していく。今回はリセットとクロックについて。以下にマニュアルと書かれているのはリファレンスマニュアル(RM0410 Rev4)のことを指している。 リセット STM32F7には3種類のリセットがある。RCC_CSRレジスタの31~25ビット目を見れば発生したリセット要因が分かる。これらのビットは同じくRCC_CSRのRMVFビットをクリアすることで全てクリア […]

STM32F7 PWR(電源管理)

ここ最近はひたすらSTM32F7のリファレンスマニュアル(RM0410 Rev4)を読んで基本的なペリフェラルの動作を確認していた。せっかくなのでここに分かったことを書いていこうと思う。まずは電源管理のペリフェラルから。ただの電源だと思ったがこれが意外と複雑で高機能だった。これがSTM32マイコンの良さでもあるようなのだが。 基本事項 STM32F7はVddピンから供給される電源によって動作する。 […]

STM32Cube USB Device Libraryを使ってPCと通信

ST社が提供しているHALなどのライブラリは構造が複雑で、何がどう動いているのか分からないものを使いたくないという気持ちがあって敬遠してきた。 しかしUSBを使ってPCと通信しようとしてこれを使わざるを得なくなった。USBの通信仕様が思った以上に複雑で、USB1.1の規格書だけでも300ページ以上ある。確かによくできてはいるけど、よくこんなものが世界標準になったなと感心した。 これを習得するのには […]

マイコンの基礎固め5

前回までの記事でメモリの割り振りを決めてリンカスクリプトも作成したので、今回はマイコンが起動した後の処理について記述していく。 STM32CubeIDEで空のプロジェクトを作成すると「Startup」というフォルダの下に「startup_stm32f767zitx.s」などという名前でマイコンが起動した直後の処理を記述したアセンブラファイルが作成される。 内容を見てみたところ、ここで行われているの […]

マイコンの基礎固め4

前回(マイコン基礎固め3)の記事で決定した出力セクションの構築するためにリンカスクリプトを作成したので紹介する。STM32CubeIDEで空のプロジェクトを作ると自動的に作成されるリンカスクリプトをベースにしている。 まずメモリ領域だが、ITCM領域を新たに定義し、さらにRAMとして一括りに定されていたDTCM、SRAM1、SRAM2を分離して定義した。 あとは前回の記事(マイコン基礎固め3)で決 […]

マイコンの基礎固め3

STM32F7マイコンの性能を引き出すために出力セクションをどこに配置するか自分なりに考えた結果をここにまとめておく。 STM32F7のメモリ STM32F7マイコンには5つのメモリがある。FLASH、ITCM、DTCM、SRAM1、SRAM2だ。このうちFLASHがROMに相当し、それ以外はRAMになる。 上の画像においてFLASHメモリの配置場所が0x00200000から始まるものと0x080 […]