Submit Search
Upload
ご注文はSTM32の開発ですか?
•
0 likes
•
271 views
M
MotokiYoshida
Follow
大工大技術交流会で発表されたスライドです。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
レスコンでの制御とSTM32はいいぞ話
レスコンでの制御とSTM32はいいぞ話
DoNabe1
200527 RTM Tutorial in ROBOMECH2020
200527 RTM Tutorial in ROBOMECH2020
openrtm
OpenRTM概要
OpenRTM概要
openrtm
SORACOMサービスを利用してフルスケールIoT
SORACOMサービスを利用してフルスケールIoT
Haruka Yamashita
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
STM32マイコンのオーディオ信号処理能力
STM32マイコンのオーディオ信号処理能力
Seiichi Horie
ROBOMECH2021 RTMオンライン講習会 第1部
ROBOMECH2021 RTMオンライン講習会 第1部
openrtm
2013 summercamp 08
2013 summercamp 08
openrtm
Recommended
レスコンでの制御とSTM32はいいぞ話
レスコンでの制御とSTM32はいいぞ話
DoNabe1
200527 RTM Tutorial in ROBOMECH2020
200527 RTM Tutorial in ROBOMECH2020
openrtm
OpenRTM概要
OpenRTM概要
openrtm
SORACOMサービスを利用してフルスケールIoT
SORACOMサービスを利用してフルスケールIoT
Haruka Yamashita
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
STM32マイコンのオーディオ信号処理能力
STM32マイコンのオーディオ信号処理能力
Seiichi Horie
ROBOMECH2021 RTMオンライン講習会 第1部
ROBOMECH2021 RTMオンライン講習会 第1部
openrtm
2013 summercamp 08
2013 summercamp 08
openrtm
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
Yasuharu Nishi
NHKロボコンにおける機械開発
NHKロボコンにおける機械開発
MasayaMorinaga
中島毅, SQuaREシリーズの将来⽅向 スタディグループ報告と国際標準化加速プロジェクトの紹介
中島毅, SQuaREシリーズの将来⽅向 スタディグループ報告と国際標準化加速プロジェクトの紹介
Hironori Washizaki
RTBにおける機械学習システムの実装と運用
RTBにおける機械学習システムの実装と運用
Atsuhiro Narita
ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部
openrtm
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
tomohiro odan
Bee Style:vol.042
Bee Style:vol.042
Tsuyoshi Horigome
Open capi meetup20180305
Open capi meetup20180305
Yutaka Kawai
Bee Style:vol.020
Bee Style:vol.020
spicepark
SCG-AT:静的コード生成のみによる自動チューニング実現方式
SCG-AT:静的コード生成のみによる自動チューニング実現方式
Takahiro Katagiri
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
Takahiro Yamaki
200520 ユビキタスロボティクス特論
200520 ユビキタスロボティクス特論
NoriakiAndo
Bee Style:vol.027
Bee Style:vol.027
Tsuyoshi Horigome
131017 cnr研究会 ando
131017 cnr研究会 ando
openrtm
SORACOM STUDY GROUP 九州 | IoTプラットフォームSORACOM
SORACOM STUDY GROUP 九州 | IoTプラットフォームSORACOM
SORACOM,INC
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大
openrtm
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
シスコシステムズ合同会社
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
Yukio Kubo
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
TomohisaYamazoe
More Related Content
Similar to ご注文はSTM32の開発ですか?
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
Yasuharu Nishi
NHKロボコンにおける機械開発
NHKロボコンにおける機械開発
MasayaMorinaga
中島毅, SQuaREシリーズの将来⽅向 スタディグループ報告と国際標準化加速プロジェクトの紹介
中島毅, SQuaREシリーズの将来⽅向 スタディグループ報告と国際標準化加速プロジェクトの紹介
Hironori Washizaki
RTBにおける機械学習システムの実装と運用
RTBにおける機械学習システムの実装と運用
Atsuhiro Narita
ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部
openrtm
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
tomohiro odan
Bee Style:vol.042
Bee Style:vol.042
Tsuyoshi Horigome
Open capi meetup20180305
Open capi meetup20180305
Yutaka Kawai
Bee Style:vol.020
Bee Style:vol.020
spicepark
SCG-AT:静的コード生成のみによる自動チューニング実現方式
SCG-AT:静的コード生成のみによる自動チューニング実現方式
Takahiro Katagiri
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
Takahiro Yamaki
200520 ユビキタスロボティクス特論
200520 ユビキタスロボティクス特論
NoriakiAndo
Bee Style:vol.027
Bee Style:vol.027
Tsuyoshi Horigome
131017 cnr研究会 ando
131017 cnr研究会 ando
openrtm
SORACOM STUDY GROUP 九州 | IoTプラットフォームSORACOM
SORACOM STUDY GROUP 九州 | IoTプラットフォームSORACOM
SORACOM,INC
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大
openrtm
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
シスコシステムズ合同会社
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
Yukio Kubo
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
TomohisaYamazoe
Similar to ご注文はSTM32の開発ですか?
(20)
Re-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
NHKロボコンにおける機械開発
NHKロボコンにおける機械開発
中島毅, SQuaREシリーズの将来⽅向 スタディグループ報告と国際標準化加速プロジェクトの紹介
中島毅, SQuaREシリーズの将来⽅向 スタディグループ報告と国際標準化加速プロジェクトの紹介
RTBにおける機械学習システムの実装と運用
RTBにおける機械学習システムの実装と運用
ROBOMECH2021 RTM講習会 第1部
ROBOMECH2021 RTM講習会 第1部
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
Bee Style:vol.042
Bee Style:vol.042
Open capi meetup20180305
Open capi meetup20180305
Bee Style:vol.020
Bee Style:vol.020
SCG-AT:静的コード生成のみによる自動チューニング実現方式
SCG-AT:静的コード生成のみによる自動チューニング実現方式
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
開発リードタイム短縮への挑戦 〜とある現場のパターン・ランゲージ〜
200520 ユビキタスロボティクス特論
200520 ユビキタスロボティクス特論
Bee Style:vol.027
Bee Style:vol.027
131017 cnr研究会 ando
131017 cnr研究会 ando
SORACOM STUDY GROUP 九州 | IoTプラットフォームSORACOM
SORACOM STUDY GROUP 九州 | IoTプラットフォームSORACOM
160705-w01 RTミドルウエア講習会・早稲田大
160705-w01 RTミドルウエア講習会・早稲田大
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
大阪市南港ATC イメディオ IoT・ M2Mセミナ資料(web公開用)
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
AIスピーカーとオープンネットワーク機器LonWorks・EnOcean・DALI 接続実証実験
ご注文はSTM32の開発ですか?
1.
ご注文はSTM32の開発ですか?? ~Is the order
a development of STM32 ??~
2.
目次 • 自己紹介 • STM32の開発 •
なぜSTM32CubeHALなのか • 高機能ペリフェラル例、様々なミドルウェア • STM32開発のはじめ方 • Lチカしてみよう • ちょっと便利な機能 • CANをCubeHALで使ってみる • CAN-FDをCubeHALで使ってみる • STM32G4について • ブログの紹介
3.
自己紹介 • ロボカップジュニア(2006~2015) • 静岡大学ロボットファクトリー所属
電装班 • レスキューロボットコンテスト レスキュー工学大賞 他4件 • ロボットグランプリ 大道芸部門 準優勝、ランサー 技術賞 • 計測自動制御学会 SI2018 優秀講演賞 • ロボカップ小型リーグ(SSL) “ibis” • ロボマスター “Setouchi Salamander“ • ベンチャー企業(C-Point)にて電動バイク開発
4.
STM32の開発 • STM32CubeIDE
5.
なぜ、STM32Cube・HALなのか • GUIでピン設定、クロック設定を行い、 HALのひな型を吐いてくれる →GUIでピンを決められるのでミスが少 ない&ソフト的にどこに使うかわかっ たうえで回路が引ける • STM32のすべての機能を使え、低レイヤ まで触ることができる →高機能ペリフェラルやメモリ管理が しっかりできる。しかもポチポチだけで →mbedではない機能もたくさん使える
6.
高機能ペリフェラル例1(DMA) • DMA(のダイレクト・メモリ・アクセス・コントローラ) CPUに負荷をかけることなく、ペリフェラルおよびメモリ間 の 効率のよいデータ転送に対応できる →感覚的にはDMAでペリフェ ラルを動かすと入力であれば 勝手に配列にデータが入って いて、出力であれば配列に データを入れておけば勝手に 転送しておいてくれる感じ 使用例:UART、ADC、I2C 出典: https://www.st.com/content/ccc/resource/sales_and_marketing/presentation/product_presentation/62/aa/eb/62/d5/a9/4b/bc/07.STM32L4-System- Direct%20Memory%20Access%20(DMA)%20Final_JP.pdf/files/07.STM32L4-System- Direct%20Memory%20Access%20(DMA)%20Final_JP.pdf/jcr:content/translations/en.07.STM32L4-System-Direct%20Memory%20Access%20(DMA)%20Final_JP.pdf
7.
高機能ペリフェラル例2 (ARTアクセラレータ) TCMバス経由でのフラッシュの読み出しウェイトを事実上0にす るキャッシュ群みたいなもの →実際flashの速度って80MHz程度が限界なので高速動作でき ない。 →flashから大量に先読みして バッファする 出典:https://eda360insider.files.wordpress.com/2011/09/stm32-f4-art-accelerator-block-diagram.jpg
8.
高機能ペリフェラル例3 (タイマー) • PWM • エンコーダー入力 出典:https://www.stmicroelectronics.com.cn/content/ccc/resource/sales_and_marketing/presentation/product_presentation/group0/31/ad/bf/68/28/3b/46/fc/43.General-purpose%20timers%20(GPTIM)/files/43.STM32L4-WDG_TIMERS- General%20Purpose%20Timer%20(GPTIM)%20Final_JP.pdf/jcr:content/translations/en.43.STM32L4-WDG_TIMERS-General%20Purpose%20Timer%20(GPTIM)%20Final_JP.pdf
9.
さまざまなミドルウェアが使える • LWIP:EthernetでIP通信するためのミドルウェア • FatFs:ファイル操作 •
FreeRTOS:組み込みシステム用のオープンソース のリアルタイムオペレーティングシス テム • USB:USBいじるためのやつ(使ったことない) 出典:http://elm-chan.org/docs/fat.html 出典:https://es.wikipedia.org/wiki/FreeRTOS
10.
STM32開発のはじめ方 ①https://www.st.com/ja/development-tools/stm32cubeide.html からSTM32CubeIDEをダウンロード&インストール 以上!!!!!!!!! (まじで落としてインストールするだけで使える) メリット :開発環境が一つにまとまってよい。STの公式サポート。 C++に対応した。 デメリット:ペリフェラル設定画面(以前のCubeMX画面)が1個までしか開けな くて見比べながらとかができない。
11.
その他の開発環境 • TureStudio+CubeMX:ちょっと前の最強の組み合わせ(個人的) macだと動かないらしい(Eclipseなのにね) • CoCoX:使ったことないけど中華製だけあってなんかびみょかった •
SW4STM32:STの有志社員が作ったからバグだらけ • Keil:フリー版だと書けるサイズに上限があって使えない。 有料版買えた値段じゃない。高すぎ。けどバグはほぼない。
12.
手始めにLチカしてみよう ここでC++プロジェクトにして おけば後で.cppに変えれる
13.
ピン設定 • GPIOC,GPIO_PIN13:INPUT (USERボタン) • GPIOA,GPIO_PIN5:OUTPUT (USER_LED) •
SYS →SWD • RCC → BYPASS or Crystal BYPASS:ST-Linkに載ってる水晶 からクロックをもらう Crystal:外部水晶からクロックを もらう
14.
クロック設定・ジェネレート 内部、外部 選択 ベースクロック指定 Ctr+Sでジェネレートできる
15.
コーディング if(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13)){ //ボタン状態取得 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
//ボタンが押されてないときLDE点灯 } else{ HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET); //ボタンが押されたらLED消灯 } Rename Resourceで.cから.cppに変えることでC++で書けるようになる。 →しかしながらCubeをジェネレートするとそこに上書きされずにmain.cが再 登場する。
16.
書き込み(デバッグ開始) ビルド リビルド(初めからすべてビルド) デバッグ デバッグ設定(ビルドを一回してからまずここで設定
17.
デバッグ ブレイクポイントまでプログラムを流す デバッグ終了 もう一度ビルドしてデバッグ再開 Expression(変数の内容が見れる) レジスタの内容が見れる 緑になっているところの前まで実行した ステップオーバー(1行進める)
18.
ちょっと便利な機能1 • カーソルを関数のところに 載せると中身がみれる • カーソルを変数のところに 合わせると定義が見れる •
F3を押すと定義や関数の 中身に飛べる
19.
ちょっと便利な機能2 • ビルドアナライザー: メモリの使用率が見れる • デバッグ画面中のSFRs: レジスタの生の値見れる&書き換えれる •
デバッグ画面中の式: 変数の値をステップしながら見れる →ArudinoとかmbedでのPrintfによる デバッグからの脱却
20.
CANを使う
21.
CANを使う その2 • 用意する変数、構造体等 CAN_TxHeaderTypeDef
TxHeader; 送信ハンドラー CAN_RxHeaderTypeDef RxHeader; 受信ハンドラー uint8_t TxData[8]; 送信データ配列 uint8_t RxData[8]; 受信データ配列 uint32_t TxMailbox; 送信箱 • 送信フィルタ TxHeader.StdId = 0x456; 送信ID TxHeader.RTR = CAN_RTR_DATA; TxHeader.IDE = CAN_ID_STD; TxHeader.DLC = 3; 送信byte数 TxHeader.TransmitGlobalTime = DISABLE;
22.
• 受信コールバック関数: void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef
*hcan) • 受信読み出し関数: HAL_CAN_GetRxMessage(&hcan1, CAN_RX_FIFO0, &RxHeader, RxData) • 受信開始指令関数: HAL_CAN_ActivateNotification(&hcan1,CAN_IT_RX_FIFO0_MSG_PENDING) • 送信関数: HAL_CAN_AddTxMessage(&hcan1, &TxHeader, TxData, &TxMailbox) • CANフィルタの記述 →受信IDのフィルタは5bit左シフトして使う CANを使う その3
23.
CAN-FDを使う 出典:http://www.tij.co.jp/product/jp/TCAN1051G-Q1
24.
• 用意する変数 FDCAN_TxHeaderTypeDef TxHeader; FDCAN_RxHeaderTypeDef
RxHeader; uint8_t TxData[50]; uint8_t RxData[50]; uint32_t TxMailbox; • 送信フィルタ TxHeader.Identifier = 0x123; →送信ID TxHeader.IdType = FDCAN_STANDARD_ID; TxHeader.TxFrameType = FDCAN_DATA_FRAME; TxHeader.DataLength = FDCAN_DLC_BYTES_32; →32byte一気に送れる TxHeader.ErrorStateIndicator = FDCAN_ESI_ACTIVE; TxHeader.BitRateSwitch = FDCAN_BRS_ON; TxHeader.FDFormat = FDCAN_FD_CAN; TxHeader.TxEventFifoControl = FDCAN_STORE_TX_EVENTS; TxHeader.MessageMarker = 0x52; CAN-FDを使う その2
25.
CAN-FDを使う その3 • 受信コールバック関数: void
HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs) • 受信読み出し関数: HAL_FDCAN_GetRxMessage(hfdcan, FDCAN_RX_FIFO0, &RxHeader, RxData) • 受信開始指令関数: HAL_FDCAN_ActivateNotification(&hfdcan1,FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) • 送信関数: HAL_FDCAN_AddMessageToTxFifoQ(&hfdcan1, &TxHeader, TxData) • CANフィルタの記述
26.
STM32G4について その1 • DSPおよびFPU命令による高い性能と高度な機能を備えた ミックスド・シグナル・マイコン •
最大170 MHzで動作するArm® Cortex®-M4(DSPおよび FPU命令に対応)、3種類のハードウェア・アクセラレータ • CAN-FDに対応 • CORDIC演算に対応 →双曲線関数と三角関数を計算する ための単純で効率的なアルゴリズム • 安い(G474が高いだけでそれ以外は大体600円程度)
27.
STM32G4について その2 っで実際どうなの?編 • CAN-FDについて →とりあえず使えてる。ボーレートもちゃんと2MBps出せた。 →今までのCANとは全然設定項目・名前が違った →データ長は0~8、12、16、20、24、32、48、64バイトが選択 →実際に32バイト一気に送れた •
CORDIC演算 →とりあえず動いた。 →sin計算はmath.hの38倍くらいはやかった。 →固定小数点なので人間がパッと見て数値がわからん →DMAで専用ハードに条件投げるだけなのでメインの処理 に関係なく演算ができる
28.
ブログの紹介 • CubeHALのテストしたときの記事 のまとめ(リンク集)があります。 • その他STM32開発の記事を多めに 書いてます。 →URL埋め込まれてる QRコード
29.
ありがとうございました
Download now