关于FLEXBUS LCD显示的问题
现在我参照的是野火的例程写的驱动程序,LCD控制器用的是SSD1963,芯片是K60。可是现在遇到两个问题,一个是,用示波器测R/W脚的时候发现一只都是低电平,FB_AD、CS脚都是波形的。
还有个问题就是,用示波器测的CLKOUT已经达到50MHz,可是FB_AD脚怎么才6MHz多呢?不解
1.R/W引脚一直是低电平,是在总线写的时候,还是在什么时候都是低电平? 2.FB_AD只有6MHz,这个不太正常. 能提供一下你的波形图吗? 本帖最后由 pycbg 于 2013-12-30 16:30 编辑
FSL_TICS_TIANZH 发表于 2013-12-30 15:58
1.R/W引脚一直是低电平,是在总线写的时候,还是在什么时候都是低电平? 2.FB_AD只有6MHz,这个不太正常. 能提 ...
R/W脚不是要上拉锁存数据的吗?
波形图:
请问一下,你做的是写操作还是读操作呢? FSL_TICS_TIANZH 发表于 2013-12-30 16:45
请问一下,你做的是写操作还是读操作呢?
写操作哦 写操作R/W引脚拉低是正确的呀. 你好,请问你的lcd现在调出来了吗?请问你用的是8080接口还是6800接口啊,我们现在用8080也是调不出来
K60通过Flexbus总线驱动SSD1963刷新4.3寸tft
http://v.youku.com/v_show/id_XNzAwMTE5OTA0.html?firsttime=15
Pixels/sec: 16397220,刷屏速度非常快! 你的flexbus的配置发上来看看。 我用k64的flexbus 8位地址数据线外挂UC1689的OCG液晶,可以完全显示。下面是我的配置,你可以参考下: #define __EXTERNAL_LCD_BASE 0x60000000
#define __EXTERNAL_LCD_DC_BASE 0x60000001 //FB_AD0 作为液晶选址线
void _bsp_flexbus_lcd_setup (const uint32_t base_address)
{
FB_MemMapPtr fb_ptr = FB_BASE_PTR;
uint32_t addr_space = 64 * 1024;
fb_ptr->CS.CSMR = 0;
/* Enable external LCD mapped on CS0 */
/* CS0 base address */
fb_ptr->CS.CSAR = base_address;
/* CS0 control (8bit data, 1 wait state) */
fb_ptr->CS.CSCR = //FB_CSCR_BLS_MASK |
FB_CSCR_AA_MASK|/* 使能内部应答*/
FB_CSCR_WS(0x3F) | /*Wait States WS 在内部应答信号之前加入ws个*/
FB_CSCR_PS(1) |/*8-bit port size. Valid data is sampled and driven on FB_D when BLS is 0b, or FB_Dwhen BLS is 1b.*/
FB_CSCR_RDAH(0x03)|
FB_CSCR_WRAH(0x03)|
FB_CSCR_ASET(0X03) | /* Address setup;延长有效地址时间*/
FB_CSCR_BEM_MASK;
/*
* The address range is set to 128K because
* the DC signal is connected on address wire
*/
/* 根据寻址空间大小计算基地址掩码,设置FB_CSAR=0x6000,FB_CSMR=0x0001
* 则相应的FB_CS的片选范围为0x6000_0000~0x6000_FFFF和0x6001_0000~0x6001_FFFF
* 连续的128KB的空间,即BAM相应位的作用就是屏蔽了BA相应位在寻址译码上的作用。
*/
addr_space = (addr_space - 1) >> 16;
fb_ptr->CS.CSMR = FB_CSMR_BAM(addr_space)//设置基地址掩码,地址空间 =2^n(n=BAM+16)//FB_CSMR_BAM(1)
| FB_CSMR_V_MASK; //使能CS信号
}
页:
[1]