STM32之MAX1167-MAX1168 SPI AD采集信号
SPI基本介绍
SPI简介
SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200。
SPI分为主、从两种模式,一个SPI通讯系统需要包含一个(且只能是一个)主设备,一个或多个从设备。SPI接口的读写操作,都是由主设备发起。当存在多个从设备时,通过各自的片选信号进行管理。
SPI引脚说明
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。这四根线分别是MISO、MOSI、SCLK、CS,具体的描述见下表:
名称 | 描述 |
---|---|
MISO | 主设备数据输入,从设备数据输出 |
MOSI | 主设备数据输出,从设备数据输入 |
SCLK | 时钟信号,主设备产生 |
CS | 片选信号,主设备控制 |
CS:控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(一般默认为低电位),对此芯片的操作才有效,这就允许在同一总线上连接多个SPI设备成为可能
MAX1167-MAX1168
以上是重要的几个引脚的说明,关于芯片资料可以自行下载
接下来看一下芯片上的时序图,根据时序来写代码
SCLK先是下降沿,这时候编写数据,SCLK上升沿时,写入,读取时也是这样。
接下来看一下原理图和代码
- SPI初始化
void SPI1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef SPI_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE );
RCC_APB2