我想实现datasheet中图47显示4k × 14 SRAM中START_ADDR和STOP_ADDR所定义地址段中存储的波形由DAC输出。该波形在各模式周期中重复一次。在每个模式周期中,经过起始延迟后,从SRAM读出模式。不知道大家有没有用过这方面的内容。我的配置程序有点问题,不知道哪里出了问题。
以下是我的配置程序:
#include "AD9102.h"
#include "bsp.h"

/*AD9102控制端口*/
#define AD9102_nCS                          PCout(2)
#define AD9102_CLK                                 PAout(0)       
#define AD9102_SDIO                         PAout(1)               
#define AD9102_SDI2                         PCout(1)

#define AD9102_nRST                         PCout(3)
#define AD9102_nTRIGGER                 PCout(0)
/**************************************/

#define SRAM_START_ADDRESS           0x000
#define SRAM_STOP_ADDRESS       0xFA0 //4000 samples

/************AD9102 Reg****************/
#define AD9102_SPICONFIG      0x00000000
#define AD9102_POWERCONFIG    0x00010000
#define AD9102_CLOCKCONFIG    0x00020000
#define AD9102_REFADJ         0x00030000
#define AD9102_DACAGAIN       0x00070000
#define AD9102_DACRANGE       0x00080000
#define AD9102_DACRSET        0x000C0000
#define AD9102_CALCONFIG      0x000D0000
#define AD9102_COMPOFFSET     0x000E0000

#define AD9102_RAMUPDATE      0x001D0000
#define UPDATE                                   0x01

#define AD9102_PAT_STATUS     0x001E0000
#define BUF_READ                       (0x00<<3)
#define        MEM_ACCESS                       (0x01<<2)
#define        RUN                                (0x00)       
               
#define AD9102_PAT_TYPE       0x001F0000
#define AD9102_PATTERN_DLY    0x00200000
#define AD9102_DACDOF         0x00250000
#define AD9102_WAV_CONFIG     0x00270000

#define AD9102_PAT_TIMEBASE   0x00280000
#define AD9102_PAT_PERIOD     0x0029003F//0x3F=63-->about 62.5KHz

#define AD9102_DAC_PAT        0x002B0000
#define AD9102_DOUT_START     0x002C0000
#define AD9102_DOUT_CONFIG    0x002D0000
#define AD9102_DAC_CST        0x00310000

#define AD9102_DAC_DGAIN      0x00354000

#define AD9102_SAW_CONFIG     0x00370000
#define AD9102_DDS_TW32       0x003E0000
#define AD9102_DDS_TW1        0x003F0000
#define AD9102_DDS_PW         0x00430000
#define AD9102_TRIG_TW_SEL    0x00440000
#define AD9102_DDS_CONFIG     0x00450000
#define AD9102_TW_RAM_CONFIG  0x00470000

#define AD9102_START_DELAY    0x005C0000
#define AD9102_START_ADDR     0x005D0000
#define AD9102_STOP_ADDR      0x005E0000

#define AD9102_DDS_CYC        0x005F0000
#define AD9102_CFG_ERROR      0x00600000
#define AD9102_SRAM_DATA      0x60000000
/**************************************/

