ram芯片的最小数目(串行RAM23LC1024四线访问数据)
ram芯片的最小数目(串行RAM23LC1024四线访问数据)
2024-06-01 08:54:43  作者:汉子的霸气  网址:https://m.xinb2b.cn/know/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芯接口连接。

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(1)

▲ 原理图

2. PCB

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

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(2)

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

3. 硬件调试

软件开发所在的目录:

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

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

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(3)

▲ 单片机硬件选项配置

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

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

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

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

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(4)

▲ CS波形,时间为2.03us

读出的时间也是2.0us,

LC1024ByteRead(0x0, 0x0, 0xff)

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

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(5)

▲ 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();

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(6)

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

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

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

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

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

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

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

ram芯片的最小数目(串行RAM23LC1024四线访问数据)(7)

函数程序模块

相关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-06-02宝藏女孩宋祖儿暖心加盟忘不了餐厅提起宋祖儿,脑海中第一个闪现的就是《宝莲灯前传》里那个古灵精怪的哪吒她是少年成名的童星中为数不多的没有长残的了,宋祖儿的脸上至今还带着几分“哪吒”的灵气在《忘不了餐厅》这个公益性综艺节目里,小编被这只。
  • 上海上港教练达喀尔(前车之鉴堪玩味)
  • 2024-06-02前车之鉴堪玩味不经意间“双帅制”就在CBA中悄然兴起了!并且还展现出了方兴未艾之势,引得不少俱乐部纷纷效仿但是这个“双帅制”,真的有“疗效”吗?又有哪个病急乱投医的俱乐部,是由“双帅制”给治好的吗?这个到目前为止,。
  • 饭圈女孩一般在干啥(揭秘真实的饭圈女孩)
  • 2024-06-02揭秘真实的饭圈女孩“饭圈女孩”又火了2月底,流量明星肖战的粉丝因为不满同人作品《下坠》将肖战“女化”,于是有组织有计划地举报了该作品和所刊登的平台,最终导致平台被封,形成了肖战粉丝和同人圈子的对峙,诸多“圈地自萌”的路。
  • 东京购物夜市在哪里(东京必逛百货银座三越)
  • 2024-06-02东京必逛百货银座三越优惠券银座是到东京自由行的购物狂们不可错过的Shopping圣地!这次要向大家推荐的是银座商圈里的「银座三越」,不仅有人气品牌进驻,还有会说中文的工作人员当购物嚮导地下美食街的料理、伴手礼更是多得会挑。
  • 排位单排匹配机制什么时候改(匹配预选机制上线)
  • 2024-06-02匹配预选机制上线珍宝阁系列皮肤,是从未上架过商城的,只在活动中出现这不马上五五开黑节了,不知你的蔷薇币积攒到了多少?老玩家说不定已全部拥有,新玩家也可以趁此机会,领一款限定皮肤哦!峡谷预选机制&新模式玩法教学王者终于。
  • 基础款教你几种接地气时尚穿法(今年火了一种穿法叫)
  • 2024-06-02今年火了一种穿法叫下了班想要直接去约会的姐妹,但是又担心穿的太过职场化,没有约会的氛围感如果直接身穿适合约会的衣服去上班,又不太得体这个问题应该是困扰很多职场女性的问题,下班之后又不想回家换衣服再出门约会好在今年火了一。
  • 氢燃料电池加氢哪家便宜(走访一线贴近市场)
  • 2024-06-02走访一线贴近市场编前:在2019全国两会期间,氢能成为一个热议话题,不少政协委员和人大代表都提出了发展氢能的提案议案,其中围绕推广氢燃料电池汽车产业链的更是十分集中事实上,2019年政府工作报告也明确提出,覆盖完整产。
  • 山东各地级市排名(山东这4市进入全国地级市30强)
  • 2024-06-02山东这4市进入全国地级市30强随着各地2021年经济发展“成绩单”陆续公布,各个城市的GDP总量随之出炉在直辖市、省会城市、计划单列市之外,一些普通地级市的经济运行数据同样显露光芒近日,第一财经就统计了2021年普通地级市GDP3。
  • 如何才能收到时空交集短信(今天收到时空交集)
  • 2024-06-02今天收到时空交集来源:昆明日报-掌上春城今天(3月29日)市民如收到昆明市疫情防控指挥部的提示短信被告知与新冠确诊病例有时空交集请在收到短信后主动向社区报告尽快在3天内完成2次核酸检测并做好14天自我健康监测期间不乘。
  • 贵州凯里市文明城(贵州省凯里市获国家节水型城市称号)
  • 2024-06-02贵州省凯里市获国家节水型城市称号贵州省凯里市城区远眺6月4日,住建部官网发布“住房和城乡建设部国家发展改革委关于命名第九批(2018年度)国家节水型城市的公告”公告显示,贵州省凯里市列入第九批(2018年度)国家节水型城市名单公告主。
  • 大眼妹和小海豚是真实吗(全红婵珠海看海豚跳水)
  • 2024-06-02全红婵珠海看海豚跳水11月10日消息,近日,14岁跳水奥运冠军全红婵,在大师兄谢思埸陪伴下来到了珠海长隆游玩,全红婵现场观看海豚表演,还给小海豚起名“辣条”,对辣条果然是真爱!全红婵在奥运会和全运会之后的假期里继续坚持训。