智能称体脂称实现(datasheet篇)
(本文均出于个人理解而写,仅用于学习和交流,某些过程可能不一定正确,希望各位提出意见进行交流,共同进步)
TI的参考方案是采用AFE4300芯片 同时进行生物阻抗身体成分测量和体重测量,以MSP430F5528 微控制器用于保留校准数据并计算重量、TBW、ECW 以及身体成分分析,采用 TI CC2541 的 BLE 模块连接。因为我们没有MSP430,所以我们没有直接套用他的方案,我们主处理器采用的是STM32(仅用来实验)。
AFE4300简介
AFE4300 是一款低成本模拟前端, 此模拟前端组装有两个独立的信号链: 一个信号链用于体重计 (WS) 测量, 而另外一个信号链用于体成分测量 (BCM) 分析。也就是说,我们使用此芯片,便不用自己去搭运放去测量人体阻抗了,TI帮我们把他集成为一个芯片,这样一来降低了我们开发的难度,另一方面,由于直接集成,外部干扰会更加小,性能一般会比自己搭的更好。
AFE4300的特性如下图(来源于datasheet)
AFE4300 datasheet
管脚分配
STE(54),SCLK(54),SDIN(58),SDOUT(56):用于SPI通信。
SPI读写
内部原理
体重测量部分
(2)寄存器ADC_CONTROL_REGISTER2:ADCREF连接到VLDO作为电桥正极,即ADC_REF_SEL位置为00(默认的)
人体阻抗测量部分
人体阻抗测量部分的框图如下所示:
= 0x00FF → 255 kHz,DAC = 0x0001 → 1 kHz。但是如果是IQ模式的话,其频率收到分频数的影响,可由公式IQ_DEMOD_CLK = fCLK / (IQ_DEMOD_CLK_DIV_FAC) = BCM_DAC_FREQ × 4推算。
以IQ模式为例,使用IQ模式进行阻抗测量时,可按如下的步骤配置寄存器:
寄存器读写
void spiWrite (unsigned char spiAddr, unsigned short spiData)
apiAddr是寄存器的地址,spiData是要写入的数据,加入我们要把IOUT0设为负极,IOUT1设为正极,则只需要把第3位和第10位置为1即可,所以执行语句
spiWrite(0x0A,0x0408);
即可完成配置,其他寄存器的配置与此类似,具体见datasheet。
智能称体脂称实现(datasheet篇)的更多相关文章
- python案例——体脂率项目
通过一个人的身高.体重.年龄.性别,判断这个人的体脂率,并且反馈是否正常? 首先接到项目后一定要一步步细分任务,直到每个细分的任务都可以用代码来实现. 写代码之前,先要确定python版本的问题 然后 ...
- Python 案例一(计算人体体脂率)
#计算人体体脂率 #输入部分 #身高 personHeight = input("请输入你的身高(m):") personHeight = float(personHeight) ...
- python第一个程序:计算体脂率
主要是为了提醒自己要——保重 height = input('请输入身高(m):') weight = input('请输入体重(KG):') age = input('请输入年龄:') sex = ...
- 智能家居系统 Home Assistant 系列 --介绍篇
一. HomeAssistant 是什么? HomeAssistant是构建智慧空间的神器.是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation).群组化 ...
- Unity3D第三人称摄像机控制脚本
好久没有敲Blog该.感谢您的留言.注意.私人信件和其他支持,但我似乎没有办法继续自己曾经写了一篇博客系列,因为我在网上找到有关unity3D太少的内容,U3D相关的文章!.. 第三人称视角 第三人称 ...
- 挖掘机力矩限制器/挖掘机称重系统/挖泥机称重/Excavators load protection/Load moment indicator
挖掘机力矩限制器是臂架型起重机机械的安全保护装置,本产品采用32位高性能微处理器为硬件平台 ,软件算法采用国内最先进的液压取力算法,该算法吸收多年的现场经验,不断改进完善而成.本产品符合<GB1 ...
- Unity3D中的第三人称镜头的脚本控制
原地址:http://blog.csdn.net/mobanchengshuang/article/details/27591271 好久没有敲Blog了,谢谢大家的留言.关注.私信等支持,但是我好像 ...
- 智能合约语言Solidity教程系列2 - 地址类型介绍
智能合约语言Solidity教程系列第二篇 - Solidity地址类型介绍. 写在前面 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你 ...
- C++ 引用计数技术及智能指针的简单实现
一直以来都对智能指针一知半解,看C++Primer中也讲的不够清晰明白(大概是我功力不够吧).最近花了点时间认真看了智能指针,特地来写这篇文章. 1.智能指针是什么 简单来说,智能指针是一个类,它对普 ...
随机推荐
- Linux基础篇,文本数据的比较与排序:sort、uniq、comm、diff
一.sort sort命令用于将文本文件内容以行排序 sort [选项参数] [-o<输出文件>] [-t<分隔字符>] [+<起始栏位> -<结束栏位> ...
- Mysql大数据量问题与解决
今日格言:了解了为什么,问题就解决了一半. Mysql 单表适合的最大数据量是多少? 我们说 Mysql 单表适合存储的最大数据量,自然不是说能够存储的最大数据量,如果是说能够存储的最大量,那么,如果 ...
- String 对象-->toUpperCase() 方法
1.定义和用法 将字符串中所有的小写字符转换成大写字符,大写字符保持不变 返回转换后的结果字符串 语法: string.toUpperCase() 注意:不会改变字符串本身,仅以返回值的形式返回结果 ...
- 学习Salesforce | Einstein业务机会评分怎么玩
Einstein 业务机会评分(Opportunity Scoring)是销售团队的得力助手,通过分数以及研究影响分数的因素,确定业务机会的优先级,赢得更多交易. Einstein 业务机会评分可以给 ...
- stand up meeting 1/12/2016
part 组员 工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 UI测试和调整:页面跳转调整 3 查漏补缺,扫除UI b ...
- Spring Cloud 系列之 Gateway 服务网关(三)
本篇文章为系列文章,未读第一集的同学请猛戳这里: Spring Cloud 系列之 Gateway 服务网关(一) Spring Cloud 系列之 Gateway 服务网关(二) 本篇文章讲解 Ga ...
- python_ck01(虚拟环境管理)
拖拖拉拉的毛病还是依旧如初... 断断续续坚持三天总算把虚拟环境管理部分的内容给看完了. 对三天的知识点进行梳理,方便以后回顾. ①虚拟环境安装 用pip install + 包名的方式安装,涉及到的 ...
- AI vs PS 矢量 VS 位图
矢量图 AI最大可以放大64000%.不会失真,依然很清晰.原理是不同的点以及点与点之间的路径构成的,不论放大的多大,点在路径在,就可以精确的计算出它的区域.AI中无法直接编辑位图. 位图 代表PS, ...
- SpringBoot集成MyBatis底层原理及简易实现
MyBatis是可以说是目前最主流的Spring持久层框架了,本文主要探讨SpringBoot集成MyBatis的底层原理.完整代码可移步Github. 如何使用MyBatis 一般情况下,我们在Sp ...
- ESI web学习记录
Ezbypass 解出 放在php新特性的文章最后了,利用json反序列化脚本绕过disable_functions来get flag Ezupload 没解出 登陆页面查看源代码发现,备份文件泄露. ...