FastBond体外诊断之皮肤阻抗测量的交流激励产生
医学测量中,呼吸频率和皮肤阻抗都是重要的分析参数,其中需要测量的一个重要参数就是人体阻抗,阻抗测量需要一个高精度、宽动态的信号源用作激励,dds就很适合。
标签
AD9837
DDS
体外诊断
音翼
更新2021-12-13
987

项目介绍:

用于生命体征监测 (VSM) 的设备正在推动医疗行业的变革,使我们能够随时随地监测我们的生命体征和活动。

医学测量中,呼吸频率和皮肤阻抗都是重要的分析参数,其中需要测量的一个重要参数就是人体阻抗阻抗测量需要一个高精度、宽动态的信号源用作激励,dds就很适合。

这次设计的项目就是体外诊断这一主题中,用作皮肤阻抗测量的交流激励,产生一个35khz左右的正弦波信号。

项目用到的板卡、芯片、模块、仪器、设备等介绍:

1、主控:Arduino Mega 2560

Arduino Mega2560也是采用USB接口的核心电路板,它最大的特点就是具有多达54路数字输入输出,特别适合需要大量IO接口的设计。Mega2560的处理器核心是ATmega2560, 同时具有54路数字输入/输出口(其中16路可作为PWM输出),16路模拟输入,4路UART接口,一个16MHz晶体振荡器,一个USB口,一个电源 插座,一个ICSP header和一个复位按钮。Arduino Mega2560也能兼容为Arduino UNO设计的扩展板。Arduino Mega2560已经发布到第三版,与前两版相比有以下新的特点:

在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。
改进了复位电路设计。
USB接口芯片由ATmega16U2替代了ATmega8U2。

概要
· 处理器 ATmega2560
· 工作电压 5V
· 输入电压(推荐) 7-12V
· 输入电压(范围) 6-20V
· 数字IO脚 54 (其中16路作为PWM输出)
· 模拟输入脚 16
· IO脚直流电流 40 mA
· 3.3V脚直流电流 50 mA
· Flash Memory 256 KB (ATmega328,其中8 KB 用于 bootloader)
· SRAM 8 KB
· EEPROM 4 KB
· 工作时钟 16 MHz

Fkeocb6JfUBd47SDeCSwarJcNC-3

2、ADI:AD9837 ——直接数字频率合成器(DDS) 

FuoANdb9IPwSuFhwWZ3V-vOZcj2t

AD9837是一款低功耗、可编程波形发生器,能够产生正弦波、三角波和方波输出。各种类型的检测、致动和时域反射(TDR)应用都需要波形发生器。输出频率和相位可通过软件进行编程,调整简单。频率寄存器为28位:时钟速率为16 MHz时,可以实现0.06 Hz的分辨率;而时钟速率为5 MHz时,则可以实现0.02 Hz的分辨率。

AD9837通过一个3线串行接口写入数据。该串行接口能够以最高40 MHz的时钟速率工作,并且与DSP和微控制器标准兼容。该器件采用2.3 V至5.5 V电源供电。

官网地址:https://www.analog.com/cn/products/ad9837.html#product-overview

数据手册:https://www.analog.com/media/cn/technical-documentation/data-sheets/AD9837_cn.PDF

3、Maxim:MAX17634C

4.5V 至 36V、4.25A、高效、同步降压 DC-DC 转换器

FqII3b-lFmowJJ1aXc1JQoMstXLU

官网地址:https://www.maximintegrated.com/en/products/power/switching-regulators/MAX17634C.html

数据手册:https://datasheets.maximintegrated.com/en/ds/MAX17634A-MAX17634C.pdf

关键性代码及说明:

产生35KHz正弦波信号的代码如下,需要提前安装一个库文件。

#include <SPI.h>
#include <SparkFun_MiniGen.h>


MiniGen gen;

void setup()
{
 
  gen.reset();
  delay(2000);
  
  
  gen.setMode(MiniGen::SINE);
  
 
  static float frequency = 20000.0;
  
 
  unsigned long freqReg = gen.freqCalc(frequency);
  
  gen.adjustFreq(MiniGen::FREQ0, freqReg);
}

void loop()
{
  
  static float frequency;
  if(frequency >= 20000.0)
    frequency = 18000.0;
 
  unsigned long freqReg = gen.freqCalc(frequency);
  
 
  gen.adjustFreq(MiniGen::FREQ0, freqReg);
  delay(100);
}

功能演示结果及说明:

FqBIaQ_3WQXBPBZZrCeq0VF-h6M1Fv9wT5yqdiXnfWWGy2vpu3D4Cl25

对本活动的心得体会

可能是因为面包板接线的原因,以及杜邦线不是很稳定,导致每次初始化调试的时候出来的波形都不是特别的稳定,这个后期需要进一步的改进。本次活动中也学到了很多,自己的动手能力,查询数据手册等等,非常感谢的得捷和电子森林的这个活动。

附件下载
SparkFun_MiniGen_Arduino_Library-master.zip
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号