TM7707 评估前做的功课

您所在的位置:网站首页 tm7705模块 TM7707 评估前做的功课

TM7707 评估前做的功课

2023-06-05 12:54| 来源: 网络整理| 查看: 265

目录

硬件

模拟输入范围

转换速度与有效位数

数字电平匹配

建立时间

基准电压

软件

寄存器

硬件

        MCU 3.3V 平台;

        ADC mclk 2.4576mhz

模拟输入范围 在非缓冲模式下,共模输入范围是从 GND 到 V DD 。模拟输入电压的绝对值处在 GND-30mV 和 V DD +30mV 之间。 在缓冲模式下,模拟输入端能处理更大的电 源阻抗,但绝对输入电压范围被限制在 GND+50 mV 到 V DD +30mV 之间。 转换速度与有效位数

        3.3V

        约13位有效位数@500Hz

        5.0V 

        13位有效位数@500Hz

       

数字电平匹配

        这里主要看MCU3.3V,ADC5V情况的适配情况

        MCLK如果是外部提供一定要注意电平

         3.3V端接受5V端电平,可以接个分压电阻。

         5V端接受3.3V电平,可以直连。

 

建立时间

这里主要讲2个通道切换时,需要建立的时间。

在TM7707的数据手册上我并没有直接找到直接描述建立时间。下面是在ADI的一篇文档中的描写

01 (analog.com)

 简单理解成切换通道需要的建立时间是3个转换周期吧。

基准电压

 

软件 寄存器

这里重点讲下面这个寄存器,在看到这个手册时,我以为TM7707没有时钟分频,外部时钟最大2.

5mhz.FS111~8 也没有介绍真奇怪。

但是在一些帖子上看到别人使用TM7707 这部分的配置按照TM7705可以正常工作,我又找到了AD7707,结合网友的实测,应该可以得出一些结论了。

TM7707

 

AD7707

 

 安富莱的驱动代码(这里需要注意FS_500HZ = 0x04, 是错误的按照数据手册 正确的是FS_500HZ = 0x03)

tm7705.h

#ifndef __TM7705_H #define __TM7705_H #include "main.h" #define TM_CS_H HAL_GPIO_WritePin(GPIOG,GPIO_PIN_7,1); #define TM_CS_L HAL_GPIO_WritePin(GPIOG,GPIO_PIN_7,0); #define TM_RST_H HAL_GPIO_WritePin(GPIOG,GPIO_PIN_6,1); #define TM_RST_L HAL_GPIO_WritePin(GPIOG,GPIO_PIN_6,0); void InitTM7705(void); void TM7705_CalibSelf(uint8_t _ch); void TM7705_SytemCalibZero(uint8_t _ch); void TM7705_SytemCalibFull(uint8_t _ch); uint16_t TM7705_ReadAdc(uint8_t _ch); #endif

tm7705.c 

#include "tm7705.h" #include "main.h" /***********************以下为TM7705的标准库*****************************/ /************************************************************************/ /* 通道1和通道2的增益,输入缓冲,极性 */ #define __CH1_GAIN_BIPOLAR_BUF (GAIN_1 | UNIPOLAR | BUF_NO) #define __CH2_GAIN_BIPOLAR_BUF (GAIN_1 | UNIPOLAR | BUF_NO) /* TM7705模块可以直接插到STM32-V5开发板nRF24L01模块的排母接口上。 TM7705模块 STM32F407开发板 SCK ------ PB3/SPI3_SCK DOUT ------ PB4/SPI3_MISO DIN ------ PB5/SPI3_MOSI CS ------ PF7/NRF24L01_CSN DRDY ------ PH7/NRF24L01_IRQ RST ------ PA4/NRF905_TX_EN/NRF24L01_CE/DAC1_OUT (复位 RESET) */ /* 通信寄存器bit定义 */ enum { /* 寄存器选择 RS2 RS1 RS0 */ REG_COMM = 0x00, /* 通信寄存器 */ REG_SETUP = 0x10, /* 设置寄存器 */ REG_CLOCK = 0x20, /* 时钟寄存器 */ REG_DATA = 0x30, /* 数据寄存器 */ REG_ZERO_CH1 = 0x60, /* CH1 偏移寄存器 */ REG_FULL_CH1 = 0x70, /* CH1 满量程寄存器 */ REG_ZERO_CH2 = 0x61, /* CH2 偏移寄存器 */ REG_FULL_CH2 = 0x71, /* CH2 满量程寄存器 */ /* 读写操作 */ WRITE = 0x00, /* 写操作 */ READ = 0x08, /* 读操作 */ /* 通道 */ CH_1 = 0, /* AIN1+ AIN1- */ CH_2 = 1, /* AIN2+ AIN2- */ CH_3 = 2, /* AIN1- AIN1- */ CH_4 = 3 /* AIN1- AIN2- */ }; /* 设置寄存器bit定义 */ enum { MD_NORMAL = (0


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3