• 大小: 10KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-04
  • 语言: 其他
  • 标签: stm32的FSMC  

资源简介

基于stm32的FSMC的ad7606 的的程序,实测可用。AD7606 的配置很简单,它没有内部寄存器。量程范围和过采样参数是通过外部IO控制的。 采样速率由MCU或DSP提供的脉冲频率控制。 AD7606 必须使用单5V供电。 AD7606 和MCU之间的通信接口电平由VIO引脚控制。也就是说 VIO必须接单片机的电源,可以是3.3V也可以是5V。

资源截图

代码片段和文件信息

/*
*********************************************************************************************************
*
* 模块名称 : AD7606数据采集模块
* 文件名称 : bsp_ad7606.c
* 版    本 : V1.0
* 说    明 : AD7606挂在STM32的FSMC总线上。
*
* 本例子使用了 TIM4 作为硬件定时器,定时启动ADC转换
*
* 修改记录 :
* 版本号  日期        作者     说明
* V1.0    2013-02-01 armfly  正式发布
*
* Copyright (C) 2013-2014 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/

#include “bsp.h“


/* 设置过采样的GPIO: PH9 PH10 PH11 */
#define OS0_1() GPIOH->BSRRL = GPIO_Pin_9
#define OS0_0() GPIOH->BSRRH = GPIO_Pin_9
#define OS1_1() GPIOH->BSRRL = GPIO_Pin_10
#define OS1_0() GPIOH->BSRRH = GPIO_Pin_10
#define OS2_1() GPIOH->BSRRL = GPIO_Pin_11
#define OS2_0() GPIOH->BSRRH = GPIO_Pin_11

/* 启动AD转换的GPIO : PH12   PH12/TIM5_CH3/DCMI_D3 */
#define CONVST_1() GPIOH->BSRRL = GPIO_Pin_12
#define CONVST_0() GPIOH->BSRRH = GPIO_Pin_12

/* 设置输入量程的GPIO :  */
#define RANGE_1() GPIOH->BSRRL = GPIO_Pin_14
#define RANGE_0() GPIOH->BSRRH = GPIO_Pin_14

/* AD7606复位口线 : PI4  */
#define RESET_1() GPIOI->BSRRL = GPIO_Pin_4
#define RESET_0() GPIOI->BSRRH = GPIO_Pin_4

/* AD7606 FSMC总线地址,只能读,无需写 */
#define AD7606_RESULT() *(__IO uint16_t *)0x6C400000

AD7606_VAR_T g_tAD7606; /* 定义1个全局变量,保存一些参数 */
AD7606_FIFO_T g_tAdcFifo; /* 定义FIFO结构体变量 */

static void AD7606_CtrlLinesConfig(void);
static void AD7606_FSMCConfig(void);

/*
*********************************************************************************************************
* 函 数 名: bsp_InitExtSRAM
* 功能说明: 配置连接外部SRAM的GPIO和FSMC
* 形    参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void bsp_InitAD7606(void)
{
AD7606_CtrlLinesConfig();
AD7606_FSMCConfig();

AD7606_SetOS(AD_OS_NO); /* 无过采样 */
AD7606_SetInputRange(0); /* 0表示输入量程为正负5V 1表示正负10V */

AD7606_Reset();

CONVST_1(); /* 启动转换的GPIO平时设置为高 */
}

/*
*********************************************************************************************************
* 函 数 名: AD7606_CtrlLinesConfig
* 功能说明: 配置LCD控制口线,FSMC管脚设置为复用功能
* 形    参:无
* 返 回 值: 无
*********************************************************************************************************
*/
/*
安富莱STM32-V5开发板接线方法:

PD0/FSMC_D2
PD1/FSMC_D3
PD4/FSMC_NOE --- 读控制信号,OE = Output Enable , N 表示低有效
PD5/FSMC_NWE --- 写控制信号,AD7606 只有读,无写信号
PD8/FSMC_D13
PD9/FSMC_D14
PD10/FSMC_D15

PD14/FSMC_D0
PD15/FSMC_D1

PE4/FSMC_A20 --- 和主片选一起译码
PE5/FSMC_A21 --- 和主片选一起译码
PE7/FSMC_D4
PE8/FSMC_D5
PE9/FSMC_D6
PE10/FSMC_D7
PE11/FSMC_D8
PE12/FSMC_D9
PE13/FSMC_D10
PE14/FSMC_D11
PE15/FSMC_D12

PG12/FSMC_NE4 --- 主片选(TFT OLED 和 AD7606)

其他的控制IO:

PH9/DCMI_D0/AD7606_OS0 ---> AD7606_OS0 OS2:OS0 选择数字滤波参数
PH10/DCMI_D1/AD7606_OS1         ---> AD7606_OS1
PH11/DCMI_D2/AD7606_OS2         ---> AD7606_OS2
PH12/DCMI_D3/AD7606_CONVS

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      22792  2013-05-14 15:49  AD7606\bsp_ad7606.c

     文件      12017  2013-05-27 11:24  AD7606\bsp_spi_ad7606.c

     文件       3999  2013-05-30 16:00  AD7606\模块接口简要说明.txt

     目录          0  2014-07-09 08:46  AD7606

----------- ---------  ---------- -----  ----

                38808                    4


评论

共有 条评论