ram芯片的最小数目(串行RAM23LC1024四线访问数据)
ram芯片的最小数目(串行RAM23LC1024四线访问数据)
2024-07-01 05:49:53  作者:汉子的霸气  网址: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-07-01旧被子和旧棉衣不要扔你家里是不是也有很多用了多年的棉花被,扔了可惜,留着又太旧,尤其是上边沾满了小孩尿渍的,更是留置无用,扔了心疼;还有些旧棉服棉衣,做的时候,都崭新的棉花和羽绒,现在衣服就了,就这么扔了,总觉得不太合适。
  • 冬天面部脱皮(冬天面部脱皮怎么办)
  • 2024-07-01冬天面部脱皮怎么办吃水果这是从身体内部给皮肤补水的方法喝水这也是从身体内部给皮肤补水的方法之一吃点花生花生里含维生素E有滋润皮肤的作用,使皮肤不干燥,避免脱皮的困扰喝菊花茶这是从调理身体的角度,给皮肤补给营养,使皮肤不。
  • 于和伟演刘备的时候多大(一人承包了整个三国)
  • 2024-07-01一人承包了整个三国最近被一个帅大叔圈粉了,这个人就是于和伟没错,最近正是在追《军师联盟》,当初是冲着吴秀波去的,没想到半路却被于和伟出演的曹操狠狠圈了一波粉于和伟,演曹操,没错,就是那个在高希希、陈建斌版《三国》中饰演。
  • 娱乐圈祝福(圈内明星大佬送来祝福)
  • 2024-07-01圈内明星大佬送来祝福LOL小智想必很多人都知道,一个英雄联盟娱乐型解说,曾经是中国网络视频界最为火爆的原创者之一,在其制作的视频中留下了很多的经典语录,陪伴着许多玩家走过了几年玩英雄联盟最好的时光,如今虽然已经不做视频转。
  • 切尔诺贝利核电站怎么样了(切尔诺贝利核电站仍在掌控中)
  • 2024-07-01切尔诺贝利核电站仍在掌控中当地时间9日,俄罗斯官方辟谣网站“与假消息作战”发布文章称,切尔诺贝利核电站目前仍在掌控中,工作人员正常监控和操作设备文章称,国际原子能机构当天表示,没有看到切尔诺贝利核电站存在影响安全的违规行动当天。
  • 海燕高尔基的散文诗朗诵 散文朗诵高尔基海燕
  • 2024-07-01海燕高尔基的散文诗朗诵 散文朗诵高尔基海燕在苍茫的大海上,狂风卷集着乌云在乌云和大海之间,海燕像黑色的闪电,在高傲地飞翔一会儿翅膀碰着波浪,一会儿箭一般地直冲向乌云,它叫喊着,──就在这鸟儿勇敢的叫喊声里,乌云听出了欢乐在这叫喊声里──充满着。
  • 麦芽糖稀是什么(麦芽糖稀简单介绍)
  • 2024-07-01麦芽糖稀简单介绍麦芽糖稀亦可称为“饴糖”,是由麦芽中的糖化酶作用于碎米中的淀粉所制成的一种糖,呈浅黄色,其主要成分为麦芽糖、葡萄糖及糊精,味道甜柔爽口麦芽糖稀广泛用于糖果、糕点制品,亦可用于其它工业麦芽糖稀富含碳水化。
  • 越南榴莲怎么看货(越南榴莲将经天津港进入京津冀市场)
  • 2024-07-01越南榴莲将经天津港进入京津冀市场北京日报客户端|记者白波越南榴莲推介会暨水果嘉年华1月13日在天津海吉星举办来自越南驻华使馆、天津市政府、中越两国商协会、中越两国果品龙头企业、海陆物流运输企业、贸易企业的上百名嘉宾参加活动会上,中国。
  • 老洋芋怎么做(老洋芋的做法介绍)
  • 2024-07-01老洋芋的做法介绍老洋芋两个,切块,加少许水,盖保鲜膜,微波炉加热五分钟至洋芋软烂锅里倒适量油,放干辣椒、蒜炒香放入洋芋块,翻炒碾碎加适量盐,孜然粉,翻炒均匀再加少许辣椒粉,翻炒均匀放香菜碎翻炒均匀最后撒上小葱,翻炒均。
  • 姐弟寻被拐母亲(我为被拐母亲找到家)
  • 2024-07-01我为被拐母亲找到家到了而立之年,李艳桃觉得自己才真正认识母亲她更熟悉的母亲,是长久深居于河南辉县小村庄里的农妇,有着和当地人完全不同的高额头和深邃眼眶,说着大家听不懂的话,不知名字、不晓家乡母亲很少笑,即使已经在这里生。
  • 采光污染属于光污染吗(灯光污染是什么)
  • 2024-07-01灯光污染是什么环境污染、噪音污染,这都我们都十分的熟悉而灯光污染你清楚是什么概念吗?不妨我们一起来看看针对它的详细介绍光污染是指过量的光辐射对人类生活和生产环境造成不良影响的现象包括可见光、红外线和紫外线造成的污染。
  • 哪几版吴邪最好(几个版本的吴邪)
  • 2024-07-01几个版本的吴邪鹿晗(电影版本)鹿晗的眼神太干净了,往那一站就是吴邪本邪李易峰李易峰的吴邪多了点稳重,全程颜值在线侯明昊版本本人觉得这个版本的吴邪多了点灵气表演可圈可点朱一龙这个年龄段的吴邪稳重,少了点冲动,这个照片。