单片机
返回首页

STM32F103控制ad7606采集程序分享

2023-06-05 来源:elecfans

stm32f103系列性能

1. 速度,跟51和AVR相比,相当快了。

2. 容量,目前能直接购买到512K FLASH的。

3. 管脚,64,100,144等,只可惜,小管脚(少于32腿的),没有

4. RAM, 48K,跟AVR的4K相比,太庞大。

5. 外设,5个USART,2个IIC,2个SPI,USB,等等,常用的都有。

6. 软件,STM有自己的固件库,可加速开发,不用再细看寄存器。


ad7606特性

8/6/4路同步采样输入

真双极性模拟输入范围: +10V, +5V

5V单模拟电源,VoRIVE: 2.3V至5V

完全集成的数据采集解决方案

模拟输入箝位保护

具有1 MQ模拟输入阻抗的输入缓冲器

二阶抗混叠模拟滤波器

片内精密基准电压及缓冲

16位、200 kSPSADC (所有通道)

通过数字滤波器提供过采样功能

灵活的并行/串行接口

SPI/QSPI“/MICROWIRE”/DSP兼容性能

模拟输入通道提供7 kV ESD额定值

95.5dB SNR,-107dBTHD

士0.5LSBINL,+0.5LSB DNL

低功耗: 100 mW

待机模式: 25 mW

64引脚LQFP封装


STM32F103控制ad7606采集程序分享

1、配置STM32F103的SPI口

void AD7606_Port_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

SPI_InitTypeDef SPI_InitStructure;

RCC_APB2PeriphClockCmd(AD_SPI_CS_GPIO_CLK | AD_SPI_MISO_GPIO_CLK | AD_SPI_SCK_GPIO_CLK, ENABLE);

RCC_APB1PeriphClockCmd(AD_SPI_CLK, ENABLE);

/////////////////////////SPI_CLK////////////////////////

GPIO_InitStructure.GPIO_Pin = AD_SPI_SCK_PIN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(AD_SPI_SCK_GPIO_PORT, &GPIO_InitStructure);

/////////////////////////SPI_MISO////////////////////////

GPIO_InitStructure.GPIO_Pin = AD_SPI_MISO_PIN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(AD_SPI_MISO_GPIO_PORT, &GPIO_InitStructure);

/////////////////////////SPI_CS////////////////////////

GPIO_InitStructure.GPIO_Pin = AD_SPI_CS_PIN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(AD_SPI_CS_GPIO_PORT, &GPIO_InitStructure);

/////////////////////////SPI_³õʼ»¯////////////////////////

SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

SPI_InitStructure.SPI_Mode = SPI_Mode_Master;

SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;

SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;

SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;

SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;

SPI_InitStructure.SPI_CRCPolynomial = 7;

SPI_Init(AD_SPI, &SPI_InitStructure);

SPI_Cmd(AD_SPI, ENABLE);

/////////////////////////AD7606_RESET////////////////////////

RCC_APB2PeriphClockCmd(AD_RESET_GPIO_CLK | AD_CONVT_GPIO_CLK , ENABLE);

GPIO_InitStructure.GPIO_Pin = AD_RESET_PIN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(AD_RESET_GPIO_PORT, &GPIO_InitStructure);

/////////////////////////AD7606_CONVT////////////////////////

GPIO_InitStructure.GPIO_Pin = AD_CONVT_PIN;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(AD_CONVT_GPIO_PORT, &GPIO_InitStructure);

}

2、AD7606复位信号

void AD7606_Reset(void)

{

AD_RESET_LOW();

AD_RESET_HIGH();

AD_RESET_HIGH();

AD_RESET_HIGH();

AD_RESET_HIGH();

AD_RESET_LOW();

}

3、AD7606开始转换信号

void AD7606_StartConvt(void)

{

AD_CONVT_LOW();

AD_CONVT_LOW();

AD_CONVT_LOW();

AD_CONVT_HIGH();

}

4、STM32F103读取AD7606数据

short AD7606_ReadBytes(void)

{

short AD7606_Data = 0;

while (SPI_I2S_GetFlagStatus(AD_SPI, SPI_I2S_FLAG_TXE) == RESET)

{

}

SPI_I2S_SendData(AD_SPI, 0xFFFF);

while (SPI_I2S_GetFlagStatus(AD_SPI, SPI_I2S_FLAG_RXNE) == RESET)

{

}

AD7606_Data = SPI_I2S_ReceiveData(AD_SPI);

return AD7606_Data;

}

5、STM32F103读取AD7606前CS拉低,拉高,重新开始转换

void samp_return(void)

{

int j=0;

AD_SPI_CS_LOW();

for(j=0;j《6;j++)

{

AD7606_Return[j]=AD7606_ReadBytes();

}

AD_SPI_CS_HIGH();

//ads7606_Delay(100);

AD7606_StartConvt();

ads7606_Delay(200);

}

6、数据量转化为模拟量公式

电压=samp_sum_jiaoshudu_return[0]*10.0/32768/(2.5/2.5);//采用正负10电压模拟输入,参考电压2.5V

7、主函数main中初始化AD7606

AD7606_Port_Init();

Adc_Init();

AD7606_Reset();

AD_SPI_CS_HIGH();

AD_CONVT_HIGH();

AD7606_StartConvt();


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 设计汽车集群电源

  • 6晶体管H桥

  • 温度控制风扇

  • USB LED调光器

  • AVR PC步进电机驱动器

  • AVR温度计TCN75

    相关电子头条文章