历史上的今天
返回首页

历史上的今天

今天是:2024年10月13日(星期日)

正在发生

2021年10月13日 | S3C2440裸机------内存控制器

2021-10-13 来源:eefocus

1.内存接口概念

GPIO和协议类接口:我们在配置GPIO或者协议类接口(uart I2C总线)时,对于CPU 来说,它不关心这些接口,它只是去操作这些寄存器,CPU通过配置相应的寄存器,然后由GPIO控制器或uart控制器发出特定的波形,CPU是根据地址去选择不同的寄存器,cpu配置寄存器时是通过内存控制器去配置的,cpu把地址发送给内存控制器, 然后由内存控制器根据地址去选择不同的模块,然后把数据发送给模块或者从模块中读取数据。CPU发出的数据并不会直接输出到外部接口,cpu只是把数据发送给了相应的寄存器。


内存接口:对于内存设备来说,CPU发出的地址可以直接传给内存类设备,内存类设备包括norfalsh, 网卡,SDRAM,但是nandflash不属于内存类设备,对于内存类设备,我们cpu的数据总线和地址总线都是直接连接到内存类设备上的,然后我们的norfalsh,网卡,以及SDRAM是公用地址总线和数据总线的,我们需要用片选引脚来保证三个内存类设备在共用地址总线和数据总线的时候互不干扰, 当cpu发出地址时,内存控制器根据不同的地址范围产生不同的片选信号,从而选择不同的内存类设备,不同地址范围对应的片选引脚如下图所示,每一个片选信号可以选择的地址空间是128M。128M=2的27次方,至少需要A0 .... A2627根地址线,但是我们一直都说我们的CPU是32位的,为什么我们只用到了27条地址线,因为我们的cpu会把32位的地址发给内存控制器,但是我们的内存控制器只使用了其中的27位。

另外,nandflash不属于cpu统一编址,nandflash的片选信号是由nandflash的控制发出来的,只有当我们的cpu访问到nandflash控制器的某个寄存器时,才会发出片选信号选中nandflash。


另外,我们应该怎么分辨数据是由CPU写给内存设备还是cpu从内存设备读取数据呢,我们使用引脚进行确定。


2.不同位宽设备的连接

当我们外部接的是8bit的rom时,我们cpu的A0就连接rom的A0,外接的是16bit的rom时,我们cpu的A1连接rom的A0,外接的是32bit的rom时,cpu的A2连接rom的A0,具体如下

当cpu从rom读取数据时,CPU发出地质,然后rom收到地址,然后rom把数据发送给内存控制器,然后对于16bit和32bit的rom,内存控制器会从中挑出数据返回给cpu,具体如下图所示。


具体是首先根据连接到rom芯片上的地址管脚决定读取那个单元,然后根据没有连接的引脚确定从单元中取出第几个字节返回给CPU。

下面是另一个例子,这次我们要一次性读取四个字节,

另外,我们再访问芯片时怎么确定芯片的访问地址:1.根据片选信号确定基地址;2,再根据芯片所连接的地址线确定范围。


3.时序图分析示例

我们以norfalsh为例子讲解时序图,首先我们的cpu和norfalsh主要连接有地址线、数据线、片选信号、读信号、写信号。

下面是norfalsh的芯片手册里面给出的norfalsh自身的时序图:

我们看一下norflash的芯片手册里面的这个表格里面的各个名称的含义,


 Taa:在cpu发出地址信号之后,过长时间之后,我这个norfalsh的数据才能给你准备好,然后最大70ns的意思是说,同一个公司生产的芯片每个芯片之间也会有点差别,有的性能好在收到地址信号之后很快就能收到数据了,但是有的性能差,在收到地址信号之后很长时间才能收到信号,但是所有的这些芯片在70ns之后肯定都能收到数据,也就是就算是最差的芯片,那么70ns之后肯定也准备好了,但是70ns之后的不能保证数据是有效的。


Tce:当发出片选信号之后,过多长时间数据才有效,


Toe:数据在 Toe信号之后多长时间有效。


Toh:数据保持时间,最小值是0,


Tdf:我们之前说过要去访问一个芯片,先选中它,但是当我访问完一个芯片,然后片选信号释放之后,你不能立刻去访问另一个芯片,因为当前芯片片选刚被释放之后,数据线的状态还不稳定,还不是高阻状态,实际上这个值一般我们不需要理会,假设我们刚访问完这个norflash,数据还没有到高阻状态,需要等待30ns, 但是这个时候如果我再立刻开始访问这个norflash,你首先要发送片选以及地址信号,然后等待70ns才会接收数据,等到了70ns,这里的数据线早就恢复到高阻状态了,就可以访问了。