/*
*        AD9102SRAM = sin(w) + sin(2*w) + sin(3*w) + sin(4*w) + sin(5*w) + sin(6*w) + sin(7*w)
*/
const int16_t AD9102SRAM[4000] =
{
        0 , 65 , 130 , 195 , 260 , 325 , 390 , 454 , 519 , 584 , 649 , 713 , 778 , 843 , 907 , 972 , 1036 , 1100 , 1165 , 1229 , 1293 , 1357 , 1421 , 1485 , 1548 , 1612 , 1676 , 1739 , 1802 , 1865 , 1928 , 1991 , 2054 , 2117 , 2179 , 2241 , 2303 , 2365 , 2427 , 2489 , 2550 , 2612 , 2673 , 2734 , 2795 , 2855 , 2915 , 2976 , 3036 , 3095 , 3155 , 3214 , 3273 , 3332 , 3391 , 3449 , 3508 , 3566 , 3623 , 3681 , 3738 , 3795 , 3852 , 3908 , 3964 , 4020 , 4076 , 4131 , 4186 , 4241 , 4295 , 4350 , 4404 , 4457 , 4511 , 4564 , 4616 , 4669 , 4721 , 4772 , 4824 , 4875 , 4926 , 4976 , 5026 , 5076 , 5126 , 5175 , 5223 , 5272 , 5320 , 5368 , 5415 , 5462 , 5508 , 5555 , 5601 , 5646 , 5691 , 5736 , 5780 , 5824 , 5868 , 5911 , 5954 , 5996 , 6038 , 6080 , 6121 , 6162 , 6202 , 6242 , 6282 , 6321 , 6360 , 6398 , 6436 , 6473 , 6511 , 6547 , 6583 , 6619 , 6655 , 6690 , 6724 , 6758 , 6792 , 6825 , 6858 , 6890 , 6922 , 6953 , 6984 , 7015 , 7045 , 7074 , 7104 , 7132 , 7161 , 7188 , 7216 , 7243 , 7269 , 7295 , 7320 , 7345 , 7370 , 7394 , 7418 , 7441 , 7464 , 7486 , 7508 , 7529 , 7550 , 7570 , 7590 , 7609 , 7628 , 7647 , 7665 , 7682 , 7700 , 7716 , 7732 , 7748 , 7763 , 7778 , 7792 , 7806 , 7819 , 7832 , 7844 , 7856 , 7867 , 7878 , 7889 , 7899 , 7908 , 7917 , 7926 , 7934 , 7941 , 7949 , 7955 , 7961 , 7967 , 7972 , 7977 , 7982 , 7986 , 7989 , 7992 , 7994 , 7996 , 7998 , 7999 , 8000 , 8000 , 8000 , 7999 , 7998 , 7996 , 7994 , 7992 , 7989 , 7985 , 7982 , 7977 , 7973 , 7967 , 7962 , 7956 , 7949 , 7942 , 7935 , 7927 , 7919 , 7911 , 7902 , 7892 , 7882 , 7872 , 7861 , 7850 , 7839 , 7827 , 7814 , 7802 , 7788 , 7775 , 7761 , 7747 , 7732 , 7717 , 7701 , 7685 , 7669 , 7652 , 7635 , 7618 , 7600 , 7582 , 7563 , 7545 , 7525 , 7506 , 7486 , 7465 , 7445 , 7424 , 7402 , 7381 , 7359 , 7336 , 7313 , 7290 , 7267 , 7243 , 7219 , 7195 , 7170 , 7145 , 7120 , 7094 , 7069 , 7042 , 7016 , 6989 , 6962 , 6935 , 6907 , 6879 , 6851 , 6822 , 6794 , 6765 , 6735 , 6706 , 6676 , 6646 , 6616 , 6585 , 6554 , 6523 , 6492 , 6461 , 6429 , 6397 , 6365 , 6332 , 6300 , 6267 , 6234 , 6201 , 6167 , 6134 , 6100 , 6066 , 6032 , 5997 , 5963 , 5928 , 5893 , 5858 , 5823 , 5788 , 5752 , 5716 , 5681 , 5645 , 5608 , 5572 , 5536 , 5499 , 5463 , 5426 , 5389 , 5352 , 5315 , 5278 , 5240 , 5203 , 5165 , 5128 , 5090 , 5052 , 5014 , 4976 , 4938 , 4900 , 4862 , 4824 , 4785 , 4747 , 4709 , 4670 , 4632 , 4593 , 4555 , 4516 , 4477 , 4439 , 4400 , 4361 , 4323 , 4284 , 4245 , 4207 , 4168 , 4129 , 4090 , 4052 , 4013 , 3974 , 3936 , 3897 , 3858 , 3820 , 3781 , 3743 , 3704 , 3666 , 3628 , 3589 , 3551 , 3513 , 3475 , 3437 , 3399 , 3361 , 3323 , 3285 , 3247 , 3210 , 3172 , 3135 , 3098 , 3060 , 3023 , 2986 , 2949 , 2912 , 2876 , 2839 , 2803 , 2766 , 2730 , 2694 , 2658 , 2622 , 2587 , 2551 , 2516 , 2481 , 2445 , 2411 , 2376 , 2341 , 2307 , 2272 , 2238 , 2204 , 2170 , 2137 , 2103 , 2070 , 2037 , 2004 , 1971 , 1939 , 1907 , 1874 , 1842 , 1811 , 1779 , 1748 , 1717 , 1686 , 1655 , 1624 , 1594 , 1564 , 1534 , 1504 , 1475 , 1446 , 1417 , 1388 , 1360 , 1331 , 1303 , 1275 , 1248 , 1220 , 1193 , 1166 , 1140 , 1113 , 1087 , 1061 , 1036 , 1010 , 985 , 960 , 936 , 911 , 887 , 863 , 840 , 816 , 793 , 770 , 748 , 725 , 703 , 682 , 660 , 639 , 618 , 597 , 577 , 557 , 537 , 517 , 498 , 479 , 460 , 442 , 424 , 406 , 388 , 371 , 354 , 337 , 320 , 304 , 288 , 273 , 257 , 242 , 227 , 213 , 199 , 185 , 171 , 158 , 145 , 132 , 119 , 107 , 95 , 83 , 72 , 61 , 50 , 39 , 29 , 19 , 9 ,
        0 , -9 , -18 , -27 , -35 , -43 , -51 , -58 , -65 , -72 , -79 , -85 , -91 , -97 , -103 , -108 , -113 , -117 , -122 , -126 , -130 , -134 , -137 , -140 , -143 , -146 , -148 , -150 , -152 , -153 , -155 , -156 , -156 , -157 , -157 , -157 , -157 , -156 , -156 , -155 , -153 , -152 , -150 , -148 , -146 , -144 , -141 , -138 , -135 , -132 , -128 , -124 , -120 , -116 , -112 , -107 , -102 , -97 , -91 , -86 , -80 , -74 , -68 , -62 , -55 , -48 , -41 , -34 , -27 , -19 , -11 , -3 , 5 , 13 , 21 , 30 , 39 , 48 , 57 , 67 , 76 , 86 , 96 , 106 , 116 , 126 , 137 , 148 , 158 , 169 , 180 , 192 , 203 , 215 , 226 , 238 , 250 , 262 , 274 , 287 , 299 , 312 , 324 , 337 , 350 , 363 , 376 , 389 , 403 , 416 , 430 , 443 , 457 , 471 , 485 , 499 , 513 , 527 , 541 , 556 , 570 , 584 , 599 , 614 , 628 , 643 , 658 , 673 , 687 , 702 , 717 , 732 , 748 , 763 , 778 , 793 , 808 , 823 , 839 , 854 , 869 , 885 , 900 , 916 , 931 , 946 , 962 , 977 , 993 , 1008 , 1024 , 1039 , 1054 , 1070 , 1085 , 1101 , 1116 , 1132 , 1147 , 1162 , 1178 , 1193 , 1208 , 1223 , 1238 , 1254 , 1269 , 1284 , 1299 , 1314 , 1329 , 1344 , 1359 , 1373 , 1388 , 1403 , 1417 , 1432 , 1447 , 1461 , 1475 , 1490 , 1504 , 1518 , 1532 , 1546 , 1560 , 1574 , 1588 , 1601 , 1615 , 1628 , 1642 , 1655 , 1668 , 1682 , 1695 , 1707 , 1720 , 1733 , 1746 , 1758 , 1771 , 1783 , 1795 , 1807 , 1819 , 1831 , 1843 , 1854 , 1866 , 1877 , 1888 , 1899 , 1910 , 1921 , 1932 , 1942 , 1953 , 1963 , 1973 , 1983 , 1993 , 2003 , 2013 , 2022 , 2032 , 2041 , 2050 , 2059 , 2067 , 2076 , 2084 , 2093 , 2101 , 2109 , 2117 , 2124 , 2132 , 2139 , 2147 , 2154 , 2161 , 2167 , 2174 , 2180 , 2187 , 2193 , 2199 , 2204 , 2210 , 2215 , 2221 , 2226 , 2231 , 2236 , 2240 , 2245 , 2249 , 2253 , 2257 , 2261 , 2264 , 2268 , 2271 , 2274 , 2277 , 2279 , 2282 , 2284 , 2287 , 2289 , 2291 , 2292 , 2294 , 2295 , 2296 , 2297 , 2298 , 2299 , 2299 , 2299 , 2300 , 2299 , 2299 , 2299 , 2298 , 2298 , 2297 , 2296 , 2294 , 2293 , 2291 , 2289 , 2288 , 2285 , 2283 , 2281 , 2278 , 2275 , 2272 , 2269 , 2266 , 2263 , 2259 , 2255 , 2251 , 2247 , 2243 , 2238 , 2234 , 2229 , 2224 , 2219 , 2214 , 2208 , 2203 , 2197 , 2191 , 2185 , 2179 , 2173 , 2166 , 2160 , 2153 , 2146 , 2139 , 2132 , 2124 , 2117 , 2109 , 2101 , 2094 , 2085 , 2077 , 2069 , 2060 , 2052 , 2043 , 2034 , 2025 , 2016 , 2007 , 1997 , 1988 , 1978 , 1968 , 1959 , 1949 , 1938 , 1928 , 1918 , 1907 , 1897 , 1886 , 1875 , 1864 , 1853 , 1842 , 1831 , 1820 , 1808 , 1797 , 1785 , 1773 , 1761 , 1749 , 1737 , 1725 , 1713 , 1701 , 1688 , 1676 , 1663 , 1651 , 1638 , 1625 , 1612 , 1599 , 1586 , 1573 , 1560 , 1547 , 1534 , 1520 , 1507 , 1493 , 1480 , 1466 , 1453 , 1439 , 1425 , 1411 , 1398 , 1384 , 1370 , 1356 , 1342 , 1328 , 1314 , 1300 , 1285 , 1271 , 1257 , 1243 , 1228 , 1214 , 1200 , 1185 , 1171 , 1157 , 1142 , 1128 , 1113 , 1099 , 1084 , 1070 , 1056 , 1041 , 1027 , 1012 , 998 , 983 , 969 , 954 , 940 , 925 , 911 , 897 , 882 , 868 , 853 , 839 , 825 , 810 , 796 , 782 , 768 , 754 , 739 , 725 , 711 , 697 , 683 , 669 , 655 , 642 , 628 , 614 , 600 , 587 , 573 , 559 , 546 , 532 , 519 , 506 , 492 , 479 , 466 , 453 , 440 , 427 , 414 , 401 , 389 , 376 , 363 , 351 , 338 , 326 , 314 , 302 , 290 , 278 , 266 , 254 , 242 , 231 , 219 , 208 , 196 , 185 , 174 , 163 , 152 , 141 , 130 , 119 , 109 , 98 , 88 , 78 , 68 , 58 , 48 , 38 , 28 , 19 , 9 ,
        0 , -9 , -18 , -27 , -36 , -45 , -54 , -62 , -70 , -79 , -87 , -95 , -103 , -110 , -118 , -126 , -133 , -140 , -147 , -154 , -161 , -168 , -174 , -181 , -187 , -193 , -199 , -205 , -211 , -217 , -222 , -228 , -233 , -238 , -243 , -248 , -253 , -257 , -262 , -266 , -270 , -274 , -278 , -282 , -285 , -289 , -292 , -295 , -298 , -301 , -304 , -306 , -309 , -311 , -313 , -315 , -317 , -319 , -321 , -322 , -323 , -325 , -326 , -327 , -327 , -328 , -328 , -329 , -329 , -329 , -329 , -329 , -329 , -328 , -328 , -327 , -326 , -325 , -324 , -323 , -321 , -320 , -318 , -316 , -314 , -312 , -310 , -308 , -305 , -303 , -300 , -297 , -294 , -291 , -288 , -285 , -281 , -278 , -274 , -270 , -266 , -262 , -258 , -254 , -250 , -245 , -241 , -236 , -231 , -226 , -221 , -216 , -210 , -205 , -200 , -194 , -188 , -182 , -177 , -171 , -164 , -158 , -152 , -145 , -139 , -132 , -126 , -119 , -112 , -105 , -98 , -91 , -84 , -76 , -69 , -61 , -54 , -46 , -39 , -31 , -23 , -15 , -7 , 1 , 9 , 18 , 26 , 34 , 43 , 51 , 60 , 68 , 77 , 86 , 95 , 103 , 112 , 121 , 130 , 139 , 148 , 158 , 167 , 176 , 185 , 195 , 204 , 214 , 223 , 232 , 242 , 252 , 261 , 271 , 280 , 290 , 300 , 310 , 319 , 329 , 339 , 349 , 358 , 368 , 378 , 388 , 398 , 408 , 418 , 428 , 437 , 447 , 457 , 467 , 477 , 487 , 497 , 507 , 517 , 527 , 536 , 546 , 556 , 566 , 576 , 586 , 595 , 605 , 615 , 625 , 634 , 644 , 654 , 663 , 673 , 682 , 692 , 701 , 711 , 720 , 730 , 739 , 748 , 757 , 767 , 776 , 785 , 794 , 803 , 812 , 821 , 830 , 839 , 847 , 856 , 865 , 873 , 882 , 890 , 899 , 907 , 915 , 924 , 932 , 940 , 948 , 956 , 964 , 971 , 979 , 987 , 994 , 1002 , 1009 , 1016 , 1024 , 1031 , 1038 , 1045 , 1052 , 1059 , 1065 , 1072 , 1079 , 1085 , 1092 , 1098 , 1104 , 1110 , 1116 , 1122 , 1128 , 1134 , 1139 , 1145 , 1150 , 1156 , 1161 , 1166 , 1171 , 1176 , 1181 , 1186 , 1190 , 1195 , 1199 , 1203 , 1208 , 1212 , 1216 , 1220 , 1223 , 1227 , 1231 , 1234 , 1237 , 1241 , 1244 , 1247 , 1250 , 1252 , 1255 , 1258 , 1260 , 1262 , 1265 , 1267 , 1269 , 1271 , 1272 , 1274 , 1275 , 1277 , 1278 , 1279 , 1280 , 1281 , 1282 , 1283 , 1283 , 1284 , 1284 , 1284 , 1285 , 1285 , 1284 , 1284 , 1284 , 1283 , 1283 , 1282 , 1281 , 1280 , 1279 , 1278 , 1277 , 1275 , 1274 , 1272 , 1270 , 1269 , 1267 , 1264 , 1262 , 1260 , 1257 , 1255 , 1252 , 1249 , 1246 , 1243 , 1240 , 1237 , 1234 , 1230 , 1227 , 1223 , 1219 , 1215 , 1211 , 1207 , 1203 , 1199 , 1194 , 1190 , 1185 , 1180 , 1175 , 1170 , 1165 , 1160 , 1155 , 1150 , 1144 , 1139 , 1133 , 1127 , 1121 , 1115 , 1109 , 1103 , 1097 , 1091 , 1084 , 1078 , 1071 , 1065 , 1058 , 1051 , 1044 , 1037 , 1030 , 1023 , 1015 , 1008 , 1001 , 993 , 985 , 978 , 970 , 962 , 954 , 946 , 938 , 930 , 922 , 914 , 905 , 897 , 888 , 880 , 871 , 863 , 854 , 845 , 836 , 827 , 818 , 809 , 800 , 791 , 782 , 773 , 764 , 754 , 745 , 736 , 726 , 717 , 707 , 697 , 688 , 678 , 668 , 659 , 649 , 639 , 629 , 619 , 610 , 600 , 590 , 580 , 570 , 560 , 550 , 539 , 529 , 519 , 509 , 499 , 489 , 479 , 468 , 458 , 448 , 438 , 428 , 417 , 407 , 397 , 387 , 376 , 366 , 356 , 346 , 336 , 325 , 315 , 305 , 295 , 285 , 274 , 264 , 254 , 244 , 234 , 224 , 214 , 204 , 194 , 184 , 174 , 164 , 154 , 144 , 134 , 124 , 114 , 105 , 95 , 85 , 76 , 66 , 56 , 47 , 37 , 28 , 19 , 9 ,
        0 , -9 , -18 , -28 , -37 , -46 , -55 , -64 , -73 , -81 , -90 , -99 , -108 , -116 , -125 , -133 , -142 , -150 , -158 , -166 , -174 , -182 , -190 , -198 , -206 , -214 , -222 , -229 , -237 , -244 , -252 , -259 , -266 , -273 , -281 , -287 , -294 , -301 , -308 , -315 , -321 , -328 , -334 , -340 , -347 , -353 , -359 , -365 , -371 , -376 , -382 , -388 , -393 , -398 , -404 , -409 , -414 , -419 , -424 , -429 , -433 , -438 , -442 , -447 , -451 , -455 , -460 , -464 , -467 , -471 , -475 , -478 , -482 , -485 , -489 , -492 , -495 , -498 , -501 , -503 , -506 , -509 , -511 , -513 , -516 , -518 , -520 , -522 , -523 , -525 , -527 , -528 , -529 , -531 , -532 , -533 , -534 , -535 , -535 , -536 , -536 , -537 , -537 , -537 , -537 , -537 , -537 , -537 , -537 , -536 , -536 , -535 , -534 , -533 , -532 , -531 , -530 , -529 , -527 , -526 , -524 , -522 , -520 , -519 , -516 , -514 , -512 , -510 , -507 , -505 , -502 , -499 , -497 , -494 , -491 , -488 , -484 , -481 , -478 , -474 , -471 , -467 , -463 , -459 , -455 , -451 , -447 , -443 , -439 , -434 , -430 , -425 , -420 , -416 , -411 , -406 , -401 , -396 , -391 , -385 , -380 , -375 , -369 , -364 , -358 , -352 , -347 , -341 , -335 , -329 , -323 , -317 , -310 , -304 , -298 , -291 , -285 , -278 , -272 , -265 , -258 , -252 , -245 , -238 , -231 , -224 , -217 , -210 , -203 , -196 , -188 , -181 , -174 , -166 , -159 , -151 , -144 , -136 , -129 , -121 , -113 , -106 , -98 , -90 , -82 , -74 , -66 , -59 , -51 , -43 , -35 , -27 , -19 , -10 , -2 , 6 , 14 , 22 , 30 , 38 , 47 , 55 , 63 , 71 , 80 , 88 , 96 , 104 , 113 , 121 , 129 , 138 , 146 , 154 , 162 , 171 , 179 , 187 , 196 , 204 , 212 , 220 , 229 , 237 , 245 , 253 , 261 , 269 , 278 , 286 , 294 , 302 , 310 , 318 , 326 , 334 , 342 , 350 , 357 , 365 , 373 , 381 , 389 , 396 , 404 , 412 , 419 , 427 , 434 , 442 , 449 , 456 , 464 , 471 , 478 , 485 , 493 , 500 , 507 , 514 , 520 , 527 , 534 , 541 , 548 , 554 , 561 , 567 , 574 , 580 , 586 , 593 , 599 , 605 , 611 , 617 , 623 , 628 , 634 , 640 , 646 , 651 , 657 , 662 , 667 , 672 , 678 , 683 , 688 , 693 , 697 , 702 , 707 , 711 , 716 , 720 , 725 , 729 , 733 , 737 , 741 , 745 , 749 , 752 , 756 , 759 , 763 , 766 , 769 , 773 , 776 , 779 , 782 , 784 , 787 , 790 , 792 , 794 , 797 , 799 , 801 , 803 , 805 , 807 , 808 , 810 , 812 , 813 , 814 , 815 , 817 , 818 , 818 , 819 , 820 , 821 , 821 , 821 , 822 , 822 , 822 , 822 , 822 , 822 , 821 , 821 , 820 , 820 , 819 , 818 , 817 , 816 , 815 , 814 , 813 , 811 , 810 , 808 , 806 , 804 , 802 , 800 , 798 , 796 , 793 , 791 , 788 , 786 , 783 , 780 , 777 , 774 , 771 , 768 , 764 , 761 , 757 , 754 , 750 , 746 , 742 , 738 , 734 , 730 , 726 , 721 , 717 , 712 , 708 , 703 , 698 , 693 , 688 , 683 , 678 , 673 , 667 , 662 , 656 , 651 , 645 , 639 , 633 , 627 , 621 , 615 , 609 , 603 , 597 , 590 , 584 , 577 , 570 , 564 , 557 , 550 , 543 , 536 , 529 , 522 , 515 , 508 , 500 , 493 , 485 , 478 , 470 , 463 , 455 , 447 , 440 , 432 , 424 , 416 , 408 , 400 , 392 , 383 , 375 , 367 , 359 , 350 , 342 , 333 , 325 , 316 , 308 , 299 , 290 , 282 , 273 , 264 , 255 , 247 , 238 , 229 , 220 , 211 , 202 , 193 , 184 , 175 , 166 , 157 , 148 , 139 , 129 , 120 , 111 , 102 , 93 , 83 , 74 , 65 , 56 , 46 , 37 , 28 , 19 , 9 , 0 , -9 , -19 , -28 , -37 , -46 , -56 , -65 , -74 , -83 , -93 , -102 , -111 , -120 , -129 , -139 , -148 , -157 , -166 , -175 , -184 , -193 , -202 , -211 , -220 , -229 , -238 , -247 ,
        -255 , -264 , -273 , -282 , -290 , -299 , -308 , -316 , -325 , -333 , -342 , -350 , -359 , -367 , -375 , -383 , -392 , -400 , -408 , -416 , -424 , -432 , -440 , -447 , -455 , -463 , -470 , -478 , -485 , -493 , -500 , -508 , -515 , -522 , -529 , -536 , -543 , -550 , -557 , -564 , -570 , -577 , -584 , -590 , -597 , -603 , -609 , -615 , -621 , -627 , -633 , -639 , -645 , -651 , -656 , -662 , -667 , -673 , -678 , -683 , -688 , -693 , -698 , -703 , -708 , -712 , -717 , -721 , -726 , -730 , -734 , -738 , -742 , -746 , -750 , -754 , -757 , -761 , -764 , -768 , -771 , -774 , -777 , -780 , -783 , -786 , -788 , -791 , -793 , -796 , -798 , -800 , -802 , -804 , -806 , -808 , -810 , -811 , -813 , -814 , -815 , -816 , -817 , -818 , -819 , -820 , -820 , -821 , -821 , -822 , -822 , -822 , -822 , -822 , -822 , -821 , -821 , -821 , -820 , -819 , -818 , -818 , -817 , -815 , -814 , -813 , -812 , -810 , -808 , -807 , -805 , -803 , -801 , -799 , -797 , -794 , -792 , -790 , -787 , -784 , -782 , -779 , -776 , -773 , -769 , -766 , -763 , -759 , -756 , -752 , -749 , -745 , -741 , -737 , -733 , -729 , -725 , -720 , -716 , -711 , -707 , -702 , -697 , -693 , -688 , -683 , -678 , -672 , -667 , -662 , -657 , -651 , -646 , -640 , -634 , -628 , -623 , -617 , -611 , -605 , -599 , -593 , -586 , -580 , -574 , -567 , -561 , -554 , -548 , -541 , -534 , -527 , -520 , -514 , -507 , -500 , -493 , -485 , -478 , -471 , -464 , -456 , -449 , -442 , -434 , -427 , -419 , -412 , -404 , -396 , -389 , -381 , -373 , -365 , -357 , -350 , -342 , -334 , -326 , -318 , -310 , -302 , -294 , -286 , -278 , -269 , -261 , -253 , -245 , -237 , -229 , -220 , -212 , -204 , -196 , -187 , -179 , -171 , -162 , -154 , -146 , -138 , -129 , -121 , -113 , -104 , -96 , -88 , -80 , -71 , -63 , -55 , -47 , -38 , -30 , -22 , -14 , -6 , 2 , 10 , 19 , 27 , 35 , 43 , 51 , 59 , 66 , 74 , 82 , 90 , 98 , 106 , 113 , 121 , 129 , 136 , 144 , 151 , 159 , 166 , 174 , 181 , 188 , 196 , 203 , 210 , 217 , 224 , 231 , 238 , 245 , 252 , 258 , 265 , 272 , 278 , 285 , 291 , 298 , 304 , 310 , 317 , 323 , 329 , 335 , 341 , 347 , 352 , 358 , 364 , 369 , 375 , 380 , 385 , 391 , 396 , 401 , 406 , 411 , 416 , 420 , 425 , 430 , 434 , 439 , 443 , 447 , 451 , 455 , 459 , 463 , 467 , 471 , 474 , 478 , 481 , 484 , 488 , 491 , 494 , 497 , 499 , 502 , 505 , 507 , 510 , 512 , 514 , 516 , 519 , 520 , 522 , 524 , 526 , 527 , 529 , 530 , 531 , 532 , 533 , 534 , 535 , 536 , 536 , 537 , 537 , 537 , 537 , 537 , 537 , 537 , 537 , 536 , 536 , 535 , 535 , 534 , 533 , 532 , 531 , 529 , 528 , 527 , 525 , 523 , 522 , 520 , 518 , 516 , 513 , 511 , 509 , 506 , 503 , 501 , 498 , 495 , 492 , 489 , 485 , 482 , 478 , 475 , 471 , 467 , 464 , 460 , 455 , 451 , 447 , 442 , 438 , 433 , 429 , 424 , 419 , 414 , 409 , 404 , 398 , 393 , 388 , 382 , 376 , 371 , 365 , 359 , 353 , 347 , 340 , 334 , 328 , 321 , 315 , 308 , 301 , 294 , 287 , 281 , 273 , 266 , 259 , 252 , 244 , 237 , 229 , 222 , 214 , 206 , 198 , 190 , 182 , 174 , 166 , 158 , 150 , 142 , 133 , 125 , 116 , 108 , 99 , 90 , 81 , 73 , 64 , 55 , 46 , 37 , 28 , 18 , 9 , 0 , -9 , -19 , -28 , -37 , -47 , -56 , -66 , -76 , -85 , -95 , -105 , -114 , -124 , -134 , -144 , -154 , -164 , -174 , -184 , -194 , -204 , -214 , -224 , -234 , -244 , -254 , -264 , -274 , -285 , -295 , -305 , -315 , -325 , -336 , -346 , -356 , -366 , -376 , -387 , -397 , -407 , -417 , -428 , -438 , -448 , -458 , -468 , -479 , -489 , -499 , -509 , -519 , -529 , -539 , -550 , -560 , -570 , -580 , -590 , -600 , -610 , -619 , -629 , -639 , -649 , -659 , -668 , -678 , -688 , -697 , -707 , -717 , -726 , -736 , -745 , -754 , -764 , -773 , -782 , -791 , -800 , -809 ,
        -818 , -827 , -836 , -845 , -854 , -863 , -871 , -880 , -888 , -897 , -905 , -914 , -922 , -930 , -938 , -946 , -954 , -962 , -970 , -978 , -985 , -993 , -1001 , -1008 , -1015 , -1023 , -1030 , -1037 , -1044 , -1051 , -1058 , -1065 , -1071 , -1078 , -1084 , -1091 , -1097 , -1103 , -1109 , -1115 , -1121 , -1127 , -1133 , -1139 , -1144 , -1150 , -1155 , -1160 , -1165 , -1170 , -1175 , -1180 , -1185 , -1190 , -1194 , -1199 , -1203 , -1207 , -1211 , -1215 , -1219 , -1223 , -1227 , -1230 , -1234 , -1237 , -1240 , -1243 , -1246 , -1249 , -1252 , -1255 , -1257 , -1260 , -1262 , -1264 , -1267 , -1269 , -1270 , -1272 , -1274 , -1275 , -1277 , -1278 , -1279 , -1280 , -1281 , -1282 , -1283 , -1283 , -1284 , -1284 , -1284 , -1285 , -1285 , -1284 , -1284 , -1284 , -1283 , -1283 , -1282 , -1281 , -1280 , -1279 , -1278 , -1277 , -1275 , -1274 , -1272 , -1271 , -1269 , -1267 , -1265 , -1262 , -1260 , -1258 , -1255 , -1252 , -1250 , -1247 , -1244 , -1241 , -1237 , -1234 , -1231 , -1227 , -1223 , -1220 , -1216 , -1212 , -1208 , -1203 , -1199 , -1195 , -1190 , -1186 , -1181 , -1176 , -1171 , -1166 , -1161 , -1156 , -1150 , -1145 , -1139 , -1134 , -1128 , -1122 , -1116 , -1110 , -1104 , -1098 , -1092 , -1085 , -1079 , -1072 , -1065 , -1059 , -1052 , -1045 , -1038 , -1031 , -1024 , -1016 , -1009 , -1002 , -994 , -987 , -979 , -971 , -964 , -956 , -948 , -940 , -932 , -924 , -915 , -907 , -899 , -890 , -882 , -873 , -865 , -856 , -847 , -839 , -830 , -821 , -812 , -803 , -794 , -785 , -776 , -767 , -757 , -748 , -739 , -730 , -720 , -711 , -701 , -692 , -682 , -673 , -663 , -654 , -644 , -634 , -625 , -615 , -605 , -595 , -586 , -576 , -566 , -556 , -546 , -536 , -527 , -517 , -507 , -497 , -487 , -477 , -467 , -457 , -447 , -437 , -428 , -418 , -408 , -398 , -388 , -378 , -368 , -358 , -349 , -339 , -329 , -319 , -310 , -300 , -290 , -280 , -271 , -261 , -252 , -242 , -232 , -223 , -214 , -204 , -195 , -185 , -176 , -167 , -158 , -148 , -139 , -130 , -121 , -112 , -103 , -95 , -86 , -77 , -68 , -60 , -51 , -43 , -34 , -26 , -18 , -9 , -1 , 7 , 15 , 23 , 31 , 39 , 46 , 54 , 61 , 69 , 76 , 84 , 91 , 98 , 105 , 112 , 119 , 126 , 132 , 139 , 145 , 152 , 158 , 164 , 171 , 177 , 182 , 188 , 194 , 200 , 205 , 210 , 216 , 221 , 226 , 231 , 236 , 241 , 245 , 250 , 254 , 258 , 262 , 266 , 270 , 274 , 278 , 281 , 285 , 288 , 291 , 294 , 297 , 300 , 303 , 305 , 308 , 310 , 312 , 314 , 316 , 318 , 320 , 321 , 323 , 324 , 325 , 326 , 327 , 328 , 328 , 329 , 329 , 329 , 329 , 329 , 329 , 328 , 328 , 327 , 327 , 326 , 325 , 323 , 322 , 321 , 319 , 317 , 315 , 313 , 311 , 309 , 306 , 304 , 301 , 298 , 295 , 292 , 289 , 285 , 282 , 278 , 274 , 270 , 266 , 262 , 257 , 253 , 248 , 243 , 238 , 233 , 228 , 222 , 217 , 211 , 205 , 199 , 193 , 187 , 181 , 174 , 168 , 161 , 154 , 147 , 140 , 133 , 126 , 118 , 110 , 103 , 95 , 87 , 79 , 70 , 62 , 54 , 45 , 36 , 27 , 18 , 9 , 0 , -9 , -19 , -28 , -38 , -48 , -58 , -68 , -78 , -88 , -98 , -109 , -119 , -130 , -141 , -152 , -163 , -174 , -185 , -196 , -208 , -219 , -231 , -242 , -254 , -266 , -278 , -290 , -302 , -314 , -326 , -338 , -351 , -363 , -376 , -389 , -401 , -414 , -427 , -440 , -453 , -466 , -479 , -492 , -506 , -519 , -532 , -546 , -559 , -573 , -587 , -600 , -614 , -628 , -642 , -655 , -669 , -683 , -697 , -711 , -725 , -739 , -754 , -768 , -782 , -796 , -810 , -825 , -839 , -853 , -868 , -882 , -897 , -911 , -925 , -940 , -954 , -969 , -983 , -998 , -1012 , -1027 , -1041 , -1056 , -1070 , -1084 , -1099 , -1113 , -1128 , -1142 , -1157 , -1171 , -1185 , -1200 , -1214 , -1228 , -1243 , -1257 , -1271 , -1285 , -1300 , -1314 , -1328 , -1342 , -1356 , -1370 , -1384 , -1398 , -1411 , -1425 , -1439 , -1453 , -1466 , -1480 ,
        -1493 , -1507 , -1520 , -1534 , -1547 , -1560 , -1573 , -1586 , -1599 , -1612 , -1625 , -1638 , -1651 , -1663 , -1676 , -1688 , -1701 , -1713 , -1725 , -1737 , -1749 , -1761 , -1773 , -1785 , -1797 , -1808 , -1820 , -1831 , -1842 , -1853 , -1864 , -1875 , -1886 , -1897 , -1907 , -1918 , -1928 , -1938 , -1949 , -1959 , -1968 , -1978 , -1988 , -1997 , -2007 , -2016 , -2025 , -2034 , -2043 , -2052 , -2060 , -2069 , -2077 , -2085 , -2094 , -2101 , -2109 , -2117 , -2124 , -2132 , -2139 , -2146 , -2153 , -2160 , -2166 , -2173 , -2179 , -2185 , -2191 , -2197 , -2203 , -2208 , -2214 , -2219 , -2224 , -2229 , -2234 , -2238 , -2243 , -2247 , -2251 , -2255 , -2259 , -2263 , -2266 , -2269 , -2272 , -2275 , -2278 , -2281 , -2283 , -2285 , -2288 , -2289 , -2291 , -2293 , -2294 , -2296 , -2297 , -2298 , -2298 , -2299 , -2299 , -2299 , -2300 , -2299 , -2299 , -2299 , -2298 , -2297 , -2296 , -2295 , -2294 , -2292 , -2291 , -2289 , -2287 , -2284 , -2282 , -2279 , -2277 , -2274 , -2271 , -2268 , -2264 , -2261 , -2257 , -2253 , -2249 , -2245 , -2240 , -2236 , -2231 , -2226 , -2221 , -2215 , -2210 , -2204 , -2199 , -2193 , -2187 , -2180 , -2174 , -2167 , -2161 , -2154 , -2147 , -2139 , -2132 , -2124 , -2117 , -2109 , -2101 , -2093 , -2084 , -2076 , -2067 , -2059 , -2050 , -2041 , -2032 , -2022 , -2013 , -2003 , -1993 , -1983 , -1973 , -1963 , -1953 , -1942 , -1932 , -1921 , -1910 , -1899 , -1888 , -1877 , -1866 , -1854 , -1843 , -1831 , -1819 , -1807 , -1795 , -1783 , -1771 , -1758 , -1746 , -1733 , -1720 , -1707 , -1695 , -1682 , -1668 , -1655 , -1642 , -1628 , -1615 , -1601 , -1588 , -1574 , -1560 , -1546 , -1532 , -1518 , -1504 , -1490 , -1475 , -1461 , -1447 , -1432 , -1417 , -1403 , -1388 , -1373 , -1359 , -1344 , -1329 , -1314 , -1299 , -1284 , -1269 , -1254 , -1238 , -1223 , -1208 , -1193 , -1178 , -1162 , -1147 , -1132 , -1116 , -1101 , -1085 , -1070 , -1054 , -1039 , -1024 , -1008 , -993 , -977 , -962 , -946 , -931 , -916 , -900 , -885 , -869 , -854 , -839 , -823 , -808 , -793 , -778 , -763 , -748 , -732 , -717 , -702 , -687 , -673 , -658 , -643 , -628 , -614 , -599 , -584 , -570 , -556 , -541 , -527 , -513 , -499 , -485 , -471 , -457 , -443 , -430 , -416 , -403 , -389 , -376 , -363 , -350 , -337 , -324 , -312 , -299 , -287 , -274 , -262 , -250 , -238 , -226 , -215 , -203 , -192 , -180 , -169 , -158 , -148 , -137 , -126 , -116 , -106 , -96 , -86 , -76 , -67 , -57 , -48 , -39 , -30 , -21 , -13 , -5 , 3 , 11 , 19 , 27 , 34 , 41 , 48 , 55 , 62 , 68 , 74 , 80 , 86 , 91 , 97 , 102 , 107 , 112 , 116 , 120 , 124 , 128 , 132 , 135 , 138 , 141 , 144 , 146 , 148 , 150 , 152 , 153 , 155 , 156 , 156 , 157 , 157 , 157 , 157 , 156 , 156 , 155 , 153 , 152 , 150 , 148 , 146 , 143 , 140 , 137 , 134 , 130 , 126 , 122 , 117 , 113 , 108 , 103 , 97 , 91 , 85 , 79 , 72 , 65 , 58 , 51 , 43 , 35 , 27 , 18 , 9 , 0 , -9 , -19 , -29 , -39 , -50 , -61 , -72 , -83 , -95 , -107 , -119 , -132 , -145 , -158 , -171 , -185 , -199 , -213 , -227 , -242 , -257 , -273 , -288 , -304 , -320 , -337 , -354 , -371 , -388 , -406 , -424 , -442 , -460 , -479 , -498 , -517 , -537 , -557 , -577 , -597 , -618 , -639 , -660 , -682 , -703 , -725 , -748 , -770 , -793 , -816 , -840 , -863 , -887 , -911 , -936 , -960 , -985 , -1010 , -1036 , -1061 , -1087 , -1113 , -1140 , -1166 , -1193 , -1220 , -1248 , -1275 , -1303 , -1331 , -1360 , -1388 , -1417 , -1446 , -1475 , -1504 , -1534 , -1564 , -1594 , -1624 , -1655 , -1686 , -1717 , -1748 , -1779 , -1811 , -1842 , -1874 , -1907 , -1939 , -1971 , -2004 , -2037 , -2070 , -2103 , -2137 , -2170 , -2204 , -2238 , -2272 , -2307 , -2341 , -2376 , -2411 , -2445 , -2481 , -2516 , -2551 , -2587 , -2622 , -2658 , -2694 , -2730 , -2766 , -2803 , -2839 , -2876 , -2912 , -2949 , -2986 , -3023 , -3060 , -3098 , -3135 , -3172 , -3210 , -3247 , -3285 , -3323 , -3361 , -3399 , -3437 , -3475 , -3513 , -3551 , -3589 , -3628 , -3666 , -3704 , -3743 , -3781 , -3820 , -3858 , -3897 , -3936 , -3974 , -4013 , -4052 , -4090 , -4129 , -4168 , -4207 , -4245 , -4284 , -4323 , -4361 , -4400 , -4439 , -4477 , -4516 , -4555 , -4593 , -4632 , -4670 , -4709 , -4747 , -4785 , -4824 , -4862 , -4900 , -4938 , -4976 , -5014 , -5052 , -5090 , -5128 , -5165 , -5203 , -5240 , -5278 , -5315 , -5352 , -5389 , -5426 , -5463 , -5499 , -5536 , -5572 , -5608 , -5645 , -5681 , -5716 , -5752 , -5788 , -5823 , -5858 , -5893 , -5928 , -5963 , -5997 , -6032 , -6066 , -6100 , -6134 , -6167 , -6201 , -6234 , -6267 , -6300 , -6332 , -6365 , -6397 , -6429 , -6461 , -6492 , -6523 , -6554 , -6585 , -6616 , -6646 , -6676 , -6706 , -6735 , -6765 , -6794 , -6822 , -6851 , -6879 , -6907 , -6935 , -6962 , -6989 , -7016 , -7042 , -7069 , -7094 , -7120 , -7145 , -7170 , -7195 , -7219 , -7243 , -7267 , -7290 , -7313 , -7336 , -7359 , -7381 , -7402 , -7424 , -7445 , -7465 , -7486 , -7506 , -7525 , -7545 , -7563 , -7582 , -7600 , -7618 , -7635 , -7652 , -7669 , -7685 , -7701 , -7717 , -7732 , -7747 , -7761 , -7775 , -7788 , -7802 , -7814 , -7827 , -7839 , -7850 , -7861 , -7872 , -7882 , -7892 , -7902 , -7911 , -7919 , -7927 , -7935 , -7942 , -7949 , -7956 , -7962 , -7967 , -7973 , -7977 , -7982 , -7985 , -7989 , -7992 , -7994 , -7996 , -7998 , -7999 , -8000 , -8000 , -8000 , -7999 , -7998 , -7996 , -7994 , -7992 , -7989 , -7986 , -7982 , -7977 , -7972 , -7967 , -7961 , -7955 , -7949 , -7941 , -7934 , -7926 , -7917 , -7908 , -7899 , -7889 , -7878 , -7867 , -7856 , -7844 , -7832 , -7819 , -7806 , -7792 , -7778 , -7763 , -7748 , -7732 , -7716 , -7700 , -7682 , -7665 , -7647 , -7628 , -7609 , -7590 , -7570 , -7550 , -7529 , -7508 , -7486 , -7464 , -7441 , -7418 , -7394 , -7370 , -7345 , -7320 , -7295 , -7269 , -7243 , -7216 , -7188 , -7161 , -7132 , -7104 , -7074 , -7045 , -7015 , -6984 , -6953 , -6922 , -6890 , -6858 , -6825 , -6792 , -6758 , -6724 , -6690 , -6655 , -6619 , -6583 , -6547 , -6511 , -6473 , -6436 , -6398 , -6360 , -6321 , -6282 , -6242 , -6202 , -6162 , -6121 , -6080 , -6038 , -5996 , -5954 , -5911 , -5868 , -5824 , -5780 , -5736 , -5691 , -5646 , -5601 , -5555 , -5508 , -5462 , -5415 , -5368 , -5320 , -5272 , -5223 , -5175 , -5126 , -5076 , -5026 , -4976 , -4926 , -4875 , -4824 , -4772 , -4721 , -4669 , -4616 , -4564 , -4511 , -4457 , -4404 , -4350 , -4295 , -4241 , -4186 , -4131 , -4076 , -4020 , -3964 , -3908 , -3852 , -3795 , -3738 , -3681 , -3623 , -3566 , -3508 , -3449 , -3391 , -3332 , -3273 , -3214 , -3155 , -3095 , -3036 , -2976 , -2915 , -2855 , -2795 , -2734 , -2673 , -2612 , -2550 , -2489 , -2427 , -2365 , -2303 , -2241 , -2179 , -2117 , -2054 , -1991 , -1928 , -1865 , -1802 , -1739 , -1676 , -1612 , -1548 , -1485 , -1421 , -1357 , -1293 , -1229 , -1165 , -1100 , -1036 , -972 , -907 , -843 , -778 , -713 , -649 , -584 , -519 , -454 , -390 , -325 , -260 , -195 , -130 , -65 ,
};

