单片机与DSP无位置控制:主程初始化与换相流程详解

0 下载量 9 浏览量 更新于2024-08-31 1 收藏 183KB PDF 举报
在单片机与DSP联合设计的无位置传感器控制系统中,软件流程的设计至关重要。系统的核心部分在于主程序`main()`,该程序首先进行一系列初始化步骤。首先,对DSP内核时钟、预分频器、AD采样时钟、各种外设中断,如PWM和GP10等进行配置,这些设置确保了系统的稳定运行和精确控制。PWM的占空比、不导通相的选择以及D上升沿触发器的触发信号周期都在这里被设定,这些参数直接影响电机的驱动性能。 其次,利用无刷直流电机的模型仿真结果,初始化开环起动时间和换相标志,如Flag,它是一个关键变量,用来表示电机的六个不同换相状态,其值会在0到5之间循环变化。程序会定义两个数组,一个是换相数组Phase[8],记录不同换相状态对应的PWM驱动行为;另一个是不导通相端电压选择数组FloatSelect[8],用于决定何时加载哪个电压到模拟多路开关ADG409上。 在程序初始化阶段,通过读取电机换相表,电机会被暂时锁定在某个位置,此时的PWM占空比较小,以减小电机绕组中的电流,防止启动时的抖动。接着,通过设定换相标志,逐步改变电机的驱动状态。在延时之后,换相标志会递增,程序会从换相表数组中获取下一个值并写入ACTR寄存器,开始电机的启动过程。然后进入一个软件循环,等待中断事件的发生,如定时器中断,标志着换相过程的开始。 当电机达到一定的反电动势阈值后,系统会切换到闭环控制状态,这时DSP会启用CAP中断来检测第一个不导通相的反电动势过零点,以此作为进入CAP中断子程序的触发信号。整个软件流程精心设计,旨在实现对无位置传感器无刷直流电机的精确控制,确保系统的高效、稳定运行。附录中提供了具体的主函数初始化代码,供开发者参考和调试。