韦东山嵌入式第一期学习笔记DAY_8——12_3_硬件知识_时序图分析示例

作者:GWD 时间:2019.7.9

一、课程内容
(一)摘要:本节课写了一个程序,功能是在串口中输入不同的nor读写频率实时更改Nor运行代码的效率,观察led小灯的不同闪烁频率;分析了S3C2440的内存时序图和nor芯片的时序图。
(二)写程序
1、S3C2440手册与原理图内存控制部分分析
在这里插入图片描述
在这里插入图片描述
由硬件原理图知道nor芯片的地址范围是0x00000000-0x08000000
在这里插入图片描述
先发出地址信号,才发出片选信号,证明了上一节的核心内容,如何发出片选信号。
在这里插入图片描述
在这里插入图片描述
nor芯片接在了第一段128M内,所以操作bankcon0寄存器就可以了。Tacc默认14个周期,这就是为什么一上电就可以nor flash运行,因为默认选择最大的时钟周期了,是晶振运行的。计算一下,上电是12MHZ的频率,t= (1/12000000)14100010001000=1166.67ns远远大于了最低时间所以可以直接运行,但是效率低了很多。
2、查看MX29LV160(norflash)手册
1)、问:手册中的时序标号与S3C2440芯片不一样怎么办?
在这里插入图片描述
答:根据描述与S3C2440手册的时序图对比查找可以知道,Taa对应Tacs意思是发出地址信号后,之后数据输出有效时间;Toe对应Tacc意思是OE低电平之后数据输出有效时间。Toe最长时间70ns的意思是,因为Nor flash产品质量参差不齐有的50ns就可以读取,有的要69ns但是最长70ns也应该读取完事了。利用这个Toe的性质进行编程,控制Toe的周期就可以控制访问的频率。
三、代码
(一)、
1、代码功能:串口输入不同的tacc值,观察led灯的闪烁速度
在这里插入图片描述
2、工作频率PCLK是100MHZ,一个周期为(1/100000000)10001000*1000=10ns
所以根据nor芯片手册应该在7clock时候小灯可以点亮,也就是Tacc=5时。实验效果与预想的一样
3、注意这里char转数字的手法
在这里插入图片描述
(二)、代码
Init.c

#include "s3c2440_soc.h"

void Nor_Flash_Cycle(int Tacc)
{
	//BANKCON0 &= ~(7 << 8 );
	BANKCON0 = Tacc << 8 ;
}

MAIN.C

#include "s3c2440_soc.h"
#include "uart.h"
#include "init.h"
#include "led.h"

int main(void)
{
	unsigned char c;
	uart0_init();
	puts("printf the number of Tacc\n\r");
	while(1)
	{	
	c = getchar();
	putchar(c);
	if (c >= '0' && c <= '7')
	{
		Nor_Flash_Cycle(c - '0');
		led_test();
	}

	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值