打印
[通用8051核FLASH系列]

【芯圣SDK-HC89F0541测评】+双路互补PWM波测试

[复制链接]
3354|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 芯圣电子官方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)提供的测评机会。








5.gif (6.97 MB )

图3.1

图3.1

4.gif (9.65 MB )

图3.2

图3.2

keil 51链接.zip

231 Bytes

HC89F0541Register Example V1.0.1.0.rar

2.13 MB

测试程序

HC89F0541资料链接.zip

243 Bytes

资料

使用特权

评论回复
沙发
zeshoufx| | 2020-8-10 21:48 | 只看该作者
谢谢分享【双路互补PWM波测试】

使用特权

评论回复
板凳
帅气的菜鸟| | 2020-8-28 13:43 | 只看该作者
中间的空槽是要告诉你,这东西可以掰分用

使用特权

评论回复
地板
mxkw0514|  楼主 | 2020-8-28 14:57 | 只看该作者
帅气的菜鸟 发表于 2020-8-28 13:43
中间的空槽是要告诉你,这东西可以掰分用

原来是这样,多谢了

使用特权

评论回复
评论
帅气的菜鸟 2020-8-28 16:54 回复TA
我都掰了好几个了,然后拿LINK那一块去烧录其他芯片,省下买工具的钱 
5
caizhiwei| | 2020-10-7 22:17 | 只看该作者
数据手册,sdk什么的,都是在哪里下载的?官网好像找不到~

使用特权

评论回复
6
caizhiwei| | 2020-10-7 22:23 | 只看该作者

使用特权

评论回复
7
1123506| | 2022-3-24 17:24 | 只看该作者
上海芯圣一级代理 出芯圣IC   需要联系企鹅号  2914373240

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

588

帖子

5

粉丝