我们在访问norflash的时候,为了简单,我们把片选信号,读信号,地址信号三个同时发出。


下面我们看一下怎么设置S3C2440,S3C2440读取norfalsh的时序图如下:

我们在芯片手册里面搜索Tacc,找到BANK CONTROL REGISTER,由于我们的norfalsh是连接到bank0上面,所以我们设置BANKCON0寄存器,我们可以看到这个寄存器的Tacc位的默认值是111,是14个时钟周期,板子刚开始上电的时候时钟周期是12M,Tacc是14个时钟周期是1166ns,所以我们一上电的时候,使用最保险的参数,可以访问各种不同性能的norflash。


假设HCLK是100M,那么时钟周期是10ns,那么我们设置Tacc是8个时钟即可。


接下来看一下访问norflash还有哪些寄存器需要设置。

推荐阅读

史海拾趣

AIC [Analog Intergrations Corporation]公司的发展小趣事
  1. 公司成立与初期发展:Analog Integrations Corporation(AIC)是一家总部位于台湾的半导体公司,专注于设计、制造和销售高性能模拟集成电路(IC)产品。公司成立于1996年,由一群拥有丰富经验的工程师共同创立。最初,AIC致力于为广泛的应用领域提供稳定可靠的模拟芯片解决方案,如消费电子、通信、工业控制等。

  2. 技术创新与产品发展:AIC在技术创新和产品研发方面投入了大量资源,不断推出具有竞争力的新产品。公司的产品涵盖了各种模拟IC产品系列,包括功率管理IC、放大器、比较器、数据转换器等。这些产品具有高性能、低功耗、小尺寸等特点,得到了广大客户的青睐。

  3. 全球市场拓展:随着公司技术和产品的不断成熟,AIC开始着眼于国际市场的拓展。公司积极参与国际电子展览和行业会议,与全球客户建立合作关系,拓展海外市场份额。通过建立销售代理商、设立海外办事处等方式,AIC在北美、欧洲、亚太等地区建立了稳固的销售网络。

  4. 质量管理与认证:AIC始终将产品质量视为企业发展的关键。公司严格遵循国际质量管理体系标准,建立了完善的质量管理体系。AIC的生产工艺和产品测试流程经过精心设计和严格监控,确保产品质量的稳定性和可靠性。此外,公司的产品经过了多项国际认证,包括ISO 9001质量管理体系认证、ISO 14001环境管理体系认证等。

  5. 社会责任与可持续发展:作为一家负责任的企业,AIC积极履行社会责任,关注环境保护和可持续发展。公司致力于降低能源消耗和减少废物排放,推动绿色生产和循环利用。此外,AIC积极参与社会公益活动,支持教育、健康、环保等多个领域的项目,为社会发展做出积极贡献。

CSR plc(剑桥硅晶无线电)公司的发展小趣事

除了自主研发和收购外,CSR plc还积极与其他企业进行技术合作与转让。例如,2012年7月,三星电子以3.1亿美元的价格收购了CSR Plc的无线技术部门,包括该部门的310名员工和相关的21项技术专利。这次技术合作不仅为CSR plc带来了可观的收益,也推动了整个行业的技术进步和发展。

通过以上五个故事,我们可以看到CSR plc在电子行业中的发展历程充满了创新与挑战。从初创时期的音频技术突破,到后来的多元化发展、重要收购和技术合作,CSR plc不断适应市场变化,拓展业务领域,最终在电子行业中取得了显著的地位和成就。

Aavid Niagra公司的发展小趣事

Aavid Niagra公司在成立之初,面临着资金短缺、市场竞争激烈以及技术壁垒等多重挑战。然而,创始人凭借对电子散热技术的深刻理解和前瞻性的市场洞察,成功研发出了一款高效能的散热解决方案,赢得了行业内的初步认可。通过与几家大型电子设备制造商的合作,公司逐渐在市场上站稳脚跟,为后续的发展奠定了坚实基础。

Formosa MS公司的发展小趣事

近年来,电子行业正经历着深刻的变革,新兴技术的不断涌现对传统散热技术提出了严峻挑战。Aavid Niagra公司面对这一变革,积极调整战略方向,加大在新兴技术领域的研究力度。通过与高校、研究机构的合作,公司成功研发出了一系列适应新兴技术需求的散热产品,成功应对了行业变革带来的挑战。

