Tangwx

Tangwx

博客网站

01.STM32の基礎知識の概要

1 STM32 基礎知識の概要#

1.1 STM32 の紹介#

STM32 は ST 社が ARM Cortex-M コアを基に開発した 32 ビットマイクロコントローラです

MMicrocontrollerの意味です

STM32 は組み込み分野でよく使用され、例えばスマートカー、ドローン、ロボット、無線通信、IoT、産業制御、エンターテインメント電子製品などに応用されています

STM32 は強力な機能、高い性能、豊富なオンチップリソース、低消費電力を持ち、クラシックな組み込みマイクロコントローラです

image-20220809082441069

1.2 ARM の紹介#

ARM は ARM 社を指すだけでなく、ARM プロセッサコアも指します

ARM 社は世界をリードする半導体知的財産(IP)プロバイダーで、全世界の 95% 以上のスマートフォンとタブレットが ARM アーキテクチャを採用しています

ARM 社は ARM コアを設計し、半導体メーカーがコア周辺回路を完成させてチップを生産します

image-20220809083032037

image-20220809083101283

1.3 STM32F103C8T6 の紹介#

シリーズ:主流シリーズ STM32F1

コア:ARM Cortex-M3

主周波数:72MHz

RAM:20K(SRAM)

ROM:64K(Flash)

供給電圧:2.0~3.6V(標準 3.3V)

パッケージ:LQFP48

image-20220809084122792

1.4 オンチップリソース / 周辺機器(Peripheral)#

STM32 は FreeRTOS、UCOS などのオペレーティングシステムを追加できます。これらのオペレーティングシステムを使用する場合、SysTickがタスク切り替え機能のためのタイミングを提供する必要があります。

UARTは非同期シリアルポートを意味し、STM32USARTは非同期シリアルポートと同期シリアルポートの両方をサポートしますが、非同期シリアルポートが比較的多く使用されます

英語略語名称英語略語名称
NVICネストされたベクタ割り込みコントローラCANCAN 通信
SysTickシステムティックタイマーUSBUSB 通信
RCCリセットとクロック制御RTCリアルタイムクロック
GPIO汎用 IO ポートCRCCRC チェック
AFIOマルチファンクション IO ポートPWR電源制御
EXTI外部割り込みBKPバックアップレジスタ
TIMタイマーIWDG独立ウォッチドッグ
ADCアナログ - デジタルコンバータWWDGウィンドウウォッチドッグ
DMAダイレクトメモリアクセスDACデジタル - アナログコンバータ
USART同期 / 非同期シリアル通信SDIOSD カードインターフェース
I2CI2C 通信FSMCフレキシブル静的メモリコントローラ
SPISPI 通信USB OTGUSB ホストインターフェース

1.5 チップ命名規則#

image-20220809084423056

1.6 システム構造#

Cortex-M3コアは 3 つのバスを引き出します。ICode命令バス、DCodeデータバス、Systemシステムバス

ICodeバスとDCodeバスは主にFlashフラッシュメモリを接続するために使用されます

Flashには私たちが書いたプログラムが保存されています

ICode命令バスはプログラム命令をロードするために使用されます

DCodeデータバスはデータをロードするために使用されます。例えば、定数やデバッグデータなどです

SystemシステムバスはSRAMFSMCに接続されています

SRAMはプログラム実行中の変数データを保存するために使用されます

AHBシステムバスは主要な周辺機器をマウントするために使用されます。AHB はアドバンストハイパフォーマンスバスの意味で、一般的に最も基本的または高性能な周辺機器がマウントされます。例えば、リセットとクロック制御などの最も基本的な回路や、SDIOAHBにマウントされています

APB1APB2の 2 つの周辺バス、APBはアドバンスト周辺バスの意味で、一般的な周辺機器を接続するために使用されます。

AHBAPBのバスプロトコル、バス速度、データ転送形式の違いのために、間に 2 つのブリッジを加えてデータの変換とキャッシュを行う必要があります。AHBの全体的な性能はAPBよりも高く、APB2の性能はAPB1の性能よりも高くなっています。APB2は一般的にAHBと同じ周波数で、どちらも 72MHz で、APB1は一般的に 36MHz です。したがって、APB2に接続されるのは一般的に周辺機器の中でやや重要な部分であり、例えばGPIOポートや一部の周辺機器の 1 号選手(USART1SPI1TIM1TIM8など)、TIM8TIM1は同様に高級タイマーであり、重要な周辺機器でもあります。ADCEXTIAFIOAPB2に接続されています。他の 2、3、4、5 号周辺機器、DAC、PWR、BKP などのやや重要度が低い周辺機器はAPB1に割り当てられます。もちろん、使用時には個人が一般的にAPB2APB1の性能差を感じることはなく、どの周辺機器がどのバスにマウントされているかを知っていれば十分です

DMAは CPU の小さな秘書のように機能します。例えば、大量のデータを移動させる作業を CPU にやらせるのは時間の無駄です。DMAはこれらの単純で繰り返し行う必要のある作業を主に行います。DMADMAバスを介してバスマトリックスに接続されており、CPU と同じバス制御権を持ち、これらの周辺機器にアクセスします。データをDMAで移動する必要があるとき、周辺機器はリクエストラインを介してDMAリクエストを送信し、DMAはバス制御権を取得し、データにアクセスして転送します。このプロセス全体には CPU の参加は必要なく、CPU の時間を他の作業に使うことができます

image-20220809084538311

1.7 ピン定義#