const uint32_t PAT_TYPE    = 0x001F0000;//
const uint32_t DACRSET     = 0x000c9f1F;//DAC_RSET_EN,
const uint32_t WAV_CONFIG  = 0x00271011;//0x00271031;//DDSêä3öÔ¤′æ2¨DΣ¬ÕyÏò2¨
const uint32_t SAW_CONFIG  = 0x003700FC;//éÏD±Æ¾a3Y2¨
const uint32_t DAC_DGAIN   = 0x00354000;//Data=0x4000,the maximum value is 0x4000
const uint32_t DDS_TW32    = 0x003E006C;//Register 0x3E, Data=0x0E38
const uint32_t DDS_TW1     = 0x003FE600;//Register 0x3F, Data=0xE600£¬5MHz output,50MHz fsys
const uint32_t PAT_STATUS  = 0x001E0001;//PAT_STATUS 0x1E, run bit=1
const uint32_t RAMUPDATE   = 0x001D0001;//????????SPI??(???)

void delay (int length);
void AD9102_Init(void);
void WriteToAD9102(uint32_t InstruAndData);

void delay (int length)
{
        while(length>=0)
        length--;
}

void WriteToAD9102(uint32_t InstruAndData)
{
        uint32_t SendValue = 0;
        uint8_t i = 0;

        SendValue = InstruAndData;
        delay(1);
        AD9102_nCS = 0; //bring CS low
        AD9102_CLK = 0;
        delay(1);
       
        for(i=0; i<32; i++)
        {
                if(SendValue & 0x80000000)
                {
                        AD9102_SDIO = 1;                                    //Send 1 to SDIO pin
                }
                else
                {
                        AD9102_SDIO = 0;                                    //Send 0 to SDIO pin
                }
                        delay(1);                     
                        AD9102_CLK = 1;                                                                                           //SCLK Rising
                        delay(2);
                        AD9102_CLK = 0;                                                                                           //SCLK falling
                        delay(1);
                        SendValue <<= 1;                              //Rotate data
                }

                AD9102_nCS = 1;                                             //bring CS high again
}

