電子工程網(wǎng)
標題:
stm32F407 fsmc接DM9000A,讀取不到ID。求助!
[打印本頁(yè)]
作者:
490353119
時(shí)間:
2012-5-11 11:55
標題:
stm32F407 fsmc接DM9000A,讀取不到ID。求助!
CS# <-> FSMC_NE1
CMD
<-> FSMC_A16
LOW#<-> FSMC_NWE
LOR#
<-> FSMC_NOE
SD0-SD15
<-> FSMC_D0-
FSMC_D15
void FSMC_SRAM_Init(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef p;
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable GPIOs clock */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE, ENABLE);
/* Enable FSMC clock */
RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);
/*-- GPIOs Configuration -----------------------------------------------------*/
/*
+-------------------+--------------------+------------------+------------------+
+ SRAM pins assignment +
+-------------------+--------------------+------------------+------------------+
| PD0 <-> FSMC_D2 |// PE0 <-> FSMC_NBL0 |
| PD1 <-> FSMC_D3 | //PE1 <-> FSMC_NBL1 |
| //PD3 <-> FSMC_CLK | //PE2 <-> FSMC_A23 |
| PD4 <-> FSMC_NOE | //PE3 <-> FSMC_A19 |
| PD5 <-> FSMC_NWE | //PE4 <-> FSMC_A20 |
| //PD6 <-> FSMC_NWAIT | //PE5 <-> FSMC_A21 |
| PD7 <-> FSMC_NE1 | //PE6 <-> FSMC_A22 |
| PD8 <-> FSMC_D13 | PE7 <-> FSMC_D4 |
| PD9 <-> FSMC_D14 | PE8 <-> FSMC_D5 |
| PD10 <-> FSMC_D15 | PE9 <-> FSMC_D6 |
| PD11 <-> FSMC_A16 | PE10 <-> FSMC_D7 |
| //PD12 <-> FSMC_A17 | PE11 <-> FSMC_D8 |
| //PD13 <-> FSMC_A18 | PE12 <-> FSMC_D9 |
| PD14 <-> FSMC_D0 | PE13 <-> FSMC_D10 |
| PD15 <-> FSMC_D1 | PE14 <-> FSMC_D11 |
| //PB7 <-> FSMC_NL | PE15 <-> FSMC_D12 |
+-------------------+--------------------+
*/
/*-- GPIO Configuration ------------------------------------------------------*/
/* GPIOD configuration */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource4, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource7, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource11, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_FSMC);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 |
GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/* GPIOE configuration */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource7 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource8 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource9 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource10 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource11 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource12 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource13 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource14 , GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource15 , GPIO_AF_FSMC);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_Init(GPIOE, &GPIO_InitStructure);
/*-- FSMC Configuration ------------------------------------------------------*/
p.FSMC_AddressSetupTime = 0;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 2;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_A;
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = 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_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
/* Enable FSMC Bank1_SRAM1 Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
}
k= (*(__IO uint16_t*)(0x60000028));
k|= (*(__IO uint16_t*)(0x60000028))<<8;
k|= (*(__IO uint16_t*)(0x60000028))<<16;
k|= (*(__IO uint16_t*)(0x60000028))<<24;
作者:
阿南
時(shí)間:
2012-5-15 17:39
讀不到ID,說(shuō)明和處理器的通訊都還不正常?梢韵葯z查電源,看芯片是否都已經(jīng)正常工作,然后再檢查通訊問(wèn)題。
作者:
qftek
時(shí)間:
2012-11-29 11:54
確認bus時(shí)序是否正確,讀寫(xiě)數據時(shí)address & data 對應的CMD信號是否正確?
深圳市僑峰科技有限公司 (DAVICOM中國區總代理)
嵌入式以太網(wǎng)絡(luò )接口芯片供應商,軟件及硬件設計服務(wù)與咨詢(xún)
聯(lián)絡(luò )方式:
Jonny.chu@qftek.com
電話(huà):13554902206
DM9000A DM9000C DM9161A DM9161C DM8203 DM9620 DM9162N
歡迎光臨 電子工程網(wǎng) (http://selenalain.com/)
Powered by Discuz! X3.4
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页