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.

[参考译文] LMX2820:SPI 块传输

Guru**** 2390995 points
Other Parts Discussed in Thread: LMX2820

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1448931/lmx2820-spi-block-transfer

器件型号:LMX2820

工具与软件:

您好!

LMX2820是否支持对连续寄存器进行某种 SPI 块写入? 我正在考虑计算通过即时校准更改频率所需的 SPI 转换时间。

我的电流获取方式是、如果启用寄存器双缓冲、我应该能够写入以下寄存器来更改频率:

  • PLL_NUM (0x2A、0x2B)+ INSTCAL_PLL_NUM (0x2C、0x2D)-> 8 addr + 4*16位数据= 72位
  • PLL_DEN (0x26、0x27)-> 8 addr + 2*16 data = 40位
  • PLL_N (0x24)-> 8 addr + 16 data = 24位
  • R0 (0x0)-> 8 addr + 16 data = 24位

在另一个论坛帖子中、我看到 TI 代表提到他们认为 SPI 可以在60 MHz 上运行(并且他们可能会更新数据表)。

这就表明、写入总共160个位大约需要160/60 = 2.7us (忽略 SPI 事务之间最小的13ns 芯片选择切换裕度)。

我的基本问题是:

  • LMX2820是否支持块 SPI? 例如、在初始起始地址之后只是继续传输额外的16位数据字?
  • 60 MHz SPI 速度假设是否有效?

谢谢!

克里斯特尔

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

    你好、Christer、

    支持模块编程、但寄存器必须按顺序进行。 例如、R31、R30、R29、...  

    块编程不能使用随机序列、例如 R31、R14、R1、R0。  

    60MHz 有效。  

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

    对 Noel 回答的补充:

    支持块编程、按地址升序或降序排列。 默认值为降序;您可以设置 R0[11]= 1以将其更改为升序。 采用 PLL_NUM + INSTCAL_PLL_NUM 块作为示例:按降序写入0x2D -> 0x2C -> 0x2B -> 0x2A;按升序写入0x2A -> 0x2B -> 0x2C -> 0x2D。

    CS#保持低电平 、直到每个块结束。 因此、0x2A 至0x2D 块、CS#在所有72位中保持低电平;对于0x26至0x27块、CS#在40位中保持低电平;等等 CS#上升沿清除 块编程地址指针-换句话说、您始终必须在每个 SPI 事务的开头指定起始地址。  这 可能与您已经假设的情况(它还能做什么?)相符、但我将它写出来是为了明确记录它。

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

    感谢大家、然后它会按我希望的方式工作。