一、认识HT45F75
- 一句话简介
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功能
- 工作电压
f SYS = 8MHz:2.2V〜5.5V
f SYS = 12MHz:2.7V〜5.5V
f SYS = 20MHz:4.5V〜5.5V - 在V DD = 5V时,使用20MHz系统时钟时,指令周期高达0.2μs
- 提供暂停和唤醒功能,以降低功耗。
- 4 种振荡模式:
- 外部高频晶振 – HXT
- 外部32.768kHz晶振 – LXT
- 内部高频RC – HIRC
- 内部32kHz RC – LIRC - 多种工作模式:正常、低速、空闲和休眠
- 内建4.8MHz,4.8×2MHz和4.8×3MHz振荡器,无需外部元件
- 所有指令都可在1~3个指令周期内完成
- 查表指令
- 115 条功能强大的指令系统
- 8级子程序嵌套(8 层堆栈)
- 位操作指令
外围功能
- Flash程序存储器:4K×16
- RAM数据存储器:256x8
- True EEPROM存储器:64×8
- IAP 功能
- 看门狗定时器功能
- 27 个双向I/O 口
- 2 个引脚与外部中断口共用
- 多个定时器模块,用于时间测量,捕捉输入,比较匹配输出,PWM输出或单脉冲输出功能
- 双时基功能,可提供固定时间的中断信号
- 2 组差分通道20 位分辨精度的Delta-Sigma型A/D转换器
- 低压复位功能
- 低压检测功能
- 内建一组带旁路功能的LDO,可提供电源给PGA、A/D 转换器或外部传感器
- 串行接口模块 – SIM,用于SPI 或 I2C 通信
- 带IR载波的UART 模块
- 内置体脂电路
- Flash程序存储器烧录可达100,000 次
- Flash程序存储器数据保留> 10年
- True EEPROM数据存储器烧录可达1,000,000 次
- True EEPROM数据存储器数据保留> 10年
- 封装类型:48-pin LQFP
上述资料详情均来自Holtek官方网站---->HT45F75产品介绍
二、开发入门
(一)硬件环境搭建
1、开发工具准备
- HT45F75开发板
注意:若是需要能够在线调试功能的话,需要换成HT45V75芯片。
Holetk的可在线调试的芯片基本都是V系列的(内置在线调试电路),F系列的适合用于量产。
- e-Link 在线侦错调试器
每台e-Link初次使用之前需要经过启用程序才能开始使用
也支持ICP刻录功能(在线调试:eLink + HT45V75)。不支持脱机烧录,仅适用于工程验证,不适用于量产。
- e-WritePro 通用型可离线OTP/Flash MCU烧录器
对于HT45F75适合用什么工具开发,官网上也给出了说明,不同的MCU使用的开发工具和环境可能不同。
请参考MCU工具索引。
2、自制HT45F75开发板
自己准备HT45F75开发板,首先第一步要做的就是在官网上找相关资料,从绘制原理图开始。
查找HT45F75相关资料可以直接在Holtek官网上搜索--->HT45F75搜索结果
我找到的HT45FV75典型应用外围电路图如下,可按照此电路图来制作自己的HT45F75开发板。
(二)软件环境搭建
1、软件工具准备
- e-Link (仿真器)搭配HT-IDE3000软件(提供客户直接在应用板上侦错的MCU开发工具)。下载链接
- e-WritePro (烧录器)搭配HOPE3000 /HOPE3000 For HT8051软件。下载链接
2、仿真器的使用与开发环境的搭建
因为我采用的是 e-link+HT45V75 (可在线调试)的模式。
所以我主要介绍我在初次使用e-Link和HT-IDE3000中的相关做法。
在初次使用e-Link 工具和HT-IDE3000 软件中我参考的文件如下,可按照我提供的文件顺序搭建环境。
- e-Link注册步骤说明
- e-Link使用问题及解决办法
- e-Link for 8-Bit MCU ICP使用手册
- Holtek Flash MCU快速入门手册
- HT-IDE3000使用手册
- Holtek e-Link for 8-bit MCU OCDS User’s Guide
可在 MCU工具说明文件查找更多说明文件。
注意:如果是买的新的e-Link,可以询问下卖家是否已经注册,如果已经注册可以不用再注册一次。
如果上述文档在官网上没有全部找到,可以在我的资源下载。
其中关于HT-IDE3000 软件的使用,在文档中HT-IDE3000使用手册 从安装到新建工程已经调试的方法图文描述的很清楚,直接参考文档中的操作即可,不同版本的HT-IDE3000可能有些微的不同。
(三)配置HT45F75串口
在自己写代码之前,我在官网上找到一个同类型芯片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官方网站,只是按照我喜欢的顺序和方式整理编辑,仅供大家参考。如有不妥或错误之处烦请热心指出,我定及时改正。