0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F103控制ad7606采集程序分享

姚小熊27 来源:网络整理 2018-05-21 11:31 次阅读

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();

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32F103
    +关注

    关注

    33

    文章

    476

    浏览量

    63456
  • AD7606
    +关注

    关注

    6

    文章

    48

    浏览量

    23283
收藏 人收藏

    评论

    相关推荐

    请问有用C语言或汇编来控制AD7606采集和读取程序

    由于项目需求,用到贵公司的AD7606芯片进行数据采集,用TI的MSP430F6459作为主控MCU,现在在写AD7606控制程序,但一直
    发表于 01-15 11:40

    基于STM32F103的水格栅处理控制系统设计

    设计了一种基于STM32F103的水格栅控制系统,给出了相应的软硬件设计方案,系统利用AD7450芯片来实现三通道AD的分时采集,利用STM32F103zet6(32bit-corte
    发表于 10-08 15:36 70次下载
    基于<b class='flag-5'>STM32F103</b>的水格栅处理<b class='flag-5'>控制</b>系统设计

    基于stm32f103的数据采集

    基于stm32f103的数据采集,将0-3.3v的电压转换成数字量
    发表于 05-06 16:43 53次下载

    AD7606_SPI例程(STM32F103

    利用STM32F103ZET和AD7606进行同步采集源代码。
    发表于 05-13 14:41 135次下载

    STM32F103芯片FFT程序

    STM32F103芯片使用DSP库进行FFT运算的资料与程序
    发表于 06-07 16:30 109次下载

    STM32F103使用总结

    STM32F103使用总结
    发表于 10-24 10:22 152次下载

    stm32f103移植

    stm32f103移植
    发表于 10-27 09:03 43次下载
    <b class='flag-5'>stm32f103</b>移植

    stm32f103采集四路ADC并且显示到OLED上程序

    stm32f103采集四路ADC并且显示到OLED上程序
    发表于 01-16 18:07 182次下载

    利用STM32多种型号和AD7606数据采集的源代码系列资料免费下载

    本文档的主要内容详细介绍的是利用STM32多种型号和AD7606数据采集的源代码系列资料免费下载包括:AD7606 FSMC例程,SPI例程,51单片机例程。
    发表于 10-17 08:00 279次下载

    使用STM32F103单片机采集16路ADC的工程文件和程序免费下载

    本文档的主要内容详细介绍的是使用STM32F103单片机采集16路ADC的工程文件和程序免费下载。
    发表于 09-26 08:00 32次下载
    使用<b class='flag-5'>STM32F103</b>单片机<b class='flag-5'>采集</b>16路ADC的工程文件和<b class='flag-5'>程序</b>免费下载

    STM32F103 CAN模板程序

    STM32F103 CAN模板程序
    发表于 11-09 11:08 67次下载
    <b class='flag-5'>STM32F103</b> CAN模板<b class='flag-5'>程序</b>

    基于STM32f103的FFT频率测试程序下载

    基于STM32f103的FFT频率测试程序下载
    发表于 08-02 10:07 166次下载

    基于STM32F103的DAC8411驱动程序

    基于STM32F103的DAC8411驱动程序,亲测可用,欢迎大家一起交流
    发表于 08-28 11:21 16次下载

    基于STM32AD7606的数据采集例程

    基于STM32AD7606的数据采集例程,内涵STM32的。AD7606模组原理图和接线图。
    发表于 12-07 15:36 141次下载

    用于stm32f103 A/D信号采集的处理

    用于stm32f103 A/D信号采集的处理
    发表于 08-01 18:13 5次下载