根据前两节课,我们明白不同内存类设备与2440的连接
2440与NOR flash的连接图
由上图NOR flash 读的时序图可知,Taa即当输出地址的70ns之后数据有效;Tce即当CE处于低电平大于70ns之后数据有效;Toe即当OE处于低电平大于30ns之后数据有效;Trc即为读周期的时间为70ns;Tdf即为OE和CE处于高电平大于30ns之后,数据输出稳定;综上,我们要让2440同时发出CE,OE,addr信号。
寄存器的配置:
综上,通过配置寄存器BANKCON0使其发出可以满足控制NOR flash读的时序
代码
init.c
#include "s3c2440_soc.h"
void bank0_tacc_set(int val)
{
BANKCON0 = val << 8;
}
init.h
#ifndef _INIT_H
#define _INIT_H
void bank0_tacc_set(int val);
#endif
main.c
#include "s3c2440_soc.h"
#include "uart.h"
#include "init.h"
int main(void)
{
unsigned char c;
uart0_init();
puts("Enter the Tacc val: nr");
while(1)
{
c = getchar();
putchar(c);
if (c >= '0' && c <= '7')
{
bank0_tacc_set(c - '0');
led_test();
}
else
{
puts("Error, val should between 0~7nr");
puts("Enter the Tacc val: nr");
}
}
return 0;
}
上一篇:jz2440裸机开发与分析:ARM芯片时钟体系2
下一篇:jz2440裸机开发与分析:内存控制器4之SDRAM设置
推荐阅读
史海拾趣
VS2005开发的程序在wince5.0上不能直接运行,需要什么DLL? 我使用c#,写了一段代码,在wince上运行,发现一个问题,就是生成的EXE不可以在wince上直接运行,必须在使用VS开发环境来运行(只要使用开发环境运行一次,后面几次就可以直接运行我的EXE了),我觉得是VS在下载EXE的同时也在wince上安装了所需要的 ...… 查看全部问答∨ |
|
题目是如下: 事件A分别在10,20,30发生,而B一直保持X状态,问在50时Count的值是多少 reg[7:0]Count; initial Count=0; always begin @(A) Count=Count+1; @(B) Count=Count+1; ...… 查看全部问答∨ |
想通过FDW262P MOSFET控制5V电压的通断(S->D),G脚为GPIO3.3V. 却发现S=5V的情况下,MOSFET已经被击穿,D脚始终是5V. 然而,S=3.3V,D脚的电压却可以功过G脚控制。 请问是什么原因,我看DATASHEET上说SD脚电压最大为20V,不至于5V就工作不了吧 ...… 查看全部问答∨ |
早上做易电源的拼图第一关,都选好了,就一个原理图中的L1没有对应的实图,L1应该是个滤波电感,但实图中剩下的就是一个电容,还是小容值的陶瓷电容,以为是bug,就没选这个,提交后果断显示60分。哪位高手帮忙解释一下这个地方! 最终得分90,呵 ...… 查看全部问答∨ |
最近在做关于信号采集的系统,因为信号太小了,所以工频干扰相当明显 所以就想做个陷波器去掉干扰,可是模拟的陷波中心点频率很难调,而且如果要很好的陷波效果要2阶或者以上 后来尝试着用数字滤波器,它设计起来简单,而且只要采样频率准,基本 ...… 查看全部问答∨ |