高级会员

- 积分
- 506
- 金钱
- 506
- 注册时间
- 2012-10-8
- 在线时间
- 0 小时
|
我用的是小马哥那里买的iCore核心板(STM32+FPGA),以前用的时候没注意,后来才发现这个程序上的BUG
STM32和FPGA采用的FSMC通信,由于VET6只有一个FSMC_NE1引脚,所以板子上有个138译码器。
还有一个重要的地方就是STM32的时钟由FPGA提供的,所以刚开机需要复位下STM32,或者STM32
做个延时,以此来得到稳定的ARM时钟
CS0 作为了FPGA的片选。
CS1,CS2,CS3可以用其它外设的片选,下面就说一下我的问题,我需要用这几个片选的其中
一个来外接RA8875的屏,对于VET6来说,注意红体的地方, 只能配置成FSMC_Bank1_NORSRAM1
因为它只有一个FSMC_NE1引脚
/*-- FSMC Configuration ------------------------------------------------------*/
/*----------------------- SRAM Bank 4 ----------------------------------------*/
/* FSMC_Bank1_NORSRAM4 configuration */
timing.FSMC_AddressSetupTime = 2;
timing.FSMC_AddressHoldTime = 0;
timing.FSMC_DataSetupTime = 4;
timing.FSMC_BusTurnAroundDuration = 0;
timing.FSMC_CLKDivision = 0;
timing.FSMC_DataLatency = 0;
timing.FSMC_AccessMode = FSMC_AccessMode_A;
/*
LCD configured as follow:
- Data/Address MUX = Disable
- Memory Type = SRAM
- Data Width = 16bit
- Write Operation = Enable
- Extended Mode = Enable
- Asynchronous Wait = Disable
*/
init.FSMC_Bank = FSMC_Bank1_NORSRAM1;
init.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
init.FSMC_MemoryType = FSMC_MemoryType_SRAM;
init.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
init.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
init.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; /* 注意旧库无这个成员 */
init.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
init.FSMC_WrapMode = FSMC_WrapMode_Disable;
init.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
init.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
init.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
init.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
init.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
init.FSMC_ReadWriteTimingStruct = &timing;
init.FSMC_WriteTimingStruct = &timing;
FSMC_NORSRAMInit(&init);
/* - BANK 1 (of NOR/SRAM Bank 1~4) is enabled */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
使用的时候发现只有红体的地方才配置成FSMC_Bank1_NORSRAM4才能用,按道理来说
不能啊,应该配置成FSMC_Bank1_NORSRAM1才能用啊。
后来尝试的解决办法:
1. 在别的VET6开发板上面,配置FSMC为FSMC_Bank1_NORSRAM2,
FSMC_Bank1_NORSRAM3,FSMC_Bank1_NORSRAM4的时候RA8875的屏都能用,就是速度慢,
只有配置能FSMC_Bank1_NORSRAM1的时候才是正常的。
2. 后来干脆在FSMC_NE1引脚引出一根线直接接到RA8875的屏上,还是不行。
现在就差把FPGA吹下来了,大家帮看看可能是什么问题。
|
|