赤色は電源関連のピンです

青色は最小システム関連のピンです

緑色は IO ポート、機能ポートなどのピンです

Sタイプは電源を表します

Iタイプは入力を表します

Oタイプは出力を表します

IOタイプは入力出力を表します

FTはこのピンが5Vの電圧に耐えられることを示し、FTがないものは3.3Vの電圧しか耐えられません

STM32内部は分割供電方式を採用しており、供給ピンが多く、使用時にはVSSはすべてGNDに接続し、VDDはすべて3.3Vに接続します

STM32SWDJTAGの 2 つのデバッグ方式をサポートしています

SWDは 2 本の線が必要で、それぞれSWDIOSWCLKです

JTAGは 5 本の線が必要で、それぞれJTMSJTCKJTDIJTDONJTRSTです

STLINKSWD方式を使用してデバッグプログラムをダウンロードするため、PA13PA14の 2 つのIOポートのみを占有します

SWD方式でダウンロードする際、PA15PB3PB4は通常のIOポートとして使用するために切り替えることができますが、プログラム内で設定する必要があります。設定しない場合、デフォルトでは IO ポートとして使用されません

image-20220810080019866

image-20220811092650888

ピン番号ピン名ピン定義主機能
1VBAT予備バッテリー供給ピン。このピンには 3V バッテリーを外部接続でき、システム電源が切れたときに予備バッテリーが内部の RTC クロックとバックアップレジスタに電源を供給できますVBAT
2PC13-TAMPER-RTCI/O ポートまたは侵入検知または RTC。IO ポートはプログラムに応じて高低レベルを出力または読み取ることができ、侵入検知は安全保障機能に使用でき、RTC は RTC キャリブレーションクロック、RTC アラームパルスまたは秒パルスを出力するために使用できますPC13
3、4PC14-OSC32_IN/PC15-OSC32_OUTIO ポートまたは 32.768KHz の RTC クリスタルを接続PC14/PC15
5、6OSC_IN/OSC_OUTシステムの主クリスタルを接続します。一般的には 8MHz で、チップ内部には位相同期回路があり、この 8MHz の周波数を倍増させ、最終的に 72MHz の周波数を生成してシステムの主クロックとしますOSC_IN/OSC_OUT
7NRSTシステムリセットピン。N は低レベルリセットを示しますNRST
8,9VSSA/VDDA内部アナログ部分の電源(ADC、RC オシレータなど)。VSS は負極が GND に接続され、VDD は正極が 3.3V に接続されますVSSA/VDDA
10PA0-WKUPIO ポートは WKUP 機能も持ち、スタンバイモードの STM32 をウェイクアップできますPA0
11-19PA1、PA2、PA3、PA4、PA5、PA6、PA7、PB0、PB1IO ポートPA1-PB1
20PB2IO ポートまたは BOOT1 ピン。BOOT ピンは起動モードを設定するために使用されますPB2/BOOT1
21,22PB10、PB11IO ポートPB10,PB11
23,24VSS_1/VDD_1システム主電源口。VSS は負極、VDD は正極VSS_1/VDD_1
25-33PB12、PB13、PB14、PB15、PA8、PA9、PA10、PA11、PA12IO ポートPB12、PB13、PB14、PB15、PA8、PA9、PA10、PA11、PA12
34PA13IO ポートまたはデバッグポートJTMS/SWDIO
35,36VSS_2/VDD_2システム主電源口。VSS は負極、VDD は正極VSS_2/VDD_2
37-40PA14/PA15/PB3/PB4IO ポートまたはデバッグポート(デバッグとプログラムのダウンロードに使用)JTCK_SWCLK/JTDI/JTDO/NJTRST
41-43PB5/PB6/PB7IO ポートPB5/PB6/PB7
44BOOT0BOOT1 と同様に起動設定に使用されますBOOT0
45,46PB8/PB9IO ポートPB8/PB9
47,48VSS_3/VDD_3システム主電源口。VSS は負極、VDD は正極VSS_3/VDD_3

1.8 起動設定#

起動設定の目的はプログラムが開始される位置を指定することです。一般的にはプログラムは Flash プログラムメモリから実行されますが、特定の状況下ではプログラムを他の場所から実行させて特別な機能を実現することもできます

BOOT1=0 BOOT0=1 モードはシリアルポートダウンロード用で、システムメモリにはSTM32の一部であるBootLoaderプログラムが保存されています。BootLoaderプログラムの役割はシリアルポートからデータを受信し、主フラッシュメモリに書き込むことです。これにより、シリアルポートからプログラムをダウンロードできるようになります。一般的に、シリアルポートからプログラムをダウンロードする必要があるときは、このモードに設定します

BOOT0=0 の起動モードは主フラッシュメモリのモードで、主フラッシュメモリが起動領域として選択され、この時に Flash フラッシュ内のプログラムが正常に実行されます。このモードは最も一般的なモードで、通常はこの設定です

BOOT1=1 BOOT0=1 の設定はSRAM起動で、このモードは主にプログラムデバッグに使用され、現在はあまり使用されていません

BOOTピンの値は電源投入リセットの瞬間に有効で、その後は自由です

image-20220809084630785

1.9 最小システム回路#

OSC32は 32.768KHz クリスタルを意味し、32768 は 2 の 15 乗で、内部 RTC 回路は 2 の 15 乗で分周して 1 秒の時間信号を生成できます。

image-20220809084704647

RTCクリスタルは 32.768KHz クリスタルです

img

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。