基于线性序列机的ADC芯片功能和接口时序介绍
ADC功能
ADC实际上就是模数转换器,因为日常生活中的信号多数是模拟信号,但再电脑上对这些信号进行分析,就需要将他们转换成数字信号
ADC参数指标
我们需要使用的芯片ADC128S102的参数如下:
其内部结构如下:
各个信号的时序关系如下:
由该时序图可分析如下
1.CS为片选信号,低电平有效;
2.DOUT在CS变为低电平后四个周期开始输出,且在SCLK下降沿输出,并且可以看到SCLK上升沿时DOUT处于稳定状态;
3. DIN在两个SCLK周期后输出地址信号进行选通模拟信号;
基于以上时序分析,我们进行ADC驱动模块的设计:
除了 ADC芯片本身与驱动模块交互的CS、SCLK、DIN、DOUT信号外,结合实际应用需求,还需要用户控制端设计几个信号:
1.Addr[2:0]:用户控制输入地址,即选取想要输出的某一路模拟信号;
2.data[11:0]:将芯片模数转换后的数字信号输出给用户端;
3.Conv_Go:开始采样使能信号,高电平有效;
4.Conv_Done:转换完成信号;
使用线性序列机思路分析SPI接口的ADC芯片接口时序
如题,通过使用线性序列机的思路来分析ADC芯片的接口时序,可以看到,在CS有效(低电平)期间,DOUT在4个周期的0后,在SCLK下降沿输出给驱动模块,DIN在两个周期后驱动模块将ADD地址信号输出给ADC芯片,因此,选取最小时间单位就是SCLK的半周期;
分析上图后,各个时间节点的操作如下:
如上图可以得到驱动模块代码的设计思路:
1.设计SCLK半周期计数器,即最小时钟单元;
2.设计序列计数器,以最小时钟单元为触