你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 6138|回复: 4

我参考AN3126 用DAC产生一个20HZ的正弦波,但频率不稳定

[复制链接]

14

主题

20

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-10-19 11:04:51 | 显示全部楼层 |阅读模式
芯片是STM32F103VC
采样点是1305,DAC_OUT1产生正弦波20HZ.为什么产生的频率不稳定?请高手指点.谢谢!以下是我的编程,
#include "stm32f10x.h"

#define DAC_DHR12RD_Address      0x40007420

DAC_InitTypeDef            DAC_InitStructure;
DMA_InitTypeDef            DMA_InitStructure;
TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;
const uint16_t Sine12bit[1305] = {
2048 ,2058 ,2068 ,2078 ,2087 ,2097 ,2107 ,2117 ,2127 ,2137 ,2147 ,2156 ,2166 ,2176 ,2186 ,2196 ,
2206 ,2215 ,2225 ,2235 ,2245 ,2255 ,2265 ,2274 ,2284 ,2294 ,2304 ,2313 ,2323 ,2333 ,2343 ,2353 ,
2362 ,2372 ,2382 ,2391 ,2401 ,2411 ,2421 ,2430 ,2440 ,2450 ,2459 ,2469 ,2479 ,2488 ,2498 ,2507 ,
2517 ,2527 ,2536 ,2546 ,2555 ,2565 ,2574 ,2584 ,2594 ,2603 ,2613 ,2622 ,2631 ,2641 ,2650 ,2660 ,
2669 ,2679 ,2688 ,2697 ,2707 ,2716 ,2725 ,2735 ,2744 ,2753 ,2762 ,2772 ,2781 ,2790 ,2799 ,2808 ,
2817 ,2827 ,2836 ,2845 ,2854 ,2863 ,2872 ,2881 ,2890 ,2899 ,2908 ,2917 ,2926 ,2935 ,2944 ,2952 ,
2961 ,2970 ,2979 ,2988 ,2996 ,3005 ,3014 ,3023 ,3031 ,3040 ,3048 ,3057 ,3066 ,3074 ,3083 ,3091 ,
3100 ,3108 ,3116 ,3125 ,3133 ,3142 ,3150 ,3158 ,3167 ,3175 ,3183 ,3191 ,3199 ,3207 ,3216 ,3224 ,
3232 ,3240 ,3248 ,3256 ,3264 ,3272 ,3280 ,3287 ,3295 ,3303 ,3311 ,3319 ,3326 ,3334 ,3342 ,3349 ,
3357 ,3364 ,3372 ,3379 ,3387 ,3394 ,3402 ,3409 ,3417 ,3424 ,3431 ,3438 ,3446 ,3453 ,3460 ,3467 ,
3474 ,3481 ,3488 ,3495 ,3502 ,3509 ,3516 ,3523 ,3530 ,3537 ,3543 ,3550 ,3557 ,3563 ,3570 ,3577 ,
3583 ,3590 ,3596 ,3603 ,3609 ,3615 ,3622 ,3628 ,3634 ,3640 ,3647 ,3653 ,3659 ,3665 ,3671 ,3677 ,
3683 ,3689 ,3695 ,3701 ,3706 ,3712 ,3718 ,3723 ,3729 ,3735 ,3740 ,3746 ,3751 ,3757 ,3762 ,3768 ,
3773 ,3778 ,3783 ,3789 ,3794 ,3799 ,3804 ,3809 ,3814 ,3819 ,3824 ,3829 ,3834 ,3839 ,3843 ,3848 ,
3853 ,3857 ,3862 ,3867 ,3871 ,3876 ,3880 ,3884 ,3889 ,3893 ,3897 ,3902 ,3906 ,3910 ,3914 ,3918 ,
3922 ,3926 ,3930 ,3934 ,3937 ,3941 ,3945 ,3949 ,3952 ,3956 ,3960 ,3963 ,3967 ,3970 ,3973 ,3977 ,
3980 ,3983 ,3986 ,3990 ,3993 ,3996 ,3999 ,4002 ,4005 ,4008 ,4010 ,4013 ,4016 ,4019 ,4021 ,4024 ,
4027 ,4029 ,4032 ,4034 ,4036 ,4039 ,4041 ,4043 ,4045 ,4048 ,4050 ,4052 ,4054 ,4056 ,4058 ,4060 ,
4061 ,4063 ,4065 ,4067 ,4068 ,4070 ,4071 ,4073 ,4074 ,4076 ,4077 ,4078 ,4080 ,4081 ,4082 ,4083 ,
4084 ,4085 ,4086 ,4087 ,4088 ,4089 ,4090 ,4090 ,4091 ,4092 ,4092 ,4093 ,4094 ,4094 ,4094 ,4095 ,
4095 ,4095 ,4096 ,4096 ,4096 ,4096 ,4096 ,4096 ,4096 ,4096 ,4096 ,4095 ,4095 ,4095 ,4095 ,4094 ,4094 ,4093 ,
4093 ,4092 ,4092 ,4091 ,4090 ,4089 ,4089 ,4088 ,4087 ,4086 ,4085 ,4084 ,4083 ,4081 ,4080 ,4079 ,
4078 ,4076 ,4075 ,4074 ,4072 ,4071 ,4069 ,4067 ,4066 ,4064 ,4062 ,4060 ,4059 ,4057 ,4055 ,4053 ,
4051 ,4049 ,4047 ,4044 ,4042 ,4040 ,4038 ,4035 ,4033 ,4030 ,4028 ,4025 ,4023 ,4020 ,4017 ,4015 ,
4012 ,4009 ,4006 ,4003 ,4000 ,3997 ,3994 ,3991 ,3988 ,3985 ,3982 ,3978 ,3975 ,3972 ,3968 ,3965 ,
3961 ,3958 ,3954 ,3951 ,3947 ,3943 ,3939 ,3936 ,3932 ,3928 ,3924 ,3920 ,3916 ,3912 ,3908 ,3904 ,
3899 ,3895 ,3891 ,3887 ,3882 ,3878 ,3873 ,3869 ,3864 ,3860 ,3855 ,3850 ,3846 ,3841 ,3836 ,3831 ,
3827 ,3822 ,3817 ,3812 ,3807 ,3802 ,3796 ,3791 ,3786 ,3781 ,3776 ,3770 ,3765 ,3760 ,3754 ,3749 ,
3743 ,3738 ,3732 ,3726 ,3721 ,3715 ,3709 ,3703 ,3698 ,3692 ,3686 ,3680 ,3674 ,3668 ,3662 ,
3656 ,3650 ,3643 ,3637 ,3631 ,3625 ,3618 ,3612 ,3606 ,3599 ,3593 ,3586 ,3580 ,3573 ,3567 ,3560 ,
3553 ,3547 ,3540 ,3533 ,3526 ,3519 ,3513 ,3506 ,3499 ,3492 ,3485 ,3478 ,3471 ,3464 ,3456 ,3449 ,
3442 ,3435 ,3428 ,3420 ,3413 ,3406 ,3398 ,3391 ,3383 ,3376 ,3368 ,3361 ,3353 ,3345 ,3338 ,3330 ,
3322 ,3315 ,3307 ,3299 ,3291 ,3283 ,3276 ,3268 ,3260 ,3252 ,3244 ,3236 ,3228 ,3220 ,3212 ,3203 ,
3195 ,3187 ,3179 ,3171 ,3162 ,3154 ,3146 ,3137 ,3129 ,3121 ,3112 ,3104 ,3095 ,3087 ,3078 ,3070 ,
3061 ,3053 ,3044 ,3035 ,3027 ,3018 ,3009 ,3001 ,2992 ,2983 ,2974 ,2966 ,2957 ,2948 ,2939 ,2930 ,
2921 ,2912 ,2903 ,2894 ,2886 ,2876 ,2867 ,2858 ,2849 ,2840 ,2831 ,2822 ,2813 ,2804 ,2795 ,2785 ,
2776 ,2767 ,2758 ,2748 ,2739 ,2730 ,2721 ,2711 ,2702 ,2693 ,2683 ,2674 ,2664 ,2655 ,2646 ,2636 ,
2627 ,2617 ,2608 ,2598 ,2589 ,2579 ,2570 ,2560 ,2551 ,2541 ,2531 ,2522 ,2512 ,2503 ,2493 ,2483 ,
2474 ,2464 ,2454 ,2445 ,2435 ,2425 ,2416 ,2406 ,2396 ,2387 ,2377 ,2367 ,2357 ,2348 ,2338 ,2328 ,
2318 ,2309 ,2299 ,2289 ,2279 ,2269 ,2260 ,2250 ,2240 ,2230 ,2220 ,2211 ,2201 ,2191 ,2181 ,2171 ,
2161 ,2151 ,2142 ,2132 ,2122 ,2112 ,2102 ,2092 ,2083 ,2073 ,2063 ,2053 ,2043 ,2033 ,2023 ,2013 ,
2004 ,1994 ,1984 ,1974 ,1964 ,1954 ,1945 ,1935 ,1925 ,1915 ,1905 ,1895 ,1885 ,1876 ,1866 ,1856 ,
1846 ,1836 ,1827 ,1817 ,1807 ,1797 ,1787 ,1778 ,1768 ,1758 ,1748 ,1739 ,1729 ,1719 ,1709 ,1700 ,
1690 ,1680 ,1671 ,1661 ,1651 ,1642 ,1632 ,1622 ,1613 ,1603 ,1593 ,1584 ,1574 ,1565 ,1555 ,1545 ,
1536 ,1526 ,1517 ,1507 ,1498 ,1488 ,1479 ,1469 ,1460 ,1450 ,1441 ,1432 ,1422 ,1413 ,1403 ,1394 ,
1385 ,1375 ,1366 ,1357 ,1348 ,1338 ,1329 ,1320 ,1311 ,1301 ,1292 ,1283 ,1274 ,1265 ,1256 ,1247 ,1238 ,
1229 ,1220 ,1211 ,1202 ,1193 ,1184 ,1175 ,1166 ,1157 ,1148 ,1139 ,1130 ,1122 ,1113 ,1104 ,1095 ,
1087 ,1078, 1069 ,1061 ,1052 ,1043 ,1035 ,1026 ,1018 ,1009 ,1001 ,992 ,984 ,975 ,967 ,959 ,
950 ,942 ,934 ,925 ,917 ,909 ,901 ,893 ,884 ,876 ,868 ,860 ,852 ,844 ,836 ,828 ,
820 ,813 ,805 ,797 ,789 ,781 ,774 ,766 ,758 ,751 ,743 ,735 ,728 ,720 ,713 ,705 ,
698 ,690 ,683 ,676 ,668 ,661 ,654 ,647 ,640 ,632 ,625 ,618 ,611 ,604 ,597 ,590 ,
583 ,577 ,570 ,563 ,556 ,549 ,543 ,536 ,529 ,523 ,516 ,510 ,503 ,497 ,490 ,484 ,
478 ,471 ,465 ,459 ,453 ,446 ,440 ,434 ,428 ,422 ,416 ,410 ,404 ,398 ,393 ,387 ,
381 ,375 ,370 ,364 ,358 ,353 ,347 ,342 ,336 ,331 ,326 ,320 ,315 ,310 ,305 ,300 ,
294 ,289 ,284 ,279 ,274 ,269 ,265 ,260 ,255 ,250 ,246 ,241 ,236 ,232 ,227 ,223 ,
218 ,214 ,209 ,205 ,201 ,197 ,192 ,188 ,184 ,180 ,176 ,172 ,168 ,164 ,160 ,157 ,
153 ,149 ,145 ,142 ,138 ,135 ,131 ,128 ,124 ,121 ,118 ,114 ,111 ,108 ,105 ,102 ,
99 ,96 ,93 ,90 ,87 ,84 ,81 ,79 ,76 ,73 ,71 ,68 ,66 ,63 ,61 ,58 ,
56 ,54 ,52 ,49 ,47 ,45 ,43 ,41 ,39 ,37 ,36 ,34 ,32 ,30 ,29 ,27 ,
25 ,24 ,22 ,21 ,20 ,18 ,17 ,16 ,15 ,13 ,12 ,11 ,10 ,9 ,8 ,7 ,
7 ,6 ,5 ,4 ,4 ,3 ,3 ,2 ,2 ,1 ,1 ,1 ,1 ,
0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,
1 ,1 ,1 ,2 ,2 ,2 ,3 ,4 ,4 ,5 ,
6 ,6 ,7 ,8 ,9 ,10,11 ,12 ,13 ,14 ,15 ,16 ,18 ,19 ,20 ,22 ,
23 ,25 ,26 ,28 ,29 ,31 ,33 ,35 ,36 ,38 ,40 ,42 ,44 ,46 ,48 ,51 ,
53 ,55 ,57 ,60 ,62 ,64 ,67 ,69 ,72 ,75 ,77 ,80 ,83 ,86 ,88 ,91 ,
94 ,97 ,100,103, 106,110 ,113 ,116 ,119 ,123 ,126 ,129 ,133 ,136 ,140 ,144 ,
147 ,151 ,155 ,158 ,162 ,166 ,170 ,174 ,178 ,182 ,186 ,190 ,194 ,199 ,203 ,207 ,
212 ,216 ,220 ,225 ,229 ,234 ,239 ,243 ,248 ,253 ,257 ,262 ,267 ,272 ,277 ,282 ,
287 ,292, 297 ,302 ,307 ,313 ,318 ,323 ,328 ,334 ,339 ,345 ,350 ,356 ,361 ,367 ,
372 ,378 ,384 ,390 ,395 ,401 ,407 ,413 ,419 ,425 ,431 ,437 ,443 ,449 ,456 ,462 ,
468 ,474 ,481 ,487 ,493 ,500 ,506 ,513 ,519 ,526 ,533 ,539 ,546 ,553 ,559 ,566 ,
573 ,580 ,587 ,594 ,601 ,608 ,615 ,622 ,629 ,636 ,643 ,650 ,658 ,665 ,672 ,679 ,
687 ,694 ,702 ,709 ,717 ,724 ,732 ,739 ,747 ,754 ,762 ,770 ,777 ,785 ,793 ,801 ,
809 ,816 ,824 ,832 ,840 ,848 ,856 ,864 ,872 ,880 ,888 ,897 ,905 ,913 ,921 ,929 ,
938 ,946 ,954 ,963 ,971 ,979 ,988 ,996 ,1005,101,1022,1030, 1039,1048, 1056,1065,
1073,1082, 1091,1100 ,1108 ,1117 ,1126 ,1135 ,1144 ,1152 ,1161 ,1170 ,1179 ,1188 ,1197 ,1206 ,
1215 ,1224 ,1233 ,1242 ,1251 ,1260 ,1269 ,1279,1288 ,1297 ,1306 ,1315 ,1324 ,1334 ,1343 ,1352 ,
1361 ,1371 ,1380 ,1389 ,1399 ,1408 ,1417 ,1427 ,1436 ,1446 ,1455 ,1465 ,1474 ,1483 ,1493 ,1502 ,
1512 ,1522 ,1531 ,1541 ,1550 ,1560 ,1569 ,1579 ,1588 ,1598 ,1608 ,1617 ,1627 ,1637 ,1646 ,1656 ,
1666 ,1675 ,1685 ,1695 ,1705 ,1714 ,1724 ,1734 ,1743 ,1753 ,1763 ,1773 ,1783 ,1792 ,1802 ,1812 ,
1822 ,1831 ,1841 ,1851 ,1861 ,1871 ,1881 ,1890 ,1900 ,1910 ,1920 ,1930 ,1940 ,1949 ,1959 ,1969 ,
1979 ,1989 ,1999 ,2009 ,2018 ,2028 ,2038
};
uint32_t DualSine12bit[1305];
uint16_t Idx = 0;
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void Delay(__IO uint32_t nCount);
/* Private functions ---------------------------------------------------------*/
/**
  * @brief   Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
  /* System Clocks Configuration */
  RCC_Configuration();  
  /* Once the DAC channel is enabled, the corresponding GPIO pin is automatically
     connected to the DAC converter. In order to avoid parasitic consumption,
     the GPIO pin should be configured in analog */
  GPIO_Configuration();
  /* TIM2 Configuration */
  /* Time base configuration */
  //TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
  TIM_TimeBaseStructure.TIM_Period =1;    
  TIM_TimeBaseStructure.TIM_Prescaler = 1379;    
  TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;    
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
  TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);
  /* TIM2 TRGO selection */
  TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update);
  /* DAC channel1 Configuration */
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;
  DAC_InitStructure.DAC_WaveGeneration =DAC_WaveGeneration_Triangle ;  //DAC_WaveGeneration_None
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);
  /* DAC channel2 Configuration */
