您好!
我将在我自己的 PCB 上使用 lmk04610。 我正在尝试使用具有 SPI 的软件通过我的 FPGA Arm 内核对其进行配置。
我可以看到写入和读取工作非常出色。
我要尝试做的是锁定 PLL2。 正如我通过使用范围/检查寄存器0xBE 读取 STATUS0/检查 STATUS0所看到的那样、PLL2不会锁定。
另外、我可以看出、通过查看输出时钟、时钟是不正确的、例如、如果我尝试获得120MHz、我将获得111MHZ。 使用差分探头进行检查。
这里是我的 PCB 设计:

如您所见、我有10MHz 的 CLKIN0输入。
我只需要 PLL2、因为我不使用 VCXO、所以 PLL1关断。
这是我使用的寄存器:
R0 0x000000 R1 0x000100 R2 0x000200 R3 0x000346 R4 0x000438 R5 0x000503 R6 0x000611 R7 0x000700 R8 0x000800 R9 0x000900 R10 0x000A00 R11 0x000B00 R12 0x000C51 R13 0x000D08 R14 0x000E00 R15 0x000F00 R16 0x00100E R17 0x001100 R18 0x001204 R19 0x001304 R20 0x001400 R21 0x001508 R22 0x001648 R23 0x001700 R24 0x001800 R25 0x001919 R26 0x001A0A R31 0x001F00 R32 0x002001 R33 0x002100 R34 0x002278 R39 0x002714 R40 0x002808 R41 0x002914 R42 0x002A08 R43 0x002B00 R44 0x002C44 R45 0x002D00 R46 0x002E30 R47 0x002F08 R48 0x003001 R49 0x00310C R50 0x003200 R51 0x003300 R52 0x003463 R53 0x003518 R54 0x003603 R55 0x003700 R56 0x003802 R57 0x003918 R58 0x003A03 R59 0x003B00 R60 0x003C02 R61 0x003D00 R62 0x003E63 R63 0x003F00 R64 0x004063 R65 0x004118 R66 0x004203 R67 0x004300 R68 0x00440C R69 0x004500 R70 0x00460C R71 0x004700 R72 0x004808 R73 0x004900 R74 0x004A05 R75 0x004B00 R76 0x004C08 R77 0x004D00 R78 0x004E30 R79 0x004F00 R80 0x005030 R81 0x005100 R82 0x005230 R83 0x005300 R84 0x005430 R85 0x005500 R86 0x005605 R87 0x005718 R88 0x00583F R89 0x005961 R90 0x005A0A R91 0x005B02 R92 0x005C02 R93 0x005D00 R94 0x005E00 R95 0x005F61 R96 0x0060A8 R97 0x006100 R98 0x006278 R99 0x006300 R100 0x006440 R101 0x006500 R102 0x006600 R103 0x006700 R104 0x006800 R105 0x006900 R106 0x006A09 R107 0x006B01 R108 0x006C01 R109 0x006D28 R110 0x006E27 R111 0x006F00 R112 0x007000 R113 0x007100 R114 0x007214 R115 0x007300 R116 0x00741E R117 0x007500 R118 0x007601 R119 0x007701 R120 0x0078FF R121 0x007900 R122 0x007A86 R123 0x007BA0 R124 0x007C08 R125 0x007D00 R126 0x007E00 R127 0x007F34 R128 0x00801F R129 0x008100 R130 0x008200 R131 0x008300 R132 0x00840F R133 0x008501 R134 0x008601 R135 0x008700 R136 0x008840 R137 0x008900 R138 0x008A00 R139 0x008B40 R140 0x008C00 R141 0x008D80 R142 0x008E00 R143 0x008F40 R144 0x009000 R145 0x009100 R146 0x009280 R147 0x009380 R148 0x009404 R149 0x009502 R150 0x009610 R151 0x009720 R152 0x009820 R153 0x009980 R155 0x009B00 R156 0x009C20 R171 0x00AB00 R172 0x00AC00 R173 0x00AD00 R175 0x00AF00 R176 0x00B001 R190 0x00BE03 R246 0x00F600 R247 0x00F700 R249 0x00F907 R250 0x00FAD7 R252 0x00FC00 R253 0x00FD00 R254 0x00FE00 R255 0x00FF00 R256 0x010000 R257 0x010100 R258 0x010200 R259 0x010300 R260 0x010400 R261 0x010500 R262 0x010600 R263 0x010700 R264 0x010800 R265 0x010900 R266 0x010A00 R267 0x010B00 R269 0x010D00 R270 0x010E00 R272 0x011000 R273 0x011100 R274 0x011200 R277 0x011500 R278 0x011600 R279 0x011700 R281 0x011900 R282 0x011A00 R292 0x012408 R295 0x012704 R296 0x012801 R297 0x012905 R298 0x012A01 R299 0x012B04 R300 0x012C05 R301 0x012D04 R302 0x012E01 R304 0x013005 R305 0x013105 R307 0x013305 R308 0x013405 R309 0x013505 R312 0x013805 R313 0x013905 R314 0x013A05 R316 0x013C05 R317 0x013D05 R320 0x01400A R321 0x014109 R322 0x014240 R323 0x014300 R325 0x014500 R326 0x01466C R329 0x014900 R330 0x014A00 R331 0x014B00 R332 0x014C00 R334 0x014E00 R336 0x015000 R337 0x015107 R338 0x015207 R339 0x015307
以下是配置这些寄存器的 C 代码:
快速说明:
使用外部 RESETn 复位 PLL
2.写寄存器0x0复位 PLL 的值0x81并且1ms 后再写0x00
如数据表所述、设置寄存器0x11、0x85、0x86到0x00、寄存器0xF6到0x02
4. 按升序将寄存器0写入末尾。
5.再次向寄存器0xF6写入值0x02
6.向寄存器0x85写入0x00
7.向0x86写入0x00
8.将0x01写入0x11
9.向0xAD 写入0x30
10.等待20ms
11.用0x00写 AD
12.从 FPGA 输入端读取 STATUS0以及从寄存器0xBE、并进行检查示波器- 状态0不是"1"。 另外、我可以说 PLL2没有被锁定!
此顺序由数据表指南提供。 我错了什么?!
ST_DATA_TO_SPI_u38.分离 器_init[0]= 0x000000;//R0
ST_DATA_TO_SPI_u38.分离 器_init[1]= 0x000100;//r1
ST_DATA_TO_SPI_u38.separ_init[2]= 0x000200;//R2
ST_DATA_TO_SPI_u38.分离 器_init[3]= 0x000346;//r3
ST_DATA_TO_SPI_u38.分离 器_init[4]= 0x000438;//R4
ST_DATA_TO_SPI_u38.SELER_INIT[5]= 0x000503;//R5
ST_DATA_TO_SPI_u38.分离 器_init[6]= 0x000611;//R6
ST_DATA_TO_SPI_u38.分离 器_init[7]= 0x000700;//R7
ST_DATA_TO_SPI_u38.separ_init[8]= 0x000800;//R8
ST_DATA_TO_SPI_u38.分离 器_init[9]= 0x000900;//R9
ST_DATA_TO_SPI_u38.分离 器_init[10]= 0x000A00;//R10
ST_DATA_TO_SPI_u38.分离 器_init[11]= 0x000B00;//R11
ST_DATA_TO_SPI_u38.separ_init[12]= 0x000C51;//R12
ST_DATA_TO_SPI_u38.separ_init[13]= 0x000D08;//R13
ST_DATA_TO_SPI_u38.分离 器_init[14]= 0x000E00;//R14
ST_DATA_TO_SPI_u38.分离 器_init[15]= 0x000F00;//R15
ST_DATA_TO_SPI_u38.分离 器_init[16]= 0x00100E;//R16
ST_DATA_TO_SPI_u38.分离 器_init[17]= 0x001100;//R17
ST_DATA_TO_SPI_u38.分离 器_init[18]= 0x001204;//R18
ST_DATA_TO_SPI_u38.分离 器_init[19]= 0x001304;//R19
ST_DATA_TO_SPI_u38.分离 器_init[20]= 0x001400;//R20
ST_DATA_TO_SPI_u38.separ_init[21]= 0x001508;//R21
ST_DATA_TO_SPI_u38.separ_init[22]= 0x001648;//R22
ST_DATA_TO_SPI_u38.SELER_INIT[23]= 0x001700;//R23
ST_DATA_TO_SPI_u38.分离 器_init[24]= 0x001800;//R24
ST_DATA_TO_SPI_u38.分离 器_init[25]= 0x001919;//R25
ST_DATA_TO_SPI_u38.分离 器_init[26]= 0x001A0A;//R26
ST_DATA_TO_SPI_u38.分离 器_init[27]= 0x001F00;//R31
ST_DATA_TO_SPI_u38.分离 器_init[28]= 0x002001;//R32
ST_DATA_TO_SPI_u38.分离 器_init[29]= 0x002100;//R33
ST_DATA_TO_SPI_u38.SELER_INIT[30]= 0x002278;//R34
ST_DATA_TO_SPI_u38.分离 器_init[31]= 0x002714;//R39
ST_DATA_TO_SPI_u38.分离 器_init[32]= 0x002808;//R40
ST_DATA_TO_SPI_u38.separ_init[33]= 0x002914;//R41
ST_DATA_TO_SPI_u38.分离 器_init[34]= 0x002A08;//R42
ST_DATA_TO_SPI_u38.separ_init[35]= 0x002B00;//R43
ST_DATA_TO_SPI_u38.分离 器_init[36]= 0x002C44;//R44
ST_DATA_TO_SPI_u38.SELER_INIT[37]= 0x002D00;//R45
ST_DATA_TO_SPI_u38.分离 器_init[38]= 0x002E30;//R46
ST_DATA_TO_SPI_u38.分离 器_init[39]= 0x002F08;//R47
ST_DATA_TO_SPI_u38.分离 器_init[40]= 0x003001;//R48
ST_DATA_TO_SPI_u38.分离 器_init[41]= 0x00310C;//R49
ST_DATA_TO_SPI_u38.separ_init[42]= 0x003200;//R50
ST_DATA_TO_SPI_u38.separ_init[43]= 0x003300;//R51
ST_DATA_TO_SPI_u38.分离 器_init[44]= 0x003463;//R52
ST_DATA_TO_SPI_u38.分离 器_init[45]= 0x003518;//R53
ST_DATA_TO_SPI_u38.分离 器_init[46]= 0x003603;//R54
ST_DATA_TO_SPI_u38.分离 器_init[47]= 0x003700;//R55
ST_DATA_TO_SPI_u38.分离 器_init[48]= 0x003802;//R56
ST_DATA_TO_SPI_u38.分离 器_init[49]= 0x003918;//R57
ST_DATA_TO_SPI_u38.分离 器_init[50]= 0x003A03;//R58
ST_DATA_TO_SPI_u38.分离 器_init[51]= 0x003B00;//R59
ST_DATA_TO_SPI_u38.分离 器_init[52]= 0x003C02;//R60
ST_DATA_TO_SPI_u38.分离 器_init[53]= 0x003D00;//R61
ST_DATA_TO_SPI_u38.分离 器_init[54]= 0x003E63;//R62
ST_DATA_TO_SPI_u38.分离 器_init[55]= 0x003F00;//R63
ST_DATA_TO_SPI_u38.分离 器_init[56]= 0x004063;//R64
ST_DATA_TO_SPI_u38.separ_init[57]= 0x004118;//R65
ST_DATA_TO_SPI_u38.separ_init[58]= 0x004203;//R66
ST_DATA_TO_SPI_u38.分离 器_init[59]= 0x004300;//R67
ST_DATA_TO_SPI_u38.分离 器_init[60]= 0x00440C;//R68
ST_DATA_TO_SPI_u38.分离 器_init[61]= 0x004500;//R69
ST_DATA_TO_SPI_u38.分离 器_init[62]= 0x00460C;//R70
ST_DATA_TO_SPI_u38.SELER_INIT[63]= 0x004700;//R71
ST_DATA_TO_SPI_u38.separ_init[64]= 0x004808;//R72
ST_DATA_TO_SPI_u38.分离 器_init[65]= 0x004900;//R73
ST_DATA_TO_SPI_u38.separ_init[66]= 0x004A05;//R74
ST_DATA_TO_SPI_u38.分离 器_init[67]= 0x004B00;//R75
ST_DATA_TO_SPI_u38.分离 器_init[68]= 0x004C08;//R76
ST_DATA_TO_SPI_u38.分离 器_init[69]= 0x004D00;//R77
ST_DATA_TO_SPI_u38.分离 器_init[70]= 0x004E30;//R78
ST_DATA_TO_SPI_u38.分离 器_init[71]= 0x004F00;//R79
ST_DATA_TO_SPI_u38.separ_init[72]= 0x005030;//R80
ST_DATA_TO_SPI_u38.分离 器_init[73]= 0x005100;//R81
ST_DATA_TO_SPI_u38.separ_init[74]= 0x005230;//R82
ST_DATA_TO_SPI_u38.分离 器_init[75]= 0x005300;//R83
ST_DATA_TO_SPI_u38.分离 器_init[76]= 0x005430;//R84
ST_DATA_TO_SPI_u38.分离 器_init[77]= 0x005500;//R85
ST_DATA_TO_SPI_u38.分离 器_init[78]= 0x005605;//R86
ST_DATA_TO_SPI_u38.分离 器_init[79]= 0x005700;//R87
ST_DATA_TO_SPI_u38.separ_init[80]= 0x00583F;//R88
ST_DATA_TO_SPI_u38.separ_init[81]= 0x005961;//R89
ST_DATA_TO_SPI_u38.分离 器_init[82]= 0x005A0A;//R90
ST_DATA_TO_SPI_u38.分离 器_init[83]= 0x005B02;//R91
ST_DATA_TO_SPI_u38.分离 器_init[84]= 0x005C02;//R92
ST_DATA_TO_SPI_u38.分离 器_init[85]= 0x005D00;//R93
ST_DATA_TO_SPI_u38.分离 器_init[86]= 0x005E00;//R94
ST_DATA_TO_SPI_u38.分离 器_init[87]= 0x005F61;//R95
ST_DATA_TO_SPI_u38.分离 器_init[88]= 0x0060A8;//R96
ST_DATA_TO_SPI_u38.分离 器_init[89]= 0x006100;//R97
ST_DATA_TO_SPI_u38.separ_init[90]= 0x006278;//R98
ST_DATA_TO_SPI_u38.分离 器_init[91]= 0x006300;//R99
ST_DATA_TO_SPI_u38.分离 器_init[92]= 0x006440;//R100
ST_DATA_TO_SPI_u38.分离 器_init[93]= 0x006500;//R101
ST_DATA_TO_SPI_u38.分离 器_init[94]= 0x006600;//R102
ST_DATA_TO_SPI_u38.分离 器_init[95]= 0x006700;//R103
ST_DATA_TO_SPI_u38.分离 器_init[96]= 0x006800;//R104
ST_DATA_TO_SPI_u38.分离 器_init[97]= 0x006900;//R105
ST_DATA_TO_SPI_u38.分离 器_init[98]= 0x006A09;//R106
ST_DATA_TO_SPI_u38.分离 器_init[99]= 0x006B01;//R107
ST_DATA_TO_SPI_u38.分离 器_init[100]= 0x006C01;//R108
ST_DATA_TO_SPI_u38.分离 器_init[101]= 0x006D28;//R109
ST_DATA_TO_SPI_u38.分离 器_init[102]= 0x006E27;//R110
ST_DATA_TO_SPI_u38.分离 器_init[103]= 0x006F00;//R111
ST_DATA_TO_SPI_u38.分离 器_init[104]= 0x007000;//R112
ST_DATA_TO_SPI_u38.分离 器_init[105]= 0x007100;//R113
ST_DATA_TO_SPI_u38.分离 器_init[106]= 0x007214;//R114
ST_DATA_TO_SPI_u38.分离 器_init[107]= 0x007300;//R115
ST_DATA_TO_SPI_u38.分离 器_init[108]= 0x00741E;//R116
ST_DATA_TO_SPI_u38.分离 器_init[109]= 0x007500;//R117
ST_DATA_TO_SPI_u38.分离 器_init[110]= 0x007601;//R118
ST_DATA_TO_SPI_u38.分离 器_init[111]= 0x007701;//R119
ST_DATA_TO_SPI_u38.分离 器_init[112]= 0x0078FF;//R120
ST_DATA_TO_SPI_u38.分离 器_init[113]= 0x007900;//R121
ST_DATA_TO_SPI_u38.分离 器_init[114]= 0x007A86;//R122
ST_DATA_TO_SPI_u38.分离 器_init[115]= 0x007BA0;//R123
ST_DATA_TO_SPI_u38.分离 器_init[116]= 0x007C08;//R124
ST_DATA_TO_SPI_u38.分离 器_init[117]= 0x007D00;//R125
ST_DATA_TO_SPI_u38.分离 器_init[118]= 0x007E00;//R126
ST_DATA_TO_SPI_u38.分离 器_init[119]= 0x007F34;//R127
ST_DATA_TO_SPI_u38.分离 器_init[120]= 0x00801F;//R128
ST_DATA_TO_SPI_u38.分离 器_init[121]= 0x008100;//R129
ST_DATA_TO_SPI_u38.SELER_INIT[122]= 0x008200;//R130
ST_DATA_TO_SPI_u38.分离 器_init[123]= 0x008300;//R131
ST_DATA_TO_SPI_u38.分离 器_init[124]= 0x00840F;//R132
ST_DATA_TO_SPI_u38.separ_init[125]= 0x008501;//R133
ST_DATA_TO_SPI_u38.分离 器_init[126]= 0x008601;//R134
ST_DATA_TO_SPI_u38.separ_init[127]= 0x008700;//R135
ST_DATA_TO_SPI_u38.分离 器_init[128]= 0x008840;//R136
ST_DATA_TO_SPI_u38.分离 器_init[129]= 0x008900;//R137
ST_DATA_TO_SPI_u38.分离 器_init[130]= 0x008A00;//R138
ST_DATA_TO_SPI_u38.分离 器_init[131]= 0x008B40;//R139
ST_DATA_TO_SPI_u38.分离 器_init[132]= 0x008C00;//R140
ST_DATA_TO_SPI_u38.分离 器_init[133]= 0x008D80;//R141
ST_DATA_TO_SPI_u38.分离 器_init[134]= 0x008E00;//R142
ST_DATA_TO_SPI_u38.separ_init[135]= 0x008F40;//R143
ST_DATA_TO_SPI_u38.分离 器_init[136]= 0x009000;//R144
ST_DATA_TO_SPI_u38.分离 器_init[137]= 0x009100;//R145
ST_DATA_TO_SPI_u38.separ_init[138]= 0x009280;//R146
ST_DATA_TO_SPI_u38.分离 器_init[139]= 0x009380;//R147
ST_DATA_TO_SPI_u38.separer_init[140]= 0x009404;//R148
ST_DATA_TO_SPI_u38.separer_init[141]= 0x009502;//R149
ST_DATA_TO_SPI_u38.分离 器_init[142]= 0x009610;//R150
ST_DATA_TO_SPI_u38.SELER_INIT[143]= 0x009720;//R151
ST_DATA_TO_SPI_u38.分离 器_init[144]= 0x009820;//R152
ST_DATA_TO_SPI_u38.分离 器_init[145]= 0x009980;//R153
ST_DATA_TO_SPI_u38.SELER_INIT[146]= 0x009B00;//R155
ST_DATA_TO_SPI_u38.分离 器_init[147]= 0x009C20;//R156
ST_DATA_TO_SPI_u38.分离 器_init[148]= 0x00AB00;//R171
ST_DATA_TO_SPI_u38.分离 器_init[149]= 0x00AC00;//R172
ST_DATA_TO_SPI_u38.分离 器_init[150]= 0x00AD00;//R173
ST_DATA_TO_SPI_u38.分离 器_init[151]= 0x00AF00;//R175
ST_DATA_TO_SPI_u38.分离 器_init[152]= 0x00B001;//R176
ST_DATA_TO_SPI_u38.分离 器_init[153]= 0x00BE03;//R190
ST_DATA_TO_SPI_u38.分离 器_init[154]= 0x00F600;//R246
ST_DATA_TO_SPI_u38.separ_init[155]= 0x00F700;//R247
ST_DATA_TO_SPI_u38.分离 器_init[156]= 0x00F907;//R249
ST_DATA_TO_SPI_u38.SELER_INIT[157]= 0x00FAD7;//R250
ST_DATA_TO_SPI_u38.SELER_INIT[158]= 0x00FC00;//R252
ST_DATA_TO_SPI_u38.分离 器_init[159]= 0x00FD00;//R253
ST_DATA_TO_SPI_u38.分离 器_init[160]= 0x00FE00;//R254
ST_DATA_TO_SPI_u38.分离 器_init[161]= 0x00FF00;//R255
ST_DATA_TO_SPI_u38.分离 器_init[162]= 0x010000;//R256
ST_DATA_TO_SPI_u38.分离 器_init[163]= 0x010100;//R257
ST_DATA_TO_SPI_u38.分离 器_init[164]= 0x010200;//R258
ST_DATA_TO_SPI_u38.分离 器_init[165]= 0x010300;//R259
ST_DATA_TO_SPI_u38.分离 器_init[166]= 0x010400;//R260
ST_DATA_TO_SPI_u38.分离 器_init[167]= 0x010500;//R261
ST_DATA_TO_SPI_u38.分离 器_init[168]= 0x010600;//R262
ST_DATA_TO_SPI_u38.分离 器_init[169]= 0x010700;//R263
ST_DATA_TO_SPI_u38.分离 器_init[170]= 0x010800;//R264
ST_DATA_TO_SPI_u38.分离 器_init[171]= 0x010900;//R265
ST_DATA_TO_SPI_u38.分离 器_init[172]= 0x010A00;//R266
ST_DATA_TO_SPI_u38.分离 器_init[173]= 0x010B00;//R267
ST_DATA_TO_SPI_u38.分离 器_init[174]= 0x010D00;//R269
ST_DATA_TO_SPI_u38.分离 器_init[175]= 0x010E00;//R270
ST_DATA_TO_SPI_u38.separ_init[176]= 0x011000;//R272
ST_DATA_TO_SPI_u38.SELER_INIT[177]= 0x011100;//R273
ST_DATA_TO_SPI_u38.SELER_INIT[178]= 0x011200;//R274
ST_DATA_TO_SPI_u38.分离 器_init[179]= 0x01175;//R277
ST_DATA_TO_SPI_u38.分离 器_init[180]= 0x011600;//R278
ST_DATA_TO_SPI_u38.SELER_INIT[181]= 0x011700;//R279
ST_DATA_TO_SPI_u38.分离 器_init[182]= 0x011900;//R281
ST_DATA_TO_SPI_u38.分离 器_init[183]= 0x011A00;//R282
ST_DATA_TO_SPI_u38.分离 器_init[184]= 0x012408;//R292
ST_DATA_TO_SPI_u38.分离 器_init[185]= 0x012704;//R295
ST_DATA_TO_SPI_u38.分离 器_init[186]= 0x012801;//R296
ST_DATA_TO_SPI_u38.分离 器_init[187]= 0x012905;//R297
ST_DATA_TO_SPI_u38.分离 器_init[188]= 0x012A01;//R298
ST_DATA_TO_SPI_u38.分离 器_init[189]= 0x012B04;//R299
ST_DATA_TO_SPI_u38.分离 器_init[190]= 0x012C05;//R300
ST_DATA_TO_SPI_u38.分离 器_init[191]= 0x012D04;//R301
ST_DATA_TO_SPI_u38.分离 器_init[192]= 0x012E01;//R302
ST_DATA_TO_SPI_u38.分离 器_init[193]= 0x013005;//R304
ST_DATA_TO_SPI_u38.separ_init[194]= 0x013105;//R305
ST_DATA_TO_SPI_u38.分离 器_init[195]= 0x013305;//R307
ST_DATA_TO_SPI_u38.SELER_INIT[196]= 0x013405;//R308
ST_DATA_TO_SPI_u38.SELER_INIT[197]= 0x013505;//R309
ST_DATA_TO_SPI_u38.分离 器_init[198]= 0x013805;//R312
ST_DATA_TO_SPI_u38.分离 器_init[199]= 0x013905;//R313
ST_DATA_TO_SPI_u38.分离 器_init[200]= 0x013A05;//R314
ST_DATA_TO_SPI_u38.分离 器_init[201]= 0x013C05;//R316
ST_DATA_TO_SPI_u38.分离 器_init[202]= 0x013D05;//R317
ST_DATA_TO_SPI_u38.separ_init[203]= 0x01400A;//R320
ST_DATA_TO_SPI_u38.分离 器_init[204]= 0x014109;//R321
ST_DATA_TO_SPI_u38.分离 器_init[205]= 0x014240;//R322
ST_DATA_TO_SPI_u38.分离 器_init[206]= 0x014300;//R323
ST_DATA_TO_SPI_u38.分离 器_init[207]= 0x014500;//R325
ST_DATA_TO_SPI_u38.分离 器_init[208]= 0x01466C;//R326
ST_DATA_TO_SPI_u38.分离 器_init[209]= 0x014900;//R329
ST_DATA_TO_SPI_u38.分离 器_init[210]= 0x014A00;//R330
ST_DATA_TO_SPI_u38.分离 器_init[211]= 0x014B00;//R331
ST_DATA_TO_SPI_u38.separ_init[212]= 0x014C00;//R332
ST_DATA_TO_SPI_u38.分离 器_init[213]= 0x014E00;//R334
ST_DATA_TO_SPI_u38.SELER_INIT[214]= 0x015000;//R336
ST_DATA_TO_SPI_u38.分离 器_init[215]= 0x015107;//R337
ST_DATA_TO_SPI_u38.SELER_INIT[216]= 0x015207;//R338
ST_DATA_TO_SPI_u38.分离 器_init[217]= 0x015307;//R339
u16 addr = 0x0;
u32 data1;
//init SPI
init_lmk04610_spi ();
//////// LMK04610/////的建议编程序列
// POR 的默认编程序列包括:
// 1. 切换 RESETn 引脚高电平-低电平-高电平
// 2. 使用寄存器0x0011位对所有寄存器进行编程0 = 0 //启动
//-Register 0x85 = 0x00 //PLL2_LD_Wndw_SIZE [7:0]
//-Register 0x86 = 0x00 //PLL2_LD_wndw_size_initial
//-寄存器0xF6 = 0x02 //PLL2_DLD_EN
// 3. 对寄存器0x0011的位0 = 1以启动器件//启动
// 4. 启用 PLL2数字锁定检测
//-0xAD = 0x30 //PLL2_CTRL
//-延迟20ms
//-0xAD = 0x00 //PLL2_CTRL
DeviceConfiguration.ControlBits.PLL_RESET = 1;
XIL_Out32 (FPGA_CONTROL_ADDR、DeviceConfiguration.Control);
USleep (1000);
DeviceConfiguration.ControlBits.PLL_RESET = 0;
XIL_Out32 (FPGA_CONTROL_ADDR、DeviceConfiguration.Control);
USleep (1000);
DeviceConfiguration.ControlBits.PLL_RESET = 1;
XIL_Out32 (FPGA_CONTROL_ADDR、DeviceConfiguration.Control);
睡眠(1);
//重置芯片
ST_DATA_TO_SPI_u38.分离 器_init[0]=0x000081;
lmkWriteReg (st_data_to_spi_u38.separator_init[0]>8、st_data_to_spi_u38.splifier_init[0]);
USleep (1000);
//释放复位芯片
ST_DATA_TO_SPI_u38.分离 器_init[0]=0x000000;
lmkWriteReg (st_data_to_spi_u38.separator_init[0]>8、st_data_to_spi_u38.splifier_init[0]);
睡眠(1);
ST_DATA_TO_SPI_u38.分离 器_init[17]= 0x001100;//R17 0x11 //启动
ST_DATA_TO_SPI_u38.separ_init[125]= 0x008500;//R133 0x85 //PLL2_LD_wndw_size[7:0]
ST_DATA_TO_SPI_u38.separator_init[126]= 0x008600;//R134 0x86 //PLL2_LD_wndw_size_initial
ST_DATA_TO_SPI_u38.SELER_INIT[154]= 0x00F602;//R246 0xF6 //PLL2_DLD_EN
for (WRITE_NO = 0;WRITE_NO <= 217;WRITE_NO++){
lmkWriteReg (st_data_to_spi_u38.separator_init[write_no]>>8、st_data_to_spi_u38.splifier_init[write_no]);
usleep (100);
}
USleep (10000);//5
ST_DATA_TO_SPI_u38.separer_init[154]= 0x00F602;//R154 0xF6
lmkWriteReg (st_data_to_spi_u38.separator_init[154]>8、st_data_to_spi_u38.splifier_init[154]);
USleep (10000);
ST_DATA_TO_SPI_u38.separ_init[125]= 0x008500;//R133 0x85 //PLL2_LD_wndw_size[7:0]
lmkWriteReg (st_data_to_spi_u38.separator_init[125]>8、st_data_to_spi_u38.splifier_init[125]);
USleep (10000);
ST_DATA_TO_SPI_u38.separator_init[126]= 0x008600;//R134 0x86 //PLL2_LD_wndw_size_initial
lmkWriteReg (st_data_to_spi_u38.separer_init[126]>8、st_data_to_spi_u38.splifier_init[126]);
ST_DATA_TO_SPI_u38.分离 器_init[17]= 0x001101;//R17 0x11 //启动
lmkWriteReg (st_data_to_spi_u38.separator_init[17]>8、st_data_to_spi_u38.splifier_init[17]);
睡眠(2);
ST_DATA_TO_SPI_u38.分离 器_init[150]= 0x00AD30;//R173
lmkWriteReg (st_data_to_spi_u38.separator_init[150]>8、st_data_to_spi_u38.splifier_init[150]);
睡眠(20000毫升);
ST_DATA_TO_SPI_u38.分离 器_init[150]= 0x00AD00;//R173
lmkWriteReg (st_data_to_spi_u38.separator_init[150]>8、st_data_to_spi_u38.splifier_init[150]);
sleep (1);//等待3秒钟使时钟稳定
//读取状态寄存器
uint32_t STATUS_IN = Xil_In32 (0x80000000+0x00A4);//
xil_printf ("-成功运行 lmk04610配置%x \r\n"、STATUS_IN);
xil_printf ("\r\n\r\n ");
addr = st_data_to_spi_u38.splifier_init[153]>>8;
DAT = lmkReadReg (addr);//虚拟读取
DATA1 = addr << 8|dat;
xil_printf ("st_data_to_spi_u38.separer_init[%d]= 0x%x;\r\n"、write_no、data1);
usleep (100);
谢谢
O·K·奥弗