ram芯片的最小数目(串行RAM23LC1024四线访问数据)
ram芯片的最小数目(串行RAM23LC1024四线访问数据)
2024-11-24 07:49:10  作者:汉子的霸气  网址:https://m.xinb2b.cn/life/tyh112314.html

为什么需要四线串行访问23LC1024?

在“ 单片机片外RAM,串行的[1]”中减少了对Microchip公司的SPI接口RAM芯片:23LC1024的读写测试。但是在STC8G1K08但潘辰的SPI接口驱动下,访问对其进行一次字节的读写操作,大概需要消耗20微妙的的时间,这使得在高速、高精度采集应用中跟不上数据的采集。

为了提高对其的访问速度,可以采用以下的方式:

使用其四线串行模式(SQI)的方式进行访问;尽量使用序列读写方式,而不是每次完成完整的命令 地址 数据的腹泻方式

下面为了配合 AD7606八通道AD采集模块测试[2]中数据的采集,首先测试23LC1024在STC8G1K08操作下访问速度

本文实验中的工程文件可以在下面资源中下载:

23LC1024串行四线访问工程[3]实验电路设计

AD工程文件目录:

AD\Test\2020\TestAD7606STC\TestAD7606STC8G.SchDoc

1. 原理图

电路板设计中采用了STC8G1K08 TSOP20封装的芯片。核心板上集成了23LC1024串行接口的RAM,对于AD7606的接口是通过ADI10芯接口连接。


▲ 原理图

2. PCB

设计电路PCB版图,适宜使用单面PCB板制作实验电路。


▲ 快速制版后的实验电路板

3. 硬件调试

软件开发所在的目录:

C51\STC\Test\2020\testAD76068G1K\TestAD76068G.uvproj

置STC8G1K08的硬件选项配置如下:


▲ 单片机硬件选项配置

主要性能测试1. 测试单个字节读写的时间

测试标准写入函数在执行过程中,LC1024的CS的波形:

LC1024ByteWrite(0, 0, 0xff, 0xf)

写入时间为2us,CS的波形如下图所示:


▲ CS波形,时间为2.03us

读出的时间也是2.0us,

LC1024ByteRead(0x0, 0x0, 0xff)

下面是在读的时候,CLK, SO1的波形。


▲ CLK,SD1的波形

2. 连续字节读写

使用连续字节读写的方式读取多组字节。下面是读取连续10个字节。所需要的时间为8.57us。

