本帖最后由 芯圣电子官方QQ 于 2023-7-20 10:12 编辑
今天收到了HC89F0541开发板,是从芯圣原厂寄过来的,拆开包裹,开始着手关于HC89F0541开发板的测试了。想了些许时间,打算从以下几个步骤进行HC89F0541开发板的测试。
本次关于HC89F0541开发平台的测试主要基于双路互补PWM波项目,具体测试步骤为:
1、开箱展示
2、软件安装
3、程序测试
4、测试心得
1、开箱展示
拆开包裹,里面是白色的塑料盒子,里面除了一个精致的开发板以外,还有一张关于HC89F0541开发板主要特色介绍的纸张,该纸张附着了芯圣官网以及官方淘宝店铺的二维码、网址。如图1.1-1.4所示:
图1.1
图1.2
图1.3
图1.4
开发板中间位置开了好几条槽口,只有少数几个点还连接着,使得PCB板十分脆弱,这一点的用意我不是很懂。有一点关于电源的知识,就是当高压区和低压区的距离不够的时候容易打火,造成安全事故,不符合安规,这时一个解决办法就是开槽来增加爬电距离,进而满足安规。但是HC89F0541上的电压也就3.3V和5V,这么做是什么原因呢?**知道的朋友不吝赐教。
2、软件安装
HC89F0541是国产的单片机,按道理来说编译环境也应该是自主开发的,然而该开发板还是用的Keil软件,既然这样,就开始keil软件的安装吧。从官网下载Keil 51软件的最新版本,装好HC Link以及STMicroelectronics驱动,就可以导入例程进行测试了。
2.1 keil软件安装
keil软件安装包链接见附录。直接运行安装包,然后添加HC Link驱动就可以导入例程并下载程序了,编译、连接、下载三步。如图2.1.1、2.1.2、2.1.3所示:
图2.1.1
图2.1.2
图2.1.3
3、程序测试
本次测试项目的程序为双路互补PWM波程序,数据手册部分如图3.1:
图3.1
主程序如下:
#define ALLOCATE_EXTERN
#include "HC89F0541.h"
/***************************************************************************************
* @实现效果 P14,P15输出频率为1.955KHz,占空比为33.4%的方波,两路互补输出,死区时间
* 为18.5us。
***************************************************************************************/
void main()
{
/************************************系统初始化****************************************/
CLKSWR = 0x51; //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
CLKDIV = 0x01; //Fosc 1分频得到Fcpu,Fcpu=16MHz
/*************************************PWM初始化****************************************/
P1M4 = 0xC2; //P14设置为推挽输出
P1M5 = 0xC2; //P15设置为推挽输出
PWM0_MAP = 0x14; //PWM0通道映射P14口
PWM01_MAP = 0x15; //PWM01通道映射P15口
PWMM |= 0x01; //PWM0自动重载
PWM0C = 0x01; //PWM0和PWM01均为高有效,时钟8分频
//互补模式:互补模式中对于PWM0的有效期间为占空比期间,PWM01的有效期间为占空比的互补期间
//PWM0组的周期寄存器 调节PWM组的周期
//PWM0组的占空比寄存器 调节PWM组的占空比
//PWM0组的死区寄存器 调节PWM组的死区时间
//周期计算 = 0x03ff / (Fosc / PWM分频系数) (Fosc见系统时钟配置的部分)
// = 0x03ff /(16000000 / 8)
// = 1023 /2000000
// = 511.5us 约1.955KHZ
PWM0PH = 0x03; //周期高4位设置为0x03
PWM0PL = 0xFF; //周期低8位设置为0xFF
//占空比计算= 0x0155 / (Fosc / PWM分频系数) (Fosc见系统时钟配置的部分)
// = 0x0155 /(16000000 / 8)
// = 341 /2000000
// = 170.5us 占空比为 170.5/511.5 = 33.4%
PWM0DH = 0x01; //PWM0,PWM01高4位占空比0x01
PWM0DL = 0x55; //PWM0,PWM01低8位占空比0x55
//死区调节的是PWM01相对于PWM0左右各缩减的时间
//死区计算 = 0x025 / (Fosc / PWM分频系数) (Fosc见系统时钟配置的部分)
// = 0x025 /(16000000 / 8)
// = 37 /2000000
// = 18.5us
PWM0DTH = 0x00; //PWM0,PWM01高4位死区时间0x00
PWM0DTL = 0x25; //PWM0,PWM01低8位死区时间0x25
PWMEN |= 0x11; //使能PWM0和PWM01
while(1);
}
示波器观察到的结果如图3.1、3.2。从示波器上的结果来看波形是没有完全互补的,再说例程上也没说它完全互补呀。在互补驱动MOS管组成的H桥方面必须要防止死区电压,否则全部为高电平或者全部为低电平就会烧坏MOS管。
4、测试心得
本次测试既有满意的地方又有不满意的地方。
首先呢,官方提供了统一整理的资料,并且这些资料非常全面,包含开发工具、参考例程、相关驱动等等,对初学者快速入门是有很大帮助的,再次感谢芯圣公司提供测试HC89F0541单片机的机会。其次例程里面的程序注释得细致,每一个参数是怎么来的、为什么要这么设置,都讲述得十分清楚了,上面粘贴的程序就是一个很好的见证。
不过本次测试也有不尽人意的地方。开发板的边缘有些许毛刺,容易伤到手。但是最让我困惑的地方在这一方面,我下载好程序后,拔出USB口,拿到示波器那边测试,上电后发现没有波形,于是我再次检查PWM波输出引脚,发现没有错误;再次进行同样的步骤还是没有波形。我用万用表量到VCC对GND的电压为0V,这是什么情况,难道我把板子烧坏了?我取下板子,量到VCC对GND的电阻有几十千欧姆,这就奇怪了。再次下载程序,这次将电脑带过去终于看到了互补的PWM波,难道下载程序不后断电会清除吗?这不可能,Flash会保留程序的。我检查原理图,发现调试器哪里有两个电压:3.3V和5V,5V电压是受调试芯片控制的,下载程序后拔出开发板再上电,5V电压就不存在了。为什么下载程序后断电再上电,5V电压就没了,具体原因**知道的朋友能帮忙解释一下。该部分原理图如图4.1所示:
图4.1
总之,本次关于双路互补PWM波测试达到既定目标,再次感谢21ic论坛和芯圣公司(holychip)提供的测评机会。
|