#if 0//函数初始化不成功
void AD9102_Init(void)
{
        uint32_t i = 0;
        uint32_t ui_AD9102SramAddr = 0;
       
        AD9102_nTRIGGER = 1;
        AD9102_nRST = 0;
        delay(100);
        AD9102_nRST = 1;       

        /*Step1:Write AD9102 SRAM
                Set PAT_STATUS Register(0x1E):
                        BUF_READ = 0
                        MEM_ACCESS = 1
                        RUN = 0       
        */       
        WriteToAD9102(AD9102_PAT_STATUS | MEM_ACCESS);
        for(i = 0; i < 4000; i++)
        {
                ui_AD9102SramAddr = AD9102_SRAM_DATA | (i<<4);
                WriteToAD9102(ui_AD9102SramAddr | AD9102SRAM[i]);               
        }
       
        //Step2:Set AD9102 Register
        WriteToAD9102(AD9102_PAT_PERIOD);       
  WriteToAD9102(AD9102_PAT_TYPE);
  WriteToAD9102(AD9102_WAV_CONFIG);
  WriteToAD9102(AD9102_DAC_DGAIN);       
        //WriteToAD9102(AD9102_START_DELAY);
  WriteToAD9102(AD9102_START_ADDR | SRAM_START_ADDRESS);
  WriteToAD9102(AD9102_STOP_ADDR | (SRAM_STOP_ADDRESS << 4));
  WriteToAD9102(AD9102_RAMUPDATE | UPDATE);

        delay(10);
        AD9102_nTRIGGER = 0;
        WriteToAD9102(AD9102_RAMUPDATE | UPDATE);          
}
#else//初始化成功,锯齿波和正弦波都行
void AD9102_Init(void)
{
        AD9102_nTRIGGER = 1;
        AD9102_nRST = 0;
        delay(100);
        AD9102_nRST = 1;       

  WriteToAD9102(PAT_TYPE);
  WriteToAD9102(DACRSET);
  WriteToAD9102(WAV_CONFIG);
  WriteToAD9102(SAW_CONFIG);  
  
  WriteToAD9102(DAC_DGAIN);
  WriteToAD9102(DDS_TW32);
  WriteToAD9102(DDS_TW1);
  WriteToAD9102(RAMUPDATE);
  WriteToAD9102(PAT_STATUS);
  WriteToAD9102(RAMUPDATE);

        delay(10);
        AD9102_nTRIGGER = 0;
        WriteToAD9102(AD9102_RAMUPDATE | UPDATE);          
}
#endif
点赞  2018-4-24 16:57
引用: 496664962 发表于 2018-4-24 16:57
我想实现datasheet中图47显示4k × 14 SRAM中START_ADDR和STOP_ADDR所定义地址段中存储的波形由DAC输出。该 ...

