OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3258|回复: 5

求助,F429开发板已调通GUI,在自己的PCB上跑,只要使用外部sdram,GUI初始化过程中就硬件溢出。

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2011-12-6
在线时间
5 小时
发表于 2019-4-29 16:47:30 | 显示全部楼层 |阅读模式
1金钱
使用外部sdram,F429开发板已调通GUI,在自己的PCB上跑,只要使用外部sdram,GUI初始化过程中就硬件溢出。MD070SD液晶屏配置
  readWriteTiming.FMC_AddressSetupTime = 0X04;         
  readWriteTiming.FMC_AddressHoldTime = 0x00;       
  readWriteTiming.FMC_DataSetupTime = 8;                数据保持时间设为8就不会硬件溢出,但是会花屏       
  readWriteTiming.FMC_BusTurnAroundDuration = 0x00;
  readWriteTiming.FMC_CLKDivision = 0x00;
  readWriteTiming.FMC_DataLatency = 0x00;
  readWriteTiming.FMC_AccessMode = FMC_AccessMode_A;       


SDRAM配置
void SDRAM_Init(void)
{
  FMC_SDRAMInitTypeDef  FMC_SDRAMInitStructure;
  FMC_SDRAMTimingInitTypeDef  FMC_SDRAMTimingInitStructure;

  /* 配置FMC接口相关的 GPIO*/
  SDRAM_GPIO_Config();

  /* 使能 FMC 时钟 */
  RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FMC, ENABLE);

  /* SDRAM时序结构体,根据SDRAM参数表配置----------------*/
/* SDCLK: 90 Mhz (HCLK/2 :180Mhz/2) 1个时钟周期Tsdclk =1/90MHz=11.11ns*/
  /* TMRD: 2 Clock cycles */
  FMC_SDRAMTimingInitStructure.FMC_LoadToActiveDelay    = 2;      
  /* TXSR: min=70ns (7x11.11ns) */
  FMC_SDRAMTimingInitStructure.FMC_ExitSelfRefreshDelay = 8;
  /* TRAS: min=42ns (4x11.11ns) max=120k (ns) */
  FMC_SDRAMTimingInitStructure.FMC_SelfRefreshTime      = 6;
  /* TRC:  min=70 (7x11.11ns) */        
  FMC_SDRAMTimingInitStructure.FMC_RowCycleDelay        = 6;         
  /* TWR:  min=1+ 7ns (1+1x11.11ns) */
  FMC_SDRAMTimingInitStructure.FMC_WriteRecoveryTime    = 2;      
  /* TRP:  15ns => 2x11.11ns */
  FMC_SDRAMTimingInitStructure.FMC_RPDelay              = 2;               
  /* TRCD: 15ns => 2x11.11ns */
  FMC_SDRAMTimingInitStructure.FMC_RCDDelay             = 2;

/* FMC SDRAM 控制配置 */
        /*选择存储区域*/
  FMC_SDRAMInitStructure.FMC_Bank = FMC_BANK_SDRAM;
  /* 行地址线宽度: [7:0] */
  FMC_SDRAMInitStructure.FMC_ColumnBitsNumber = FMC_ColumnBits_Number_9b;
  /* 列地址线宽度: [11:0] */
  FMC_SDRAMInitStructure.FMC_RowBitsNumber = FMC_RowBits_Number_13b;
  /* 数据线宽度 */
  FMC_SDRAMInitStructure.FMC_SDMemoryDataWidth = SDRAM_MEMORY_WIDTH;
  /* SDRAM内部bank数量*/
  FMC_SDRAMInitStructure.FMC_InternalBankNumber = FMC_InternalBank_Number_4;
  /* CAS潜伏期 */
  FMC_SDRAMInitStructure.FMC_CASLatency = SDRAM_CAS_LATENCY;
  /* 禁止写保护*/
  FMC_SDRAMInitStructure.FMC_WriteProtection = FMC_Write_Protection_Disable;
  /* SDCLK时钟分频因子,SDCLK = HCLK/SDCLOCK_PERIOD*/
  FMC_SDRAMInitStructure.FMC_SDClockPeriod = SDCLOCK_PERIOD;
  /* 突发读模式设置*/  
  FMC_SDRAMInitStructure.FMC_ReadBurst = SDRAM_READBURST;
  /* 读延迟配置 */
  FMC_SDRAMInitStructure.FMC_ReadPipeDelay = FMC_ReadPipe_Delay_1;
  /* SDRAM时序参数 */
  FMC_SDRAMInitStructure.FMC_SDRAMTimingStruct = &FMC_SDRAMTimingInitStructure;

  /* 调用初始化函数,向寄存器写入配置 */
  FMC_SDRAMInit(&FMC_SDRAMInitStructure);

  /* 执行FMC SDRAM的初始化流程*/
  SDRAM_InitSequence();

}


GUI在调用外部sdram时对总线上的时序有要求吗?还是其他配置有问题,求助各位解答!!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-4-30 01:30:30 | 显示全部楼层
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-11-23
在线时间
13 小时
发表于 2019-5-16 15:34:19 | 显示全部楼层
你这问题解决了吗?我最近也遇到这个问题
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-11-23
在线时间
13 小时
发表于 2019-5-16 15:38:23 | 显示全部楼层
F429+SDRAM+LTDC+emWin,驱动 4.3寸RGB屏,我在F429开发板上跑没任何问题,在自己PCB上跑,只要从SDRAM分配内存给emWin就卡在硬件中断里
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-11-23
在线时间
13 小时
发表于 2019-5-16 15:43:52 | 显示全部楼层
会不会是SDRAM芯片有问题?或者是布线的问题呢?PCB也不大,F429和SDRAM(W9825G6和开发板的一样)也离的得近,而且采用了等长布线。
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-11-23
在线时间
13 小时
发表于 2019-5-16 15:44:13 | 显示全部楼层
请高手指点!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 01:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表