LC1024ReadBegin(0x0,0x0,0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024WriteByte(0x0);LC1024ReadWriteEnd();


▲ 连续读取十个字节所需要的时间

如果仅仅执行读取起始和结束的语句:

LC1024ReadBegin(0x0,0x0,0x0);LC1024ReadWriteEnd();

所小号的时间为2us。这说明读取单个字节的时间大约为左右。

这个速度与博文“ 扩展32KRAM的STC8H8K信号采集版[4]”中,通过并口扩展RAM的一次读写时间0.532us的速度基本相当了。

通过这个时间可以说明,使用SQI(串行四线制)在连续读写的情况下可以达到与并口扩展RAM相当的速度。

即使是单个读写所消耗的2us的时间,也比在博文“ 单片机片外RAM,串行的[5]”中读取单个字节所消耗19.2us将近快了10倍左右。


函数程序模块

相关LC1024读取的程序模块如下。

其中致的说明的是,在LC1024的初始化函数中,调用了LC1024Reset命令,就保证了LC1024成功进入SQI模式。

LC1024访问函数头文件:

#ifndef__LC1024L4__#define__LC1024L4__//------------------------------------------------------------------------------#ifdefLC1024L4_GLOBALS#defineLC1024L4_EXT#else#defineLC1024L4_EXTextern#endif//LC1024L4_GLOBALS//------------------------------------------------------------------------------//ENDOFTHEFILE:LC1024L4.H//------------------------------------------------------------------------------#endif//__LC1024L4__

LC1024的C语言程序。

//------------------------------------------------------------------------------#defineLC1024L4_GLOBALS1//Definetheglobalvariables#include"LC1024L4.H"#include"C51BASIC.H"#include"STC8G.H"#include"INTRINS.H"//------------------------------------------------------------------------------voidLC1024L4Init(void){PM_PP(LC1024_CS);PM_PP(LC1024_CLK);ON(LC1024_CS);OFF(LC1024_CLK);LC1024_SO_IN;LC1024Reset();LC1024EQIEnter();}//------------------------------------------------------------------------------voidLC1024EQIEnter(void){unsignedchari,ucMask,ucByte;ucByte=LC1024_EQIO;ucMask=0x80;LC1024_SO_IN;PM_PP(LC1024_SO0);OFF(LC1024_CS);for(i=0;i<8;i ){if(ucByte&ucMask)ON(LC1024_SO0);elseOFF(LC1024_SO0);ucMask>>=1;LC1024_CLK_PULSE;}LC1024_SO_IN;ON(LC1024_CS);}voidLC1024EQIExit(void){LC1024_SO_OUT;P1|=0xf;OFF(LC1024_CS);LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_SO_IN;ON(LC1024_CS);}//------------------------------------------------------------------------------unsignedcharLC1024ByteRead(unsignedcharucAdd2,unsignedcharucAdd1,unsignedcharucAdd0){unsignedcharucRet;LC1024_SO_OUT;OFF(LC1024_CS);P1&=0xf0;LC1024_CLK_PULSE;P1|=0x3;LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0&0xf);LC1024_CLK_PULSE;LC1024_SO_IN;LC1024_CLK_PULSE;//DummybyteLC1024_CLK_PULSE;ON(LC1024_CLK);ucRet=(P1<<4);OFF(LC1024_CLK);ON(LC1024_CLK);ucRet|=(P1&0xf);OFF(LC1024_CLK);ON(LC1024_CS);returnucRet;}//------------------------------------------------------------------------------voidLC1024ByteWrite(unsignedcharucAdd2,unsignedcharucAdd1,unsignedcharucAdd0,unsignedcharucByte){LC1024_SO_OUT;OFF(LC1024_CS);P1&=0xf0;LC1024_CLK_PULSE;P1|=0x2;LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucByte>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucByte&0xf);LC1024_CLK_PULSE;LC1024_SO_IN;ON(LC1024_CS);}//------------------------------------------------------------------------------unsignedcharLC1024ReadMode(void){unsignedcharucRet;OFF(LC1024_CS);LC1024_SO_OUT;P1&=0xf0;LC1024_CLK_PULSE;P1|=0x5;LC1024_CLK_PULSE;LC1024_SO_IN;ON(LC1024_CLK);ucRet=(P1<<4);OFF(LC1024_CLK);ON(LC1024_CLK);ucRet|=(P1&0xf);OFF(LC1024_CLK);ON(LC1024_CS);returnucRet;}//------------------------------------------------------------------------------voidLC1024ReadBegin(unsignedcharucAdd2,unsignedcharucAdd1,unsignedcharucAdd0){LC1024_SO_OUT;OFF(LC1024_CS);P1&=0xf0;LC1024_CLK_PULSE;P1|=0x3;LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0&0xf);LC1024_CLK_PULSE;LC1024_SO_IN;LC1024_CLK_PULSE;//DummybyteLC1024_CLK_PULSE;}//------------------------------------------------------------------------------voidLC1024WriteBegin(unsignedcharucAdd2,unsignedcharucAdd1,unsignedcharucAdd0){LC1024_SO_OUT;OFF(LC1024_CS);P1&=0xf0;LC1024_CLK_PULSE;P1|=0x2;LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd2&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd1&0xf);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucAdd0&0xf);LC1024_CLK_PULSE;}unsignedcharLC1024ReadByte(void){unsignedcharucRet;ON(LC1024_CLK);ucRet=(P1<<4);OFF(LC1024_CLK);ON(LC1024_CLK);ucRet|=(P1&0xf);OFF(LC1024_CLK);returnucRet;}voidLC1024WriteByte(unsignedcharucByte){P1&=0xf0;P1|=(ucByte>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucByte&0xf);LC1024_CLK_PULSE;}//------------------------------------------------------------------------------voidLC1024ReadWriteEnd(void){LC1024_SO_IN;ON(LC1024_CS);}//------------------------------------------------------------------------------voidLC1024WriteMode(unsignedcharucMode){LC1024_SO_OUT;OFF(LC1024_CS);P1&=0xf0;LC1024_CLK_PULSE;P1|=0x5;LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucMode>>4);LC1024_CLK_PULSE;P1&=0xf0;P1|=(ucMode&0xf);LC1024_CLK_PULSE;ON(LC1024_CS);LC1024_SO_IN;}//------------------------------------------------------------------------------voidLC1024Reset(void){LC1024_SO_OUT;P1|=0xf;OFF(LC1024_CS);LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_CLK_PULSE;LC1024_CLK_PULSE;ON(LC1024_CS);LC1024_SO_IN;}//ENDOFTHEFILE:LC1024L4.C//------------------------------------------------------------------------------

结论参考资料

[1] 单片机片外RAM,串行的: https://zhuoqing.blog.csdn.net/article/details/105891541

[2] AD7606八通道AD采集模块测试: https://zhuoqing.blog.csdn.net/article/details/105908384

[3] 23LC1024串行四线访问工程: https://download.csdn.net/download/zhuoqingjoking97298/12388449

[4] 扩展32KRAM的STC8H8K信号采集版: https://zhuoqing.blog.csdn.net/article/details/105798094

  • 识字从哪些字开始(认字要从字根起)
  • 2024-11-25认字要从字根起文/张华明在现代汉语中,人们一直把“且”字当作虚词,似乎没什么实际意义直到有一天,我的观念改变了,认识到“且”其实是一个很实的字十多年前,我第一次到桐柏宫,看到一副对联“道教始且老子本仙龙,中华子孙灵。
  • 42岁陈冠希白头发(43岁知名港星退圈后转战金融圈)
  • 2024-11-2543岁知名港星退圈后转战金融圈本文编辑剧透社:彤心晓筑未经授权严禁转载,发现抄袭者将进行全网投诉知名港星陈文媛已经退圈有些年头,转行做金融的她据说发展的很不错,一度赚到盆满钵满,收入绝不比做艺人时差,这样看来,退圈或许是个明智的选。
  • 章子怡主动曝光新片剧照(章子怡首部电视剧官宣)
  • 2024-11-25章子怡首部电视剧官宣1月7日,章子怡的新剧《上阳赋》终于官宣,这作为影后的第一部电视剧,当然是备受瞩目的周一围、杨祐宁、袁弘等实力演员都出演该电视剧,看来新剧的演技是毋庸置疑了章子怡亲自发文宣传自己的新剧,看来是相当重视。
  • 九江公布5名密接者活动轨迹(江西两地公布密接者活动轨迹)
  • 2024-11-25江西两地公布密接者活动轨迹关于新冠肺炎密切接触者张某活动轨迹的公告2022年1月31日,樟树市疾控中心接到宜春市疾控中心转发深圳市宝安区疾控中心《协查管理函》,函告有1名深圳市新冠肺炎确诊病例陈某的密接人员张某在我市辖区目前,。
  • 什么地方的婴幼儿游泳馆多(婴儿游泳馆宝宝在大池中)
  • 2024-11-25婴儿游泳馆宝宝在大池中由于场地的限制,很多婴儿游泳馆都不具备相对较大的婴儿游泳池,宝宝游泳的时候显得“拘束”,根本达不到理想的效果但是,宝宝在大泳池中就会显得比较活跃,相对与之前在小泳池里的状态,家长会更满意,也就会经常带。
  • 冒险岛手游怎么弄钥匙(冒险岛手游时间神殿怎么挂机)
  • 2024-11-25冒险岛手游时间神殿怎么挂机冒险岛手游时间神殿怎么挂机?下面小编为大家带来冒险岛手游时间神殿挂机详解,希望这篇攻略详解能够对大家有所帮助自动挂机,讲究的是安全,不会被怪杀死,也就是把怪物对自身角色的伤害控制在10以内那么,在时间。
  • 完本玄幻异界类小说(五本异界无敌流玄幻爽文)
  • 2024-11-25五本异界无敌流玄幻爽文今天,给大家推荐几本开局便是满级的玄幻爽文,一路无敌从头爽到尾,书荒收藏了!1、《张三丰异界游》,作者:写字板,300多万字已完结简介:话说一代宗师张三丰从小随身佩带一块太级形的玉石,他只知道此物在他。
  • 李荣浩有才华吗(凭什么李荣浩能火)
  • 2024-11-25凭什么李荣浩能火“假如我年少有为不自卑,懂得什么是珍贵...”这首李荣浩在KTV被广为传唱的《年少有为》相信大家已经非常熟悉了吧?有的小伙伴可能很喜欢听李荣浩的歌却不知道李荣浩有一个称号叫做“一个人一支队伍”,并且李。
  • 徐令宜何时开始专宠十一娘(比乔莲房还讨厌的人物)
  • 2024-11-25比乔莲房还讨厌的人物《锦心似玉》钟汉良、谭松韵、何泓姗、颖儿、刘芸等主演的电视剧,最新剧情里,元娘(颖儿饰演)的儿子谆哥生病了,迟迟没有好而徐令宜(钟汉良饰演)的母亲却把责任推给十一娘(谭松韵饰演)身为一家之主,徐令宜的。
  • 乌镇的真实现状(我见过乌镇最破败的样子)
  • 2024-11-25我见过乌镇最破败的样子对话·陈向宏以下为采访摘要乌镇是他一笔一笔画出来的陈向宏:你在乌镇任何地方拍的照片,我都能说出是从哪个角度拍的,因为我对乌镇太熟悉了△陈向宏陈向宏对乌镇的熟悉,是连街上的臭味是来自哪个茅坑,还是来自谁。
  • qq坦白说怎么才能知道对方是谁(QQ坦白说怎么看对方是谁)
  • 2024-11-25QQ坦白说怎么看对方是谁[-海峡网]QQ坦白说虽说是匿名评价给对方,但是随着高科技存在,各种网友都找到了破解坦白说的方法一起来看看吧坦白说怎么看是谁安卓手机:收到信息后,不知道是谁⊙ω⊙,我教你看看谁这么调皮别的版本不知道,。