不使用sram能正常工作吗?试过用官方的评估软件生成寄存器数据没?
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-4-24 17:21
引用: littleshrimp 发表于 2018-4-24 17:21
不使用sram能正常工作吗?试过用官方的评估软件生成寄存器数据没?

不使用SRAM是正常的,也就是用的您的初始化函数
#else//初始化成功,锯齿波和正弦波都行
void AD9102_Init(void)
{
        AD9102_nTRIGGER = 1;
        AD9102_nRST = 0;
        delay(100);
        AD9102_nRST = 1;        

  WriteToAD9102(PAT_TYPE);
  WriteToAD9102(DACRSET);
  WriteToAD9102(WAV_CONFIG);
  WriteToAD9102(SAW_CONFIG);  
  
  WriteToAD9102(DAC_DGAIN);
  WriteToAD9102(DDS_TW32);
  WriteToAD9102(DDS_TW1);
  WriteToAD9102(RAMUPDATE);
  WriteToAD9102(PAT_STATUS);
  WriteToAD9102(RAMUPDATE);

        delay(10);
        AD9102_nTRIGGER = 0;
        WriteToAD9102(AD9102_RAMUPDATE | UPDATE);           
}
#endif
点赞  2018-4-24 19:31
对寄存器操作还比较正常,就是对SRAM的操作有问题,我想把const int16_t AD9102SRAM[4000] 这个数组写进去,采用的方式如下:
#if 0//函数初始化不成功
void AD9102_Init(void)
{
        uint32_t i = 0;
        uint32_t ui_AD9102SramAddr = 0;
        
        AD9102_nTRIGGER = 1;
        AD9102_nRST = 0;
        delay(100);
        AD9102_nRST = 1;        

        /*Step1:Write AD9102 SRAM
                Set PAT_STATUS Register(0x1E):
                        BUF_READ = 0
                        MEM_ACCESS = 1
                        RUN = 0        
        */        
        WriteToAD9102(AD9102_PAT_STATUS | MEM_ACCESS);
        for(i = 0; i < 4000; i++)
        {
                ui_AD9102SramAddr = AD9102_SRAM_DATA | (i<<4);
                WriteToAD9102(ui_AD9102SramAddr | AD9102SRAM[i]);               
        }
        
        //Step2:Set AD9102 Register
        WriteToAD9102(AD9102_PAT_PERIOD);        
  WriteToAD9102(AD9102_PAT_TYPE);
  WriteToAD9102(AD9102_WAV_CONFIG);
  WriteToAD9102(AD9102_DAC_DGAIN);        
        //WriteToAD9102(AD9102_START_DELAY);
  WriteToAD9102(AD9102_START_ADDR | SRAM_START_ADDRESS);
  WriteToAD9102(AD9102_STOP_ADDR | (SRAM_STOP_ADDRESS << 4));
  WriteToAD9102(AD9102_RAMUPDATE | UPDATE);

        delay(10);
        AD9102_nTRIGGER = 0;
        WriteToAD9102(AD9102_RAMUPDATE | UPDATE);           
}
大家能帮我看看哪里写得有问题 吗
点赞  2018-4-24 19:37
引用: 496664962 发表于 2018-4-24 19:37
对寄存器操作还比较正常,就是对SRAM的操作有问题,我想把const int16_t AD9102SRAM[4000] 这个数组写进去 ...