ANYSOLAR LTD.公司的发展小趣事

ANYSOLAR LTD.的创立源于一次技术突破。创始人李明,一位资深的电子工程师,在一次实验中意外发现了一种新型光伏材料的制备方法。这种材料具有高效的光电转换效率,且成本远低于市场上的同类产品。李明意识到这是一个巨大的商业机会,于是决定辞去工作,创立ANYSOLAR LTD.,专注于这种新型光伏材料的研发和生产。

初创期的ANYSOLAR面临着资金短缺、人才匮乏和市场认可度低等多重挑战。然而,李明凭借对技术的深厚理解和不懈追求,带领团队攻克了一个又一个技术难题,逐步将产品推向市场。通过参加行业展会、与潜在客户建立联系等方式,ANYSOLAR逐渐赢得了市场的认可。

DMC Tools公司的发展小趣事

在发展过程中,DMC Tools公司积极寻求国际合作,与多家国际知名电子企业建立了长期稳定的合作关系。通过与这些企业的合作,DMC Tools公司不仅学习到了先进的生产技术和管理经验,还拓宽了自己的市场视野。这些国际合作项目为公司带来了大量的订单和利润,同时也提升了公司的国际竞争力。

问答坊 | AI 解惑

招聘验证工程师,工艺工程师等职位

上海公司招聘以下职位,有兴趣请速发简历到xinjihr_cn@126.com,或者msn: mouhuitou@hotmail.com,谢谢 ASIC Verfication Engineer: 1)本科以上学历 2)有3年左右验证工作背景. 3)熟悉system verilog最好. Process Engineer: 1)本科以上学历 2) ...…

查看全部问答>

GPS方案以及嵌入式开发板介绍(转)

市场上有S3C,TI,Freescale等不同品牌的产品,但是那一款比较适合做消费电子产品,下面我给大家做个分析。S3C的开发板产品价格相对较低,受到很多高校的钟爱,但是,要知道作为工程师必须使用和了解高端的产品,像这种给高校用来做基础教育的产品 ...…

查看全部问答>

WinCE下声音的问题(急请达人指教)

程序要分离系统声音和按键声音,使两者互不干扰。 现在系统声音的设置通过waveOutSetVolume(0, 音量值) 这种情况下,可不可以实现另外做一个音频的通道,使其不受主音量的干扰,成为按键的声音? 要怎么做才能实现呢? 请指教啊~~~~~谢谢…

查看全部问答>

修改了WINCE下自带的源代码,如何快速编译把修改的情况及时反应到新的NK里面去?要求对系统不进行全部编译。

修改了WINCE下自带的源代码,如何快速编译把修改的情况及时反应到新的NK里面去?要求对系统不进行全部编译。…

查看全部问答>

hid设备控制问题? audio与usb复合设备

现在有个心片,是一个usb的audio设备 ,我现在可以把她作为一个普通的usb设备读写,但是现在有个问题就是希望该设备作为audio 设备来播放音乐,除了控制命令用endpoint1和4来传外,另外的audio channel怎么指定啊? 谢谢指定一下!…

查看全部问答>

请问在MTK开发平台上后缀名为.pth文件是做什么用的?

请问在MTK开发平台上后缀名为.pth文件是做什么用的?…

查看全部问答>

QQ的内嵌技术

您好,我使用MVC架构(java语言)来作QQ内嵌,实现用户可通过QQ和在线的管理员进行交流。我在网上搜索后,没有找到可用的资源。请您指教!…

查看全部问答>

LM3开发笔记_2.时钟和GPIO

        今天熟悉了一下LM提供的StellarisWare固件库,感觉跟STM32的固件库有很大的差异,使用上有点像Windows平台API函数的意思,使用外设的时候到对应的固件库看看有啥函数可以用就行了。   &nbs ...…

查看全部问答>

看门狗不会复位怎么办

看门狗不会复位怎么办,我用的是MSP430147,究竟是什么导致这种情况发生的呢?…

查看全部问答>

μC/OS-II下通用驱动框架的设计与实现 转

      摘要:在μC/OS-II下,设计了一个通用的设备管理模型,称为通用驱动框架,通过该驱动框架,可以实现对硬件设备的   统一、一致的管理,同时,也为上层应用程序提供了统一、一致的设备访问接口,并在以ARM7TDMI ...…

查看全部问答>