打印
[MCU]

控制三相电机

[复制链接]
647|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
午夜粪车|  楼主 | 2020-4-4 11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前一直有学习2407,突然就开始弄一个28069控制三相电机的项目。关于28069我只有一份英文datasheet。有一个控制驱动板,最近的目标是一个月内能带电机转动。请各位大神指点一下我该怎么做,谢谢了

使用特权

评论回复

相关帖子

沙发
chuxh| | 2020-4-4 11:54 | 只看该作者
看资料

使用特权

评论回复
板凳
午夜粪车|  楼主 | 2020-4-4 11:57 | 只看该作者

我现在手头也有28335的资料正在看。谢谢大神指点一下

使用特权

评论回复
地板
llljh| | 2020-4-4 11:59 | 只看该作者
有2407的基础   应该很快能入门啊   

使用特权

评论回复
5
pengf| | 2020-4-4 12:02 | 只看该作者
去官网下载个motorware,该有的都会有

使用特权

评论回复
6
xxrs| | 2020-4-4 12:06 | 只看该作者
motorware  controlSUITE都很好

使用特权

评论回复
7
午夜粪车|  楼主 | 2020-4-4 12:08 | 只看该作者

#include "DSP28x_project.h"
void InitEGpio(void)
        {
        EALLOW;
        GpioCtrlRegs.GPAPUD.bit.GPIO0=1;
        GpioCtrlRegs.GPAPUD.bit.GPIO1=1;
        GpioCtrlRegs.GPAMUX1.bit.GPIO0=1;
        GpioCtrlRegs.GPAMUX1.bit.GPIO1=1;
        EDIS;
        }

void PWM1(void)
        {
    InitEGpio();
        EPwm1Regs.TBPRD=600;
        EPwm1Regs.CMPA.half.CMPA=400;
        EPwm1Regs.CMPB=500;
        EPwm1Regs.TBCTL.bit.CTRMODE=TB_COUNT_UPDOWN;
        EPwm1Regs.TBCTL.bit.PHSEN=TB_DISABLE;
        EPwm1Regs.TBCTL.bit.PRDLD=TB_SHADOW;
        EPwm1Regs.TBCTL.bit.SYNCOSEL=TB_SYNC_DISABLE;
        EPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV1;
        EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV1;
        EPwm1Regs.CMPCTL.bit.SHDWAMODE=CC_SHADOW;
        EPwm1Regs.CMPCTL.bit.SHDWBMODE=CC_SHADOW;
        EPwm1Regs.CMPCTL.bit.LOADBMODE=CC_CTR_ZERO;
        EPwm1Regs.CMPCTL.bit.LOADAMODE=CC_CTR_ZERO;
        EPwm1Regs.AQCTLA.bit.CAU=AQ_SET;
        EPwm1Regs.AQCTLA.bit.CAD=AQ_CLEAR;
        EPwm1Regs.AQCTLB.bit.CAD=AQ_SET;
        EPwm1Regs.AQCTLB.bit.CAU=AQ_CLEAR;
        }
void main(void)
{

                InitSysCtrl();
                DINT;
                InitPieCtrl();
                IER=0x0000;
                IFR=0x0000;
                InitPieVectTable();
                PWM1();
                while(1);
}
这是我编写的调试pwm的程序,烧进去测试28069的PWM口,没有信号,怎么回事。烧到28335的板子就有信号

使用特权

评论回复
8
morrisk| | 2020-4-4 12:11 | 只看该作者
还是不好确认问题   

使用特权

评论回复
9
午夜粪车|  楼主 | 2020-4-4 12:13 | 只看该作者

#include "DSP28x_Project.h"
void initsysCtrl(void)
{
        DisableDog();
        EALLOW;
        SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1;
        (*Device_cal)();
        SysCtrlRegs.PCLKCR0.bit.ADCENCLK=0;
        EDIS;
        //IntOsclSel();
        InitPll(DSP28_PLLCR,DSP28_DIVSEL);
        InitPeripheralClocks();
}
void initGPIO(void)
{
        EALLOW;
        GpioCtrlRegs.GPAMUX1.bit.GPIO1=0;
        GpioCtrlRegs.GPADIR.bit.GPIO1=1;
        EDIS;
}
void delay(void)
{
        int i,j;
        for(i=0;i<2000;i++)
                for(j=0;j<100;j++);

        }


void main(void)
{
        initsysCtrl();
        DINT;
        InitPieCtrl();
        IER=0x0000;
        IFR=0x0000;
        InitPieVectTable();
        initGPIO();
        while(1)
        {
                GpioDataRegs.GPADAT.bit.GPIO1=0;
                delay();
                GpioDataRegs.GPADAT.bit.GPIO1=1;
                delay();
}
}
这个简单地,给GPIO1 设置成方波信号输出。示波器测GPIO1,没有信号。看CCS的register窗口,GPADAT寄存器的值不变,这是怎么回事。

使用特权

评论回复
10
guoyt| | 2020-4-4 12:15 | 只看该作者
GPIO控制输出改为SET和Clear看看

使用特权

评论回复
11
午夜粪车|  楼主 | 2020-4-4 12:19 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

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

本版积分规则

867

主题

10194

帖子

3

粉丝