//  DAC_Init(DAC_Channel_2, &DAC_InitStructure);  xiaolin

  /* Fill Sine32bit table */
//  for (Idx = 0; Idx < 32; Idx++)  xiaolin
//  for (Idx = 0; Idx < 255; Idx++)
  for (Idx = 0; Idx < 1305; Idx++)
  {
    DualSine12bit[Idx] = (Sine12bit[Idx]
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2011-10-19 14:52:36 | 显示全部楼层

RE:我参考AN3126 用DAC产生一个20HZ的正弦波,但频率不稳定

其实你不用这么麻烦的,你可以使用sin正弦函数来实现。可能是你的数组的问题。另外,你的DAC输出位数也没配置。
回复 支持 反对

使用道具 举报

14

主题

20

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2011-10-20 11:33:16 | 显示全部楼层

RE:我参考AN3126 用DAC产生一个20HZ的正弦波,但频率不稳定

您说的很对数组有问题,我眼睛都看花了,在同事的帮忙下,才发现.
1>数组中4096改为4095,(用EXECL计算出来,自动4舍5入了,4096溢出了变成了0).
2> 数组中的"...,1005,101,1022,..."中的101改为1010.
3>
将DAC_InitStructure.DAC_WaveGeneration =DAC_WaveGeneration_Triangle ; //有锯齿
改为: DAC_InitStructure.DAC_WaveGeneration =DAC_WaveGeneration_None;
就可以到很光滑的频率为20HZ的正弦波.
您提出DAC输出位数没配置,我确实没有配置,是不是用DMA发送就不用配置呢?谢谢您帮忙!
回复 支持 反对

使用道具 举报

0

主题

32

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-12-4 12:26:11 | 显示全部楼层

RE:我参考AN3126 用DAC产生一个20HZ的正弦波,但频率不稳定

在百度上面搜索一下就有了!
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-11-29 23:34:25 | 显示全部楼层

回复:我参考AN3126 用DAC产生一个20HZ的正弦波,但频率不稳定

楼主,能不能把代码发给我一下啊
我最近也在搞12bit dac输出波形
没搞好,z994051@163.com
感谢!
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版