[STM32F1] stm32f103VC100pins使用FSMC控制8bit的RA8806LCD总线一点反映都没有

[复制链接]
3808|15
 楼主| saviourxx 发表于 2014-9-26 16:57 | 显示全部楼层 |阅读模式
stm32f103VC100pins使用FSMC控制8bit的LCD总线一点反映都没有,
我用的屏是RA8806,普通时序控制,屏是可以点亮的,
感觉是FSMC初始化的地方有问题,我这里贴下代码,麻烦大家帮忙看一下,谢谢!

  FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  FSMC_NORSRAMTimingInitTypeDef  p;
  //GPIO_InitTypeDef GPIO_InitStructure;

  p.FSMC_AddressSetupTime = 0x01;
  p.FSMC_AddressHoldTime = 0x01;
  p.FSMC_DataSetupTime = 0x03;
  p.FSMC_BusTurnAroundDuration = 0x00;
  p.FSMC_CLKDivision = 0x00;
  p.FSMC_DataLatency = 0x00;
  p.FSMC_AccessMode = FSMC_AccessMode_B;//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_8b;
  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_SRAM Bank */
  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);


贴不了图?
LCD_RS-->FSMC_A16
LCD_CS-->FSMC_NE1
LCD_WR-->FSMC_NWE
LCD_RD-->FSMC_NOE
LCD_D0~D7-->FSMC_D0~D7
mmuuss586 发表于 2014-9-26 19:25 | 显示全部楼层
FSMC.rar (3.21 MB, 下载次数: 96)
发现FSMC的资料你参考下;
 楼主| saviourxx 发表于 2014-9-27 08:45 | 显示全部楼层
mmuuss586 发表于 2014-9-26 19:25
发现FSMC的资料你参考下;

谢谢班主,我试试看!
mmuuss586 发表于 2014-9-27 09:06 | 显示全部楼层
saviourxx 发表于 2014-9-27 08:45
谢谢班主,我试试看!

:)
再用示波器测试下;
 楼主| saviourxx 发表于 2014-9-28 12:50 | 显示全部楼层
mmuuss586 发表于 2014-9-27 09:06
再用示波器测试下;

版主,我现在的情况是,信号都有了,而且都正常,但是有些时序不太对,导致初始化还是失败了。

我用的屏是ra8806,写数据是wr上升沿写入。但是由于我的硬件和屏还有io控制模式决定了上升沿时间很慢,wr还没拉上去,数据脚D0-D7就已经无效了。下面是我用示波器捉到的图形:

上面是D0下面是WR

上面是D0下面是WR


如图上面是D0,下面是WR。D0到WR第一个下降沿时间只有50个ns,而且代码控制不了。
然后WR上升沿写数据的时候,由于WR还没拉到高电平。数据脚D0已经变为无效了。
所以我想请问一下,WR上升沿到D0无效之间的时间可以设置吗?我怎么改都没法改到~
 楼主| saviourxx 发表于 2014-9-28 12:59 | 显示全部楼层
saviourxx 发表于 2014-9-28 12:50
版主,我现在的情况是,信号都有了,而且都正常,但是有些时序不太对,导致初始化还是失败了。

我用的屏 ...

这个是RA8806的时序图

ra8806时序图

ra8806时序图
mmuuss586 发表于 2014-9-28 13:15 | 显示全部楼层
调下:这几个参数看看;
我以前还用示波器测试过的;
你根据你实际的需要,改下各参数看看;
先把FSMC总线读写部分调通(WHILE循环,一直写个固定的数据),拿示波器慢慢看,调到你所需要的读写实际;
再改屏部分相关程序;
捕获.JPG
 楼主| saviourxx 发表于 2014-9-28 13:56 | 显示全部楼层
mmuuss586 发表于 2014-9-28 13:15
调下:这几个参数看看;
我以前还用示波器测试过的;
你根据你实际的需要,改下各参数看看;

全部试过了,只有数据建立时间有效,其他怎么调都没用~
mmuuss586 发表于 2014-9-28 13:59 | 显示全部楼层
saviourxx 发表于 2014-9-28 13:56
全部试过了,只有数据建立时间有效,其他怎么调都没用~

:)
用的多少版本的库啊?
 楼主| saviourxx 发表于 2014-9-28 14:07 | 显示全部楼层
saviourxx 发表于 2014-9-28 13:56
全部试过了,只有数据建立时间有效,其他怎么调都没用~

ra8806时序图

ra8806时序图


我想延长tDH8,但是只有FSMC_DataSetupTime一个参数 是可以改的~
 楼主| saviourxx 发表于 2014-9-28 14:08 | 显示全部楼层
mmuuss586 发表于 2014-9-28 13:59
用的多少版本的库啊?

;* File Name          : startup_stm32f10x_hd.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x High Density Devices vector table for MDK-ARM
;*                      toolchain.


3.5.0
 楼主| saviourxx 发表于 2014-9-28 14:15 | 显示全部楼层
mmuuss586 发表于 2014-9-28 13:15
调下:这几个参数看看;
我以前还用示波器测试过的;
你根据你实际的需要,改下各参数看看;

sram时序

sram时序


数据手册上写只有一个HCLK,难道无法设置?
 楼主| saviourxx 发表于 2014-9-28 15:46 | 显示全部楼层
mmuuss586 发表于 2014-9-28 13:59
用的多少版本的库啊?

nand时序图

nand时序图

突然发现nand方式可以设置wr高电平的持续时间,请问有nand方式控制lcd的相关资料么?
mmuuss586 发表于 2014-9-28 17:31 | 显示全部楼层
saviourxx 发表于 2014-9-28 15:46
突然发现nand方式可以设置wr高电平的持续时间,请问有nand方式控制lcd的相关资料么?
...

按照我上次发的资料给就可以了;
 楼主| saviourxx 发表于 2014-9-28 17:35 | 显示全部楼层
mmuuss586 发表于 2014-9-28 17:31
按照我上次发的资料给就可以了;

那个资料好像没nand方式控制lcd的
没想好 发表于 2016-1-18 18:46 | 显示全部楼层
楼主问题是否解决了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部