This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LMK04826BEVM:编程序列、CAN##39;t WRITE ALL REGISTERS (写入所有寄存器)

Guru**** 2582405 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1387203/lmk04826bevm-programming-sequence-can-t-write-all-registers

器件型号:LMK04826BEVM

工具与软件:

大家好、  

我正在尝试从  LMK04826B 评估板上输出多个时钟。  我已使用 TICSPRO 软件设置了配置。

按照数据表中第9.5.1节的编程序列、某些寄存器似乎被"锁定"且不能写入、因此存在一些问题。 这是我的编程应用程序的日志。

应用程序会先执行写入操作、然后执行回读、以检查寄存器是否已写入。

 

 

正在启动 LMK 初始化序列...
正在重设 lmk。。。
复位 LMK OK
正在写入: 0000 00 axi addr 映射: 0x8000000000
正在写入:0002 00 axi 地址映射:0x8000000008
正在写入:0003 00 axi addr 映射:0x8000000c
警告:再次尝试写入0003
警告:再次尝试写入0003
错误:所有设置0003的尝试都失败...正在中止...
正在写入:0004 00 axi 地址映射:0x80000010
警告:再次尝试写入0004
警告:再次尝试写入0004
错误:所有设置0004的尝试都失败...正在中止...
正在写入:0005 00 axi 地址映射:0x80000014
警告:再次尝试写入0005
警告:再次尝试写入0005
错误:所有设置0005的尝试都失败...正在中止...
正在写入:0006 00 axi 地址映射:0x80000018
警告:再次尝试写入0006
警告:再次尝试写入0006
错误:所有设置0006的尝试都失败...正在中止...
正在写入:000c 00 axi 地址映射:0x80000030
警告:再次尝试写入000c
警告:再次尝试写入000c
错误:所有设置000c 的尝试都失败...正在中止...
正在写入: 000D 00 axi 地址映射: 0x80000034.
警告:在000d 处再次尝试写入
警告:在000d 处再次尝试写入
错误:所有设置000d 的尝试都失败...正在中止...
正在写入: 0100 07 axi 地址映射: 0x80000400
正在写入: 0101 00 axi 地址映射: 0x80000404.
Writing : 0102000 axi addr map : 0x8000000408.
正在写入: 0103 00 axi 地址映射: 0x8000040c.
正在写入: 0104 00 axi 地址映射: 0x80000410
正在写入: 0105 00 axi 地址映射: 0x80000414
正在写入: 0106 00 axi 地址映射: 0x80000418
正在写入: 0107 11 axi 地址映射: 0x8000041c.
警告:新的写入尝试0107
警告:在0107时重新尝试写入失败...正在中止...
错误:所有设置0107的尝试都有  
正在写入: 0108 0E axi 地址映射: 0x80000420
警告:新尝试写入0108
警告:新尝试写入0108
错误:所有设置0108的尝试都失败...正在中止...
正在写入: 0109 00 axi 地址映射: 0x80000424.
Writing : 010a 00 axi addr map: 0x8000000428
正在写入: 010b 00 axi 地址映射: 0x8000042c.
正在写入:010c 00 axi 地址映射:0x80000430
Writing : 010d 00 axi addr map: 0x80000434
正在写入: 010E 00 axi 地址映射: 0x80000438
正在写入:010f 11 axi 地址映射:0x8000043c
警告:以010F 写入的新尝试
警告:以010F 写入的新尝试
错误:所有设置010F 的尝试都失败...正在中止...
正在写入: 0110 00 axi 地址映射: 0x80000440
正在写入: 0111 00 axi 地址映射: 0x80000444.
正在写入:0112 00 axi 地址映射:0x80000448
正在写入: 0113 00 axi 地址映射: 0x8000044c.
正在写入: 0114 00 axi 地址映射: 0x80000450
正在写入: 0115 00 axi 地址映射: 0x80000454.
Writing : 0116 00 axi addr map: 0x80000458
正在写入: 0117 11 axi 地址映射: 0x8000045c.
警告:在0117再次尝试写入
警告:在0117再次尝试写入
错误:所有设置0117的尝试都失败...正在中止...
正在写入: 0118 0C axi 地址映射: 0x80000460
警告:在0118处再次尝试写入
警告:在0118处再次尝试写入
错误:所有设置0118的尝试都失败...正在中止...
正在写入:0119 00 axi 地址映射:0x80000464
正在写入:011A 00 axi 地址映射:0x80000468
正在写入: 011b 00 axi 地址映射: 0x8000046c.
正在写入:011C 00 axi 地址映射:0x80000470
正在写入:011D 00 axi 地址映射:0x80000474
正在写入: 011E 00 axi 地址映射: 0x80000478
正在写入: 011F 12 axi 地址映射: 0x8000047c.
警告:新尝试写入011F
警告:新尝试写入011F
错误:所有设置011F 的尝试都失败...正在中止...
正在写入: 0120 0D axi 地址映射: 0x80000480
警告:在0120处再次尝试写入
警告:在0120处再次尝试写入
错误:所有设置0120的尝试都失败...正在中止...
正在写入:0121 00 axi 地址映射:0x80000484
正在写入: 0122 00 axi 地址映射: 0x80000488.
正在写入: 0123 00 axi 地址映射: 0x8000048c.
正在写入: 0124 00 axi 地址映射: 0x80000490
正在写入: 0125 00 axi 地址映射: 0x80000494
正在写入: 0126 00 axi 地址映射: 0x80000498
正在写入: 0127 11 axi 地址映射: 0x8000049c.
警告:在0127处再次尝试写入
警告:在0127处再次尝试写入
错误:所有设置0127的尝试都失败...正在中止...
正在写入: 0128 0F axi 地址映射: 0x800004a0
警告:新尝试写入0128
警告:新尝试写入0128
错误:所有设置0128的尝试都失败...正在中止...
正在写入: 0129 00 axi 地址映射: 0x800004a4.
正在写入: 012A 00 axi 地址映射: 0x800004a8.
正在写入: 012B 00 axi 地址映射: 0x800004ac
正在写入: 012C 00 axi 地址映射: 0x80004b0
正在写入: 012D 00 axi 地址映射: 0x80004b4.
正在写入: 012E 00 axi 地址映射: 0x80004b8.
正在写入: 012F 11 axi 地址映射: 0x80004bc.
警告:新尝试写入012F
警告:新尝试写入012F
错误:所有设置012F 的尝试都失败...正在中止...
正在写入:0130 00 axi 地址映射:0x800004c0
正在写入: 0131 00 axi 地址映射: 0x800004c4.
正在写入:0132 00 axi 地址映射:0x800004c8
正在写入: 0133 00 axi 地址映射: 0x800004cc
正在写入: 0134 00 axi addr 映射: 0x80004d0
正在写入: 0135 00 axi 地址映射: 0x80004d4.
正在写入: 0136 00 axi 地址映射: 0x80004d8.
正在写入: 0137 11 axi 地址映射: 0x80004dc
警告:在0137时再次尝试写入
警告:在0137时再次尝试写入
错误:所有设置0137的尝试都失败...正在中止...
正在写入:0138 00 axi 地址映射:0x80004e0
正在写入: 0139 00 axi 地址映射: 0x80004e4.
正在写入: 013A 00 axi 地址映射: 0x80004e8.
正在写入: 013B 00 axi 地址映射: 0x800004ec
正在写入: 013C 00 axi 地址映射: 0x800004f0
正在写入: 013D 00 axi 地址映射: 0x800004f4.
正在写入: 013E 00 axi 地址映射: 0x800004f8.
正在写入: 013F 00 axi 地址映射: 0x800004fc
正在写入: 0140 00 axi 地址映射: 0x80000500
Writing : 0141 00 axi addr map : 0x8000000504.
Writing : 0142 00 axi addr map: 0x8000000508
正在写入: 0143 00 axi addr 映射: 0x800000050c.
正在写入: 0144 00 axi 地址映射: 0x80000510
正在写入: 0145 00 axi addr 映射: 0x80000514.
正在写入: 0146 00 axi 地址映射: 0x80000518
正在写入: 0147 18 axi 地址映射: 0x8000051c.
警告:新尝试写入0147
警告:新尝试写入0147
错误:所有设置0147的尝试都失败...正在中止...
正在写入:0148 00 axi 地址映射:0x80000520
写: 0149 00 axi 地址映射: 0x80000524
Writing : 014A 00 axi addr map : 0x80000528.
正在写入: 014B 00 axi 地址映射: 0x8000052c.
正在写入: 014C 00 axi 地址映射: 0x80000530
正在写入: 014D 00 axi 地址映射: 0x80000534
Writing : 014E 00 axi addr map: 0x80000538
正在写入: 014F 00 axi 地址映射: 0x8000053c.
Writing : 0150 00 axi addr map: 0x80000540
正在写入: 0151 00 axi 地址映射: 0x80000544.
Writing : 0152 00 axi addr map: 0x80000548.
正在写入:0153 00 axi 地址映射:0x8000054c
Writing : 0154 01 axi addr map: 0x80000550
写: 01550000 axi 地址映射: 0x80000554.
Writing : 0156 01 axi addr map: 0x80000558.
正在写入: 0157 00 axi 地址映射: 0x8000055c.
写:0158 01 axi addr map:0x80000560
正在写入: 0159 00 axi 地址映射: 0x80000564.
Writing : 015A 01 axi addr map: 0x80000568
正在写入: 015B 00 axi 地址映射: 0x8000056c.
正在写入: 015C 00 axi 地址映射: 0x80000570
正在写入:015D 00 axi 地址映射:0x80000574
正在写入: 015E 00 axi 地址映射: 0x8000000578
正在写入: 015F 00 axi 地址映射: 0x8000057c.
正在写入: 0160 00 axi 地址映射: 0x80000580
Writing : 0161 05 axi addr map: 0x80000584.
警告:新尝试写入0161
警告:新尝试写入0161
错误:所有设置0161的尝试都失败...正在中止...
正在写入: 0162 01 axi 地址映射: 0x80000588.
正在写入: 0163 00 axi 地址映射: 0x8000058c.
Writing : 0164 00 axi addr map: 0x80000590
Writing : 0165 01 axi addr map: 0x80000594
错误:寄存器0x145!= 127