SRAM写好后读一下看和写入的是否相同
如果相同
装一下这个应用,下载文档对照看一下怎么配置
ftp://ftp.analog.com/pub/HSSP_SW ... D9106-EBZ_1.0.3.exe
ftp://ftp.analog.com/pub/HSSP_SW ... 20Start%20Guide.pdf
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-4-24 19:58
这个程序有点问题
点赞  2018-6-25 09:38
引用: johnrita 发表于 2018-6-25 09:38
这个程序有点问题

哪的问题?
虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞  2018-6-25 16:24
楼主,你之前发的那个驱动程序是能用的吗?为什么我用32移植之后感觉用不了?
点赞  2019-4-2 23:08
引用: tan90-_- 发表于 2019-4-2 23:08
楼主,你之前发的那个驱动程序是能用的吗?为什么我用32移植之后感觉用不了?

看看spi通信正常吗
点赞  2019-4-3 06:32
引用: littleshrimp 发表于 2019-4-3 06:32
看看spi通信正常吗

我用的你那个初始化程序,初始化完之后,我修改BGDR寄存器的值,但是那个REFIO引脚的电压一直是0,应该是没初始化成功,技术较菜,求指点。
点赞  2019-4-3 09:54
引用: tan90-_- 发表于 2019-4-3 09:54
我用的你那个初始化程序,初始化完之后,我修改BGDR寄存器的值,但是那个REFIO引脚的电压一直是0,应该是 ...

