STN32F3Discovery開発キーポイント
20140530 coskx
T.SATOH
1. はじめに
STN32F3Discovery開発キーポイントは4つある。
(1)周辺ユニットperipheralへのクロック供給
(2)ピン割り当て
(3)ピンの機能変更Alternate function
(4)DMAチャンネル割り当て
2. 周辺ユニットperipheralへのクロック供給
周辺ユニットperipheralを利用する場合は,クロック供給しなくてはならない。使うユニットのみクロックを供給して省エネになっているためだと思われる。
ところで,あるユニットを使うときに,どこからクロックを供給するかがポイントである。
STM32F303xBリファレンスマニュアルDM00043574.pdf(RM0316) 7.3.2 Peripheral clock gatingを参照する。
AHB2 bus,APB1 bus,APB2 busでクロックを供給するので,これらを指定して設定することになる。
しかし,これだけではよくわからない。
8.4.6 AHB peripheral clock enable register (RCC_AHBENR)
8.4.7 APB2 peripheral clock enable register (RCC_APB2ENR)
8.4.8 APB1 peripheral clock enable register (RCC_APB1ENR)
を見ると,どのユニットがどのbusで有効になるか明確になる。
例えばGPIOAを使用するならば,AHB(RCC_AHBENR)のbit17なので
RCC ->AHBENR |= (1<<17);
にする,あるいは,
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
このようにして,クロックを供給する。
3. ピン割り当て
STMF3DISCOVERYで使用されているピン割り当てはSTMF3DISCOVERY User manual DM00063382.pdf(UM1570)のTable 6. STM32F303VCT6 MCU pin description versus board functionに記載されている。使用済みのピンをここで確認できる。
4. ピン割り当て詳細
機能ユニットがGPIOピンを利用する場合,あるユニットが利用できるピンは決まっており,
STM32F303xBマニュアルDM00058181.pdfのTable 11.STM32F303xB/STM32F303xC pin definitionsに記載されている。
5.ピンの機能変更
GPIOピンに他の機能をもたせる場合は,AFレジスタへの設定が必要になる。
ある機能を持たせるにはどのAFレジスタに登録すべきかは,
STM32F303xBマニュアルDM00058181.pdfのTable Table 12.Alternate functions for port A,Table 13.Alternate functions for port Bに記載されている。
ただしこの表はPortA,Bのみなので,それ以外のPortC以降はフレームワークプロジェクトの
Libraries\STM32F30x_StdPeriph_Driver\inc\stm32f30x_gpio.h
の#define GPIO_AF_0などの記述のコメント欄から推測する。
6. DMA
使用する機能ユニット毎に使用できるDMAチャンネルが決まっている。
これはリファレンスマニュアルDM00043574.pdf(RM0316)
Table 28. STM32F303xB/C and STM32F358xC summary of DMA1 requests for each channel
Table 30. STM32F303xB/C and STM32F358xC summary of DMA2 requests for each channel
に与えられている。
DMA1
DNA2