ファームウェア関数一覧
FSMC_NORSRAMInit †
ヘッダ宣言 †
関数プロトタイプ †
void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct)
動作 †
- FSMC_NORSRAMInitStruct構造体で指定されたパラメータで、FSMC NOR/SRAM バンク・レジスタを初期化します。
引数 †
- FSMC_NORSRAMInitStruct
stm32f10x_fsmc.hで定義されている構造体です。
- FSMC_NORSRAMTimingInitTypeDef
typedef struct
{
uint32_t FSMC_AddSetupTime;
uint32_t FSMC_AddHoldTime;
uint32_t FSMC_DataSetupTime;
uint32_t FSMC_BusTurnaroundDuration;
uint32_t FSMC_CLKDivision;
uint32_t FSMC_DataLatency;
uint32_t FSMC_AccessMode;
}FSMC_NORSRAMTimingInitTypeDef;
- FSMC_AddSetupTime
アドレスのセットアップタイムを構成するためにHCLKサイクル数を定義します。このパラメタは0から0xFの間の値になるでしょう。これは同期NOR Flashメモリの場合は使用されません。
- FSMC_AddHoldTime
アドレスのホールドタイムを構成するためにHCLKサイクル数を定義します。このパラメタは0から0xFの間の値になるでしょう。これは同期NOR Flashメモリの場合は使用されません。
- FSMC_DataSetupTime
データのセットアップタイムを構成するためにHCLKサイクル数を定義します。このパラメタは0から0xFFの間の値になるでしょう。これはSRAM、ROM、非同期多重化NOR Flash メモリで使用されます。
- FSMC_BusTurnaroundDuration
バスターンアラウンドタイムを構成するためにHCLKサイクルの数を定義します。 このパラメタは0と0xFの間の値になるでしょう。これは多重化NOR Flashメモリに使用されるだけです。
- FSMC_CLKDivision
データセットアップタイムを構成するためにHCLKサイクルの数を定義します。 このパラメタは0と0xFの間の値になるでしょう。このパラメタは非同期なNOR Flash、SRAMまたはROMアクセスには使用されません。
- FSMC_DataLatency
最初のデータを得る前にメモリに送信するクロックサイクルを定義します。 このパラメタの値は以下に示すようにメモリタイプに依存します。
1.CRAMの場合は0。
2.非同期NOR、SRAM、ROMの場合は無効です。
3.バースト転送モードが有効な同期式NOR Flashの場合、このパラメタは0と0xFの間の値になるでしょう。
- FSMC_AccessMode
非同期アクセスモードを以下の表から選択します。
FSMC_AccessMode | 説明 |
FSMC_AccessMode_A | Access mode A |
FSMC_AccessMode_B | Access mode B |
FSMC_AccessMode_C | Access mode C |
FSMC_AccessMode_D | Access mode D |
- FSMC_NORSRAMInitTypeDef
typedef struct
{
uint32_t FSMC_Bank;
uint32_t FSMC_DataAddressMux;
uint32_t FSMC_MemoryType;
uint32_t FSMC_MemoryDataWidth;
uint32_t FSMC_BurstAccessMode;
uint32_t FSMC_WaitSignalPolarity;
uint32_t FSMC_WrapMode;
uint32_t FSMC_WaitSignalActive;
uint32_t FSMC_WriteOperation;
uint32_t FSMC_WaitSignal;
uint32_t FSMC_ExtendedMode;
uint32_t FSMC_AsyncWait;
uint32_t FSMC_WriteBurst;
/* Timing Parameters for write and read access if the
ExtendedMode is not used*/
FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct;
/* Timing Parameters for write access if the ExtendedMode is
used*/
FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct;
}FSMC_NORSRAMInitTypeDef;
- FSMC_Bank
使用されるメモリバンクを指定します。
FSMC_Bank | 説明 |
FSMC_Bank1_NORSRAM1 | FSMC Bank1 NOR/SRAM1 |
FSMC_Bank1_NORSRAM2 | FSMC Bank1 NOR/SRAM2 |
FSMC_Bank1_NORSRAM3 | FSMC Bank1 NOR/SRAM3 |
FSMC_Bank1_NORSRAM4 | FSMC Bank1 NOR/SRAM4 |
- FSMC_DataAddressMux
アドレスとデータ値がデータバスの上で多重送信されるかどうか指定します。
FSMC_DataAddressMux | 説明 |
FSMC_DataAddressMux_Disable | アドレスとデータ・バスは多重化されません |
FSMC_DataAddressMux_Enable | アドレスとデータ・バスはデータ・バスに多重化されます |
- FSMC_MemoryType
対応するメモリバンクに付けられた外部記憶装置のタイプを指定します。
FSMC_MemoryType | 説明 |
FSMC_MemoryType_SRAM | SRAM 又は ROM メモリ |
FSMC_MemoryType_CRAM | Cellular RAM メモリ |
FSMC_MemoryType_NOR | NOR 又は OneNAND メモリ |
FSMC_MemoryType_COSMORAM | COSMO RAM メモリ |
- FSMC_MemoryDataWidth
外部メモリのデータ幅を指定します。
#include(): Limit exceeded: Macro/FSMC_MemoryDataWidth
- FSMC_BurstAccessMode
同期式Flashメモリでバーストアクセスが可能なメモリの場合、バーストアクセスを有効にするか指定します。
#include(): Limit exceeded: Macro/FSMC_BurstAccessMode
- FSMC_WaitSignalPolarity
Flashメモリがバースト・モードでアクセスしている場合のウェイト信号の極性を指定します。
#include(): Limit exceeded: Macro/FSMC_WaitSignalPolarity
- FSMC_WrapMode
Flashメモリがバースト・モードでアクセスしている場合、ラップド・バースト・アクセス・モードを有効にするか指定します。
#include(): Limit exceeded: Macro/FSMC_WrapMode
- FSMC_WaitSignalActive
バーストモードによるFlashメモリ・アクセスの場合にだけ有効な、ウエイト信号の極性を指定します。
#include(): Limit exceeded: Macro/FSMC_WaitSignalActive
- FSMC_WriteOperation
FSMCによって、指定しているバンクに書き込みが行われるかどうかを指定します。
#include(): Limit exceeded: Macro/FSMC_WriteOperation
- FSMC_WaitSignal
WAITn信号でwiat状態挿入を可能にするか、または無効にします。このパラメタはFlashメモリアクセスがバーストモードの時のみ意味を持ちます。
#include(): Limit exceeded: Macro/FSMC_WaitSignal
- FSMC_ExtendedMode
拡張(Extended)モードを有効にするか、または無効にします。
#include(): Limit exceeded: Macro/FSMC_ExtendedMode
- FSMC_AsyncWait
非同期プロトコルでのwait信号を有効にするか、または無効にします。
#include(): Limit exceeded: Macro/FSMC_AsyncWait
- FSMC_WriteBurst
書き込みバースト命令を有効にするか、または無効にします。
#include(): Limit exceeded: Macro/FSMC_WriteBurst
戻り値 †
出力値 †
呼び出し関数 †
サンプル †
/* Initialize the FSMC NOR memory according to the
FSMC_NORSRAMInitStructure members */
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef* FSMC_NORSRAMTimingStructure;
FSMC_NORSRAMTimingStructure.FSMC_AddSetupTime = 0x2;
FSMC_NORSRAMTimingStructure.FSMC_AddHoldTime = 0x2;
FSMC_NORSRAMTimingStructure.FSMC_DataSetupTime = 0x2;
FSMC_NORSRAMTimingStructure.FSMC_BusTurnaroundDuration = 0x0;
FSMC_NORSRAMTimingStructure.FSMC_CLKDivision = 0x0;
FSMC_NORSRAMTimingStructure.FSMC_DataLatency = 0x0;
FSMC_NORSRAMTimingStructure.FSMC_AccessMode = FSMC_AccessMode_A;
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux =
FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth =
FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode =
FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity =
FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitTiming =
FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation =
FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal =
FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode =
FSMC_ExtendedMode_Disable ;
FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst =
FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStructure =
&FSMC_NORSRAMTimingStructure;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
参照 †