ADS1191心电采集系统设计方案
- 一、硬件电路设计
-
- (一)、ADS1191的电源和地
- (二)、ADS1191的时钟电路
- (三)、ADS1191的SPI相关引脚配置
- (四)、ADS1191的GPIO相关引脚配置
- (五)、PWDN#/RESET#引脚
- (六)、START开始转换引脚
- 软件SPI编程测试
一、硬件电路设计
(一)、ADS1191的电源和地
ADS1191支持两种电源模式:单电源模式和双电源模式(芯片手册53页)。具体区别也应该是芯片内部集成运输的区别。需要补充两种电源模式的优缺点……。(参考电路采用单电源模式,模仿为上) 单电源模式框图:
使用立创EDA阶段性原理图:
(二)、ADS1191的时钟电路
ADS1191提供内部时钟振荡器和外部时钟两种不同的设备时钟方法。内部时钟非常适合低功耗和电池供电系统。
时钟选择由CLKSEL引脚和CLK_EN控制寄存器位置。
在使用 外部时钟 时,将降低,从外部时钟引脚输入。 在使用 内部时钟振荡器 时,将此时,如果寄存器中的时钟使能位
CLK_EN
为1,则在CLK引脚输出内部时钟;如果时钟使能位CLK_EN
为0,则CLK引脚为3-state(不定态?高阻态? 对于CLK猜测引脚时钟的输出功能:SPI多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:多从机有两种实现方法:NSS和。多NSS在这种方式下,每个从机可以由主机统一提供时钟信号。在菊花链中,使用每个从机CLK引脚输出外部时钟,为下一个从机提供时钟信号,更符合菊花链的特点。
在这里,只有一个从机ADS因此,使用内部时钟(将CLKSEL引脚拉高)并编程使能位在寄存器中的时钟CLK_EN
置为0。 使用内部时钟(将CLKSEL引脚拉高)的具体操作是,CLKSEL引脚通过10k将电阻拉到数字上VDD。从上表可以看出,在此时钟模式下,CLK引脚为3-state,引脚电平状态不能确定,所以参考其他设计,CLK引脚经过10k低电阻下拉。
(三)、ADS1191的SPI相关引脚配置
基本SPI引脚 ADS1191原理图基础SPI有四个引脚:CS#、SCLK、DIN和DOUT。 传统分别对应SPI协议里的SS、SCLK、MOSI、MISO。
MISO: Master input slave output 主机输入,从机输出(数据来自从机); MOSI: Master output slave input 主机输出,从机输入(数据来自主机); SCLK :Serial Clock 串行时钟信号由主机发送到从机; SS: Slave Select 片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号。
拓展SPI引脚 DRDY#引脚是数字输出引脚。当它变低时,指示准备好新的转换数据。 原理图采用网络标号,便于与单片机连接。
(四)、ADS1191的GPIO相关引脚配置
GPIO即General-purpose input/output。根据芯片手册,类似于MCU普通引脚,即通过编程输出高低电平,或读取引脚的外部电平状态。不使用时,需要下拉到数字地面。
(五)、PWDN#/RESET#引脚
PWDN#/RESET# 引脚可理解为硬件复位引脚,低电平有效。ADS1191也可以通过软件复位,所以把引脚拉到上面DVDD。
(六)、START开始转换引脚
类似于复位引脚,可以通过软件复位,软件复位更灵活。高电平有效,所以将引脚拉到数字地面。
软件SPI编程测试
时序图:
#define CS P10 #define SCLK P11 #define MOSI P12 #define MISO P13 unsigned char SPI_Byte(unsigned char SendByte) {
unsigned char i,RecByte = 0x00; CS = 0; //拉低片选,开始SPI数据传输 SCLK = 0; //SCLK空闲状态为低电平 for(i=8;i>0;i--)
{
SCLK = 0;
Delay10us(); //延时一会维持低电平,保证一定的周期
RecByte <<= 1; //数据接收时最高位在前
if(MISO)
RecByte |= 0x01;
SCLK = 1;
if((SendByte&0x80) == 0x80) MOSI = 1; //数据发送时最高位在前
else MOSI = 0;
SendByte <<= 1;
Delay10us(); //延时一会维持高电平,保证一定的周期
SCLK = 0;
}
return RecByte;
}
发送字节SendByte=0xAA
时,SCLK和MOSI的波形:
发送字节SendByte=0x4C
时,SCLK和MOSI的波形:
ADI的SPI接口简介 SPI的数据交换的动态图 参考 参考