在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 2236|回复: 0

[求助] lpc2388使用EMC的问题

[复制链接]
发表于 2013-8-18 15:13:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我想用EMC驱动lcd液晶屏。请教大家几个问题。。。
问题1:地址是多少呢?是这个800000001 (指令地址)80000000(数据地址)的地址吗?
(LPC2378只有A0-A15,CS我接的是CS0,CS0的范围是80000000-8000FFFF)

问题2: EMC初始化怎么设置,这样设置是否正确?除了设置EMC外,还需要其他方面的设置


void EMC_init()
{
uint32 temp=0x0;

PCONP = PCONP|0x00000800;
EMC_CTRL = 0x00000001;
PINSEL6 = 0X00005555;//D0-D7
PINSEL8 = 0X55555555;//A0-A15
temp = PINSEL9;
temp &=0xFF0FFFF;
PINSEL9 =temp|0x50090000;
//bank0
//EMS write
EMC_CONFIG = 0x0;//0小端模式,1大端模式

EMC_STA_CFG0 = 0x00000000;//禁止页模式、8位宽度、写缓冲区禁能
EMC_STA_WAITWEN0 = 0x00000000;//写使能延时为1cclk
EMC_STA_WAITWR0 = 0x0000001f;//延时33cclk写
//EMS read
EMC_STA_WAITOEN0 = 0x00000000;//输出使能延时为1cclk
EMC_STA_WAITRD0 = 0x0000001f;//延时为33cclk读
EMC_STA_WAITPAGE0 = 0x00000000;//页读模式延时为1cclk
EMC_STA_WAITTURN0 = 0x00000000;//总线空闲为1cclk

}

#define LCD_CMD_ADDR (*(volatile unsigned long *)(0x80000001))
#define LCD_DATA_ADDR (*(volatile unsigned long *)(0x80000000))

//===========================================================================
// 函数名称: lcd_reset()
// 功能描述: 复位LCD
// 参    数:无
// 返 回 值:无
//===========================================================================
void lcd_reset(void)
{
PINSEL8 = (PINSEL8&0xFFFFFFCF);
//   PINSEL8 &= ~(3<<4);                 //P4.2 LCD_RST
FIO4SET = (1<<2);
FIO4DIR |= (1<<2);
    FIO4SET=RST;
    os_dly_wait(1);
   FIO4CLR=RST;
    os_dly_wait(30);
    FIO4SET=RST;
    os_dly_wait(1);
  FIO4CLR = (1<<2);
FIO4DIR = (FIO4DIR&0xFFFFFFFB);
PINSEL8 = 0x55555555;//A0-A15
  PINSEL9 = 0x5FF9FFFF;//RD、 WR、 CS0、 CS1
}

void lcd_write_cmd(uint8 cmd)
{
LCD_CMD_ADDR = cmd;
}
void lcd_write_data(uint8 data)
{
LCD_DATA_ADDR = data;
}
uint8 lcd_read_data()
{
uint8 data=0x0;
data = LCD_DATA_ADDR;
return data;
}

//===========================================================================
// 函数名称: lcd_initial()
// 功能描述: LCD初始化
// 参    数:无
// 返 回 值:无
//===========================================================================
void lcd_initial(void)
{
   //这个是LCD的初始化部分,代码就不贴出来了省略......
}
  
//=============================================\
//==============lcd开始运行======================
//=============================================/
void lcd_init()
{
uint8 x=0x0;
  os_dly_wait(200); //wait RA8875 board power on
EMC_init(); //EMC设置初始化
lcd_reset(); //LCD复位

lcd_initial();//LCD初始化,初始化完成后,背光将点亮

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

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-26 12:15 , Processed in 0.015251 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表