mxkw0514 发表于 2022-6-24 22:40

LKS32MC081评测+片内DAC生成正弦波

本帖最后由 mxkw0514 于 2022-6-27 10:09 编辑

       前几天收到凌鸥的开发板了包括LKS32MC081 MCU核心板和功率板(如图1-1所示),这次的开发板主要是面向电机应用,但是我首先不用它来测评电机相关的小应用,我想试一试片内DAC,很多单片机都有ADC模块,但是很少有DAC模块的,正好借着这个机会使用LKS32MC081单片机的片内DAC生成正弦波。


图1-1 LKS32MC081 MCU板和功率板实物图

      核心板LKS32MC081非常简洁,上面没有外部晶振,也没有复位按键(不过外留了焊盘),功率板布局十分紧凑,大电流的地方加厚了锡。但是我在使用杜邦线的时候,核心板上的杜邦线触碰到了半桥驱动器的LKS560的HO引脚(如图1-2所示),该引脚是低电平,后来就下不进程序了,应该是把芯片烧了),我太粗心了。没有办法,只能买上LKS32MC081C8T8将核心板上的坏了的芯片替换掉,开始是想在某宝上买来的,可能这个芯片不太常用,很少,还卖的特别贵,考虑再三,就在某创商城买了几片。话说核心板上有短路保护的呀(如图1-3所示),为什么会这样呢,还请指教。

图1-2功率板的半桥驱动器
图1-3 短路保护电路

图1-4 重新购买了样片
图1-5 芯片替换焊接
      LKS32MC081单片机有一个12位的片内DAC,但是数据手册中只有一段简略的介绍(如图1-6所示),其实我是很想看一看片内DAC的结构框图和功能框图(虽然这段介绍已经很具体了),官方给了一个DAC模块的例程,我在这个例程中进行了修改。
       首先我用波形绘制工具UltraWave软件(如图1-7所示)绘制一个正弦波,并将该波形文件导出(是一个数组),并添加到官方DAC例程中。DAC输出引脚固定位P0.0,使用SYS_AFE_DAC寄存器依次输出正弦波数组中的值(这里需要设置号最大值,包括1.2V、3V和4.85V三个选项),这里选择的是4.85V,整个程序如下所示。程序中的数组为一个波形的容量,点数越多,波形的平滑效果越好,如果点数太少,则很容易看到一个阶梯状的效果。


图1-6 DAC模块介绍。


图1-7 UltraWave软件界面
int main(void)
{
      Hardware_init(); /* 硬件初始化 */

      
      while (1)
      {
                unsigned charsin_tab[]={
   125,128,131,134,138,141,144,147,150,153,156,159,162,165,168,171,
   174,177,180,182,185,188,191,193,196,198,201,203,206,208,211,213,
   215,217,219,221,223,225,227,229,231,232,234,235,237,238,239,241,
   242,243,244,245,246,246,247,248,248,249,249,250,250,250,250,250,
   250,250,250,249,249,248,248,247,246,246,245,244,243,242,241,239,
   238,237,235,234,232,231,229,227,225,223,221,219,217,215,213,211,
   208,206,203,201,198,196,193,191,188,185,182,180,177,174,171,168,
   165,162,159,156,153,150,147,144,141,138,134,131,128,125,122,119,
   116,112,109,106,103,100, 97, 94, 91, 88, 85, 82, 79, 76, 73, 70,
   68,65, 62, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37, 35, 33, 31,
   29,27, 25, 27, 29, 27, 25, 23, 21, 19, 18, 16, 15, 13, 12, 11,
   9,    8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,
   0,    0,0,0,1,1,2,2,3,4,4,5,6,7,8,9,
   11,12, 13, 15, 16, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
   39,42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 68, 70, 73, 76, 79,
   82,85, 88, 97, 94, 97,100,103, 106,109,112,116,119,122};
   unsigned int ms;
   while (1)
    {
       for(ms=0;ms<254;ms++)
       {
         SYS_AFE_DAC=(sin_tab*4096)/256;
                                  // delay(100);
      }         
    }

                delay(0x10000);
      }
}      将程序在keil软件中编译无误后下载到 LKS32MC081C8T8中,使用USB虚拟示波器(如图1-8所示)观察到P0.0引脚的波形,电脑屏幕上的正弦波波形如图1-9所示,波形平滑效果很好,没有明显的失真。这次测评把芯片烧了是着实大意了,重新买了芯片,在某创商城买时10多元,尚未找到更便宜的了,这款芯片的特色还是面向于电机应用,后面再接着对其进行小测评。
图1-8 虚拟示波器
图1-9 正弦波波形图

爱装大神的小白 发表于 2022-12-5 10:39

生成正弦波的话可以使用芯片内的dsp来做,输入-32768----32767对应-180-180

xu@xupt 发表于 2022-12-7 16:23

{:biggrin:}学习啦

yangxiaor520 发表于 2022-12-12 19:49

波形比较标准。

HTChen9411 发表于 2022-12-13 12:35

学习

4agr 发表于 2022-12-14 20:16

学习了

xu@xupt 发表于 2022-12-18 00:14

感谢分享,学习啦

豌豆爹 发表于 2023-1-5 14:47

楼主优秀,好好学习

weifeng90 发表于 2023-1-16 21:50

从波形来看,生成的数据比较平滑。

forgot 发表于 2023-1-17 11:36

楼主优秀啊,来学习一下,感谢分享~~~~~~
页: [1]
查看完整版本: LKS32MC081评测+片内DAC生成正弦波