我不担心从0x03到0x0D 的写入问题,因为他们是产品 ID ,供应商 ID 的东西可能在只读,我计划删除这些编程在我的应用程序。

但对于其他寄存器(如0x107、0x108等等)、我没有答案。

您能否提供有关编程顺序的建议或详细信息? 我是否应该在写入 一些具体寄存器之前等待某个东西? 如果是、我应该检查哪些寄存器?

(已尝试在每次写入之间等待10ms 而未成功)

此致、

Pierre

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很抱歉耽误你的时间。  我明天会回到你身边。   

    此致、

    会的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    向上!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pierre

    我为等待而道歉。  首先、您是否能够回读所有尚未读过的寄存器?  您是否保证自己的 SPI 设置正确?

    期待您的回复、

    会的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、William、  

    是的、我可以读回所有寄存器。 已通过示波器检查 SPI (12MHz)、根据 数据表的7.6部分、该值没有问题。

    要更精确地解决这个问题:   

    我的应用正在写入一个寄存器、然后恰好在执行回读之后、以检查是否确实已写入该寄存器。 如果回读与写入不同、应用将尝试少量尝试(最多3次)、然后转到下一个寄存器。

    关于这一点,一些寄存器不能写,但,在应用程序完成后。 但是,如果我尝试手动设置在应用程序期间失败的寄存器(用0x108测试)...it 工作,我可以写入他们...所以我认为这与序列非常相关,在某个时候,他们不能被写入 ,但可以稍后?

    另一个关于 9.5.1中编程序列中步骤2的问题  

    您能否详细说明"确保"? 、 我的意思是、在对寄存器从0x000编程到0x165之后、我应该将0x145设置为(写入) 0x145到127还是预检查(读取) 0x145是=127?

    因为当前、当我读取0x145时、我永远不会得到127、但只有0。   在 ticspro 文件中、它也设置为0。

    我的应用程序在上面写入了0。。。 、我是否应该简单地从序列中删除0x145的写入操作、然后检查它 或将其设置为127?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pierre

    我想我有的是 ,它与比特之前的地址有一些关系,似乎是随意更改。   

    因为看起来只有当这些值被设置为非零时、我们才会看到写入失败。

    如果将这些设置为0有帮助、或者如果我是误解、请告诉我。   

    您能否详细说明"确保"? , 我的意思是,我应该设置(写入) 0x145到127或 juste 检查(读取) 0x145是=127后的寄存器编程从0x000到0x165 ?[/报价]

    您应该将127写入0x145。  

    此致、

    会的