-
W25Qxxx系列是使用SPI接口的NOR Flash,使用24位地址宽度
-
通信格式为:指令——地址(大端序)——I/O数据
-
SPI通信开始的标志是CS/NSS被主机拉低,从设备被选中
-
SPI总线的I/O在空闲时处于High-Impedance(高阻)状态
-
一般时序图上会标注时钟的周期号,可以据此判断时序图的先后
对于上述的时序图,可以这样解读:
-
CS拉低,开始通信
-
CLK引脚上出现脉冲,在脉冲的边沿上,I/O引脚开始脱离高阻态,最多占用一个时钟周期
-
MOSI引脚发送指令0x0Bh,MISO引脚处于高阻态,占用八个时钟周期
-
MOSI引脚按照大端序发送24位地址,先发送高字节,MISO引脚处于高阻态共占用24个时钟周期
-
MOSI和MISO均进入高阻态,等待八个时钟周期(也可以将该Dummy Byte读出并舍去)
-
MOSI进入空闲(非高阻态,且无需关心),MISO上开始出现数据脉冲,在该芯片上,数据按照写入的顺序读出,读出N个字节,占用N*8个时钟周期
-
CS拉高,MOSI/MOSI进入高阻态,CLK引脚回到空闲电平,通信结束
综上,同步时序逻辑的理解,大致分为几步:
-
找到通信开始和结束的标志,找到时钟脉冲
-
对时钟脉冲分段,找到每一段传输的数据是什么,是否有空闲时钟脉冲(这很重要)
-
分好数据段后,确定端序,并在程序中做出相应处理
-
根据上述信息,即可整理成代码,进行下一步调试
该指令对应的伪代码如下(C语言)
void SPI_Transmit(uint8_t* pTxData, uint16_t pTxSize);
void SPI_Receive(uint8_t* pRxData, uint16_t pRxSize);
void W25Qxx_FastRead(uint8_t* pReadData, uint16_t pReadSize, uint32_t Addr)
uint8_t command_buff = 0x0Bu, dummy_buff = 0u, addr_buff[3] = {0};
addr_buff[0] = (Addr & 0x00FF0000ul) >> 16u;
addr_buff[1] = (Addr & 0x0000FF00ul) >> 8u;
addr_buff[2] = Addr & 0x000000FFul;
SPI_Transmit(&command_buff, 1u);
SPI_Transmit(addr_buff, 3u);
SPI_Receive(&dummy_buff, 1u);
SPI_Receive(pReadData, pReadSize);
一、时序图
时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列。通常把发起交互的对象放在左边,较下级对象依次放在 右边,然后把这些对象发送和接受的消息沿Y轴方向按时间顺序从上到下放置。这样就提供了控制流随着时间推移的清晰的可视化轨迹。
纵向是时间轴,横轴是对象,对象的生命周期沿竖线向下延伸
二、时序图元素
系统角色,可...
我们都知道在学校是通过铃声来控制所有班级的上下课时间,那个单片机是通过什么样的办法进行取指令,执行指令和其它操作的呢?在这里引入了一个时序的概念:一、时钟电路单片机时钟电路有三种方式:1、单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,XTAL1和XTAL2需外接上晶体和合适的电容。 2、有的单片机内部也自带时钟电路,用于产生时钟信号。...
操作时序永远都是使用任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个IC巨头比如TI、AT、MAXIM这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。即便有中文翻译版本,还是...
有很多传感器手册给了我们时序图,我们只要按照时序图操作就行了,还有一些是标准接口,例如SPI,IIC,UART,这些可以利用硬件提供的收发器通信,还有一些我们没有足够的接口,或者没有对应的接口与之通信,我们可以按照手册提供的时序图,利用IO来完成读写操作。完成的思路是模块化编程思想,将问题逐个分解。由大化小,实现小的功能。
比如常用的单线协议的温湿度传感器DHT21.
时序图读法
1、从上到下,从左到右,高电平在上,低电平在下,高阻态在中间。双线表示可能高也可能低,视数据而定。交叉线表示状态的高低变化点,可以是高变低,也可以是低变高,也可以不变。
2、竖线是生命线,代表时序图的对象在一段时期内的存在,时序图中每个对象和底部中心都有一条垂直段的虚线,这就是对象的生命线,对象的消息存在于两条生命线之间。
3、时序要满足建立时间和保持时间的...
对于芯片开发使用来说,时序图是较为核心也较为重要的一个知识点。在厂家给出的芯片数据手册中,时序图也是非常重要的参数细节。开发者拿到一款芯片时,首先需要做的就是阅读其数据手册,对上面的内容进行提取和掌握。因此能够顺利的阅读并了解到单片机时序图想要传达的意思是非常关键的,本文为大家介绍一种能够顺利读懂时序图的方法。
为了方便大家理解,这里以1602为例进行讲解,1602的引脚是很整齐的SIP单列直插...
/ CSDN : 大屁桃// //9600波特率参量//波特率9600,接收间隔最大计数MAXEND = 50M/9600 = 5208.33 - 1 = 5207//5208/2 - 1 = 2603,要在2603这里点看到波形//5207需要13位来保存,[12:0]//115200波特率参量//波特率115200,接收间隔最大计数MAXEND = 50M/115200 = 434.02 - 1 = 433//5207需要9位来保存,[8:0]//变量reg rx1;
一、时序图时序图是一种强调消息时序的交互图,他由对象(Object)、消息(Message)、生命线(Lifeline)和Combined Fragments组成,它主要描述系统中对象和对象之间的交互,它将这些交互建模成消息交换。时序图将交互关系展示成了一个平面二维图,其中纵向标示时间轴,时间沿竖线从上向下进行。横向轴标示了交互中各各个对象。对象的的用生命线表示。消息从一个对象的生命线到另一个对象...
一个简单例子简介序列图主要用来更直观的表现各个对象交互的时间顺序,将体现的重点放在 以时间为参照,各个对象发送、接收消息,处理消息,返回消息的 时间流程顺序,也称为时序图。基本元素角色系统角色,可以是人或者其他系统,子系统。
对象交互的主体,接受发送消息的主体,最基本的元素。
很多博客里只是对状态机进行编写,但是对于里面的延时时钟的计算没有讲解,也没有结合时序图进行分析,我在此进行一个简要分析。首先是conv上升沿触发系统开始采样转换,进入busy状态,然后busy下降沿后开始进行8个通道的读取。
首先是系统主频为100mhz,那么一个clock就是10ns。根据上图可得,
ad7606的一个cycle为5us;
CCD模式
CCD模式主要针对各种黑白、彩色CCD原始信号。对于CCD模式的输入通道有如下7个模块,其中模块(1)到(4)是CCD模式的专用模块,(5)到(7)是公用模块,在此一并介绍。
(1)直流重建:
直流重建的目的是实现直流电平箝位。由于CCD的输出信号因为包含了一个较大的直流成分,这个直流量很容易造成放大器的饱和或者引起共模效应。因此