HT45F75是Holtek专为人体脂肪秤应用而设计的。
该单片机集成了体脂秤电路,是一款A/D 型具有8 位高性能精简指令集的Flash 单片机,内置的多通道20-bit Delta-Sigma 型A/D(ΔΣA/D)转换器专门为需要 具有低噪声和高准确度的A/D 转换的产品而设计。该单片机具有一系列功能和特性,其Flash 存储器可多次编程的特性给用户提供了极大的方便。存储器方面,还包含了一个RAM 数据存储器和一个可用于存储序号、校准数据等非易失性数据的True EEPROM 存储器。
在模拟特性方面,该单片机包含一个多通道20-bit ΔΣA/D 转换器和一个可编程增益放大器PGA。还带有多个使用灵活的定时器模块,可提供定时功能、脉冲产生功能及PWM 产生功能。另外,内部LDO功能为内部和外部设备提供了各种电源选项。内部看门狗定时器、低电压复位和低电压检测等内部保护特性, 外加优秀的抗干扰和ESD 保护性能,确保单片机在恶劣的电磁干扰环境下可靠地运行。
该单片机提供了多种内部和外部振荡器功能选项,且内建完整的系统振荡器,无需外接元件。其在不同工作模式之间动态切换的能力,为用户提供了一个优化单片机操作和减少功耗的手段。
测量人体脂肪使用的技术是,测量流经人体的交流电流,然后将其用于计算人体脂肪值。
重量测量电路使用一个外部称重传感器输出信号,该信号在通过OPA放大后,再通过ADC进行转换,然后读取相应的值计算体重。
脂肪测量电路使用交流信号通过电极片流过人体。在通过内部OPA进行放大后,再通过ADC进行转换之后,测量值就是一个代表人体阻抗的值,用于计算相应的人体脂肪值。
CPU功能
外围功能
上述资料详情均来自Holtek官方网站---->HT45F75产品介绍
注意:若是需要能够在线调试功能的话,需要换成HT45V75芯片。
Holetk的可在线调试的芯片基本都是V系列的(内置在线调试电路),F系列的适合用于量产。
每台e-Link初次使用之前需要经过启用程序才能开始使用
也支持ICP刻录功能(在线调试:eLink + HT45V75)。不支持脱机烧录,仅适用于工程验证,不适用于量产。
对于HT45F75适合用什么工具开发,官网上也给出了说明,不同的MCU使用的开发工具和环境可能不同。
请参考MCU工具索引。
自己准备HT45F75开发板,首先第一步要做的就是在官网上找相关资料,从绘制原理图开始。
查找HT45F75相关资料可以直接在Holtek官网上搜索--->HT45F75搜索结果
我找到的HT45FV75典型应用外围电路图如下,可按照此电路图来制作自己的HT45F75开发板。
因为我采用的是 e-link+HT45V75 (可在线调试)的模式。
所以我主要介绍我在初次使用e-Link和HT-IDE3000中的相关做法。
在初次使用e-Link 工具和HT-IDE3000 软件中我参考的文件如下,可按照我提供的文件顺序搭建环境。
可在 MCU工具说明文件查找更多说明文件。
注意:如果是买的新的e-Link,可以询问下卖家是否已经注册,如果已经注册可以不用再注册一次。
如果上述文档在官网上没有全部找到,可以在我的资源下载。
其中关于HT-IDE3000 软件的使用,在文档中HT-IDE3000使用手册 从安装到新建工程已经调试的方法图文描述的很清楚,直接参考文档中的操作即可,不同版本的HT-IDE3000可能有些微的不同。
在自己写代码之前,我在官网上找到一个同类型芯片BH66F2650的工程(下载链接)。
通过阅读其中的代码,了解到Holtek单片机的控制代码都是直接对寄存器进行操作,因为BH66F2650的寄存器配置和HF45F75的寄存器配置有所不同,所以并不能直接使用BH66F2650的样例工程对HT45F75进行开发。但是可以在编写的过程中进行相关的参考,以检查自己配置的完整性。
所以在实际进行编写代码的过程中,更多的是参考数据手册simHT45F75V110(下载链接)文档中对相关寄存器的描写。
下面以常用的串口配置举例说明。
找到simHT45F75V110文档中对串口部分的说明
带 IR 载波的 UART 模块串行接口
UART 模块特性
- 全双工通用异步接收器 / 发送器
- 8 位或 9 位传输格式
- 奇校验、偶校验或无校验
- 1 位或 2 位停止位
- 8 位预分频的波特率发生器
- 奇偶、帧、噪声和溢出检测
- 支持地址匹配中断(最后一位 =1)
- 独立的发送和接收使能
- 2-byte FIFO 接收缓冲器
- 发送和接收中断源:
- 发送器为空
- 发送器空闲
- 接收完成
- 接收器溢出
- 地址匹配
其中在串口初始化的过程中,我们需要配置的寄存器有UCR1寄存器和UCR2寄存器(用于配置串口的功能)以及BRG寄存器(用于配置串口波特率)。
在具体的寄存器解释说明中,每一位(Bit)的名字都是用英文大写描述的,我们在代码中则是直接下划线+对应的小写字母即可给该位进行赋值操作。参照寄存器说明文档,具体的HT45F75串口的初始化配置代码如下:
/********************************************************************
Function: Uart_Init 串口初始化
INPUT :
OUTPUT :
NOTE :
********************************************************************/
void Uart_Init(void)
{
//设置引脚为RX/TX
_txen = 1;
_rxen = 1;
//UCR1 寄存器
_uarten = 1;//使能串口
_bno = 0;//8位数据位
_pren = 0;//无奇偶校验
//_prt = 1;//奇校验
_stops = 1;//一位停止位
_txbrk = 0;//没有暂停字发送
//UCR2寄存器
_brgh = 0;//低速波特率
_txen = 1;//串口发送使能
_rxen = 1;//串口接收使能
//BRG寄存器
_brg = 0x1E;//设置波特率2400
}
注意:在直接配置寄存器的情况下写相关代码,一定要仔细阅读数据手册呀!!!
Tip:
本篇博客主要记录我入坑HT45F75的过程,其中大部分资料文档均来自Holtek官方网站,只是按照我喜欢的顺序和方式整理编辑,仅供大家参考。如有不妥或错误之处烦请热心指出,我定及时改正。