写好的数据再读出来试试
点赞  2019-4-3 10:36
引用: littleshrimp 发表于 2019-4-3 10:36
写好的数据再读出来试试

请问一下您最后的时钟输入选择的是什么呢,我现在是用信号发生器产生的2Mhz的方波信号。
点赞  2019-4-3 13:49
引用: tan90-_- 发表于 2019-4-3 13:49
请问一下您最后的时钟输入选择的是什么呢,我现在是用信号发生器产生的2Mhz的方波信号。

我用的50M的有源晶振
点赞  2019-4-3 14:56
收藏了,感谢楼主的无私分享
点赞  2019-4-3 15:13
引用: 496664962 发表于 2018-4-24 19:31
不使用SRAM是正常的,也就是用的您的初始化函数
#else//初始化成功,锯齿波和正弦波都行
void AD9102_I ...

您能把您当时的程序发给我一份吗,我现在初始化老是不成功,不知道问题出在哪里。
点赞  2019-4-3 16:46
引用: littleshrimp 发表于 2019-4-3 14:56
我用的50M的有源晶振

您方不方便加一下我的联系方式,我有些问题想向您请教一下,多谢!QQ:1187484261
点赞  2019-4-3 16:48
我用了您的这个函数 hal_spi_read_write_byte(uint8_t tx_byte),但是返回值跟我发的值是一样的,这个正常吗?
点赞  2019-4-3 17:15
引用: tan90-_- 发表于 2019-4-3 17:15
我用了您的这个函数 hal_spi_read_write_byte(uint8_t tx_byte),但是返回值跟我发的值是一样的,这个正常 ...

你要把这个改成和stm32对应的 程序我发了一个rar包 那个就是我当时测试的
点赞  2019-4-3 18:52
引用: littleshrimp 发表于 2019-4-3 18:52
你要把这个改成和stm32对应的 程序我发了一个rar包 那个就是我当时测试的

对应的话,也就是把最下面的操作SPI引脚的操作相应的修改一下,那些操作我都修改并且测试过了,但是初始化还是不成功,下面是我的代码,我搞底层的东西有些头疼
#define SCLK_Pin GPIO_PIN_0
#define SCLK_GPIO_Port GPIOA
#define SDO_Pin GPIO_PIN_1
#define SDO_GPIO_Port GPIOA
#define SDIO_Pin GPIO_PIN_2
#define SDIO_GPIO_Port GPIOA
#define CS_Pin GPIO_PIN_3
#define CS_GPIO_Port GPIOA
#define TRIGGER_Pin GPIO_PIN_4
#define TRIGGER_GPIO_Port GPIOA
#define RESET_Pin GPIO_PIN_5
#define RESET_GPIO_Port GPIOA

/* USER CODE BEGIN Private defines */

#define SPI_SCLK_LOW()           GPIOA->ODR&=0XFFFE;  //PA0拉低
#define SPI_SCLK_HIGH()          GPIOA->BSRR=0X0001;  //PA0拉高
#define SPI_SDO_LOW()            GPIOA->ODR&=0XFFFD;  //A1
#define SPI_SDO_HIGH()           GPIOA->BSRR=0X0002;  
#define SPI_SDI()                HAL_GPIO_ReadPin( GPIOA , GPIO_PIN_2 )
//#define SPI_SDI_INIT()    HAL_GPIO_WritePin( &GPIOA,  SCLK_Pin , SET);
#define CS_LOW()                 GPIOA->ODR&=0XFFF7;   //A3
#define CS_HI()                  GPIOA->BSRR=0X0008;  
#define TRIGGER_LOW()            GPIOA->ODR&=0XFFEF;   //A4
#define TRIGGER_HI()             GPIOA->BSRR=0X0010;  
#define REST_LOW()               GPIOA->ODR&=0XFFDF;   //A5
#define REST_HI()                GPIOA->BSRR=0X0020;  


/*下面是main函数*/
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32f4xx_hal.h"

/* USER CODE BEGIN Includes */

#include
#include "hal_spi.h"
#include "stdbool.h"
/* USER CODE END Includes */

/* Private variables ---------------------------------------------------------*/

/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/

  uint8_t a=0;

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);

/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/

/* USER CODE END PFP */

/* USER CODE BEGIN 0 */

#define SRAM_START_ADDRESS   0x6000
#define SRAM_END_ADDRESS     0x6FFF


const uint32_t PAT_TYPE    = 0x001F0000;//模式连续运行。
//RSET如果不设置成1F输出波形会变形
const uint32_t DACRSET     = 0x000c9f1F;//DAC_RSET_EN,

//const uint32_t DACRSET     = 0x000c1f00;//DAC_RSET_EN = 0,
//正弦波输出
const uint32_t WAV_CONFIG  = 0x00271031;//DDS输出,预存波形
//锯齿波输出
//const uint32_t WAV_CONFIG  = 0x00270011;//锯齿波,预存波形
const uint32_t SAW_CONFIG  = 0x003700FC;//上斜坡锯齿波
//数字增益影响输出波形的幅度,应该是二进制补码,范围是+-2048
const uint32_t DAC_DGAIN   = 0x00354000;//Data=0x4000  Very important,the maximum value is 0x4000

const uint32_t DDS_TW32    = 0x003E006C;//Register 0x3E, Data=0x0E38
const uint32_t DDS_TW1     = 0x003FE600;//Register 0x3F, Data=0xE600           5MHz output,50MHz fsys
const uint32_t PAT_STATUS  = 0x001E0001;//PAT_STATUS 0x1E, run bit=1           Very important
const uint32_t RAMUPDATE   = 0x001D0001;//用新配置更新所有SPI设置(自清零)


uint8_t buf[5];
char sbuf[50];

void hal_spi_write_uint32(uint32_t data)
{
  CS_LOW( );
  hal_spi_read_write_byte(data >> 24);
  hal_spi_read_write_byte(data >> 16);
  hal_spi_read_write_byte(data >> 8);
  hal_spi_read_write_byte(data);
  CS_HI( );
}
void hal_spi_write_uint16(uint16_t addr,uint16_t data)
{
  CS_LOW( );
  hal_spi_read_write_byte(addr >> 8);
  hal_spi_read_write_byte(addr);
  hal_spi_read_write_byte(data >> 8);
  hal_spi_read_write_byte(data);  
  CS_HI( );
}

void ad9102_init(void)
{

  CS_HI( );
  TRIGGER_HI();
  REST_LOW();
//  __delay_cycles(65500);
    HAL_Delay(200);
  REST_HI();
  
  hal_spi_write_uint32(PAT_TYPE);
//  hal_spi_read_write_byte
  hal_spi_write_uint32(DACRSET);
  hal_spi_write_uint32(WAV_CONFIG);
  hal_spi_write_uint32(SAW_CONFIG);  
  
  hal_spi_write_uint32(DAC_DGAIN);
  hal_spi_write_uint32(DDS_TW32);
  hal_spi_write_uint32(DDS_TW1);
  hal_spi_write_uint32(RAMUPDATE);
  hal_spi_write_uint32(PAT_STATUS);
  hal_spi_write_uint32(RAMUPDATE);

  HAL_Delay(10);
  TRIGGER_LOW();
  hal_spi_write_uint32(RAMUPDATE);
  
}


/* USER CODE END 0 */

int main(void)
{

  /* USER CODE BEGIN 1 */



  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();

  /* USER CODE BEGIN 2 */

  

  ad9102_init();
  
  
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */


    HAL_Delay(2);
   
  }
  /* USER CODE END 3 */

}

/** System Clock Configuration
*/
void SystemClock_Config(void)
{

  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /**Configure the main internal regulator output voltage
    */
  __HAL_RCC_PWR_CLK_ENABLE();

  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

    /**Initializes the CPU, AHB and APB busses clocks
    */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = 16;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Initializes the CPU, AHB and APB busses clocks
    */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Configure the Systick interrupt time
    */
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

    /**Configure the Systick
    */
  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  /* SysTick_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

/** Configure pins as
        * Analog
        * Input
        * Output
        * EVENT_OUT
        * EXTI
*/
static void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct;

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOA, SCLK_Pin|SDO_Pin|CS_Pin|TRIGGER_Pin
                          |RESET_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pins : SCLK_Pin SDO_Pin CS_Pin TRIGGER_Pin
                           RESET_Pin */
  GPIO_InitStruct.Pin = SCLK_Pin|SDO_Pin|CS_Pin|TRIGGER_Pin
                          |RESET_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /*Configure GPIO pin : SDIO_Pin */
  GPIO_InitStruct.Pin = SDIO_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(SDIO_GPIO_Port, &GPIO_InitStruct);

}

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

/**
  * @brief  This function is executed in case of error occurrence.
  * @param  None
  * @retval None
  */
void _Error_Handler(char * file, int line)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  while(1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}

#ifdef USE_FULL_ASSERT

/**
   * @brief Reports the name of the source file and the source line number
   * where the assert_param error has occurred.
   * @param file: pointer to the source file name
   * @param line: assert_param error line source number
   * @retval None
   */
void assert_failed(uint8_t* file, uint32_t line)
{
  /* USER CODE BEGIN 6 */
  /* User can add his own implementation to report the file name and line number,
    ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* USER CODE END 6 */

}

#endif

/**
  * @}
  */

/**
  * @}
*/

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
/*上面是main函数*/



/*相关SPI*/
#include "hal_spi.h"
#include "main.h"
#include "stm32f4xx_hal.h"


void hal_delay_us1(uint16_t us)
{  
  uint16_t i=us*16;
   while(i>0)
     i--;
}

//void hal_spi_init(void)
//{
//   SPI_SDI_INIT();
//}

uint8_t hal_spi_read_write_byte(uint8_t tx_byte)
{
    unsigned char i,temp=0;
    SPI_SCLK_LOW();
    hal_delay_us1(1);
    for(i=0;i<8;i++)
    {
        if(0x80&tx_byte)
        {
            SPI_SDO_HIGH();
        }
        else
        {
          SPI_SDO_LOW();
        }
        tx_byte<<=1;
        temp<<=1;
        SPI_SCLK_HIGH();
        hal_delay_us1(1);
        if (SPI_SDI())        //读取最高位,保存至最末尾,通过左移位完成整个字节
            temp |= 0x01;   //该位为高
        SPI_SCLK_LOW();
        hal_delay_us1(1);
    }
    SPI_SCLK_LOW();
    hal_delay_us1(1);
    return temp;
}

//下降沿读取数据
uint8_t hal_spi_read(void)
{
    unsigned char i,temp=0;
    SPI_SCLK_LOW();
    hal_delay_us1(1);
    for(i=0;i<8;i++)
    {
        temp<<=1;
        if (SPI_SDI())        //读取最高位,保存至最末尾,通过左移位完成整个字节
            temp |= 0x01;      //若是1则保存至最末尾,若是0则前面的移位操作已保存
        SPI_SCLK_HIGH();
        hal_delay_us1(1);
        SPI_SCLK_LOW();
        hal_delay_us1(1);
    }
    SPI_SCLK_LOW();
    hal_delay_us1(1);
    return temp;
}

/****************************/
谢谢大神,老师这几天让我做这个,很焦虑
点赞  2019-4-3 19:54
引用: littleshrimp 发表于 2019-4-3 18:52
你要把这个改成和stm32对应的 程序我发了一个rar包 那个就是我当时测试的

修改的话也就是对于SPI的引脚操作进行相应修改吧,那些我都修改并且测试过了,但是还是无法初始化成功,我私信您了,您看方不方便加一下联系方式我再向您详细请教,谢谢。
点赞  2019-4-3 19:57
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复