摘要:本程序员手册提供MAX5290-MAX5295,MAX5580-MAX5585,MAX5590-MAX5595用户可编程D/A转换器(DAC)的详细时序图和高级编程特性。
本手册为MAX5290-MAX5295,MAX5580-MAX5585,MAX5590-MAX5595用户可编程D/A转换器(DAC)提供详细的时序图和高级编程特性。该系列的每一个器件共享一个非常灵活的3,4或5线串行接口,组成该接口的输入和输出信号为:
该系列器件中的任何一款都支持多种配置方式,如下所示(不限于这些方式):
图1是数据在上升沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,DIN同步串行数据在SCLK的上升沿进入输入移位寄存器。收到16的整数倍(如,N*16)个SCLK脉冲后,CS置高,写入数据或指令生效。如果CS在N*16个SCLK周期之前就置高,则写入无效。
点击看大图
图1. 单器件写操作—SCLK上升沿数据同步输入
图2是数据在下降沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,DIN同步串行数据在SCLK的下降沿进入输入移位寄存器。收到16的整数倍(如,N*16)个SCLK脉冲后,CS置高,写入数据或指令生效。如果CS在N*16个SCLK周期之前就置高,则写入无效。
点击看大图
图2. 单器件写操作—SCLK下降沿数据同步输入
从器件种读取数据时,将UPIO1或UPIO2配置为DOUTRB (DOUT为读回)。接口在上电时采样DSP输入,判断采用哪个时钟边沿传输来自DOUTRB的串行数据。上电时,如果DSP接在DVDD上,数据在SCLK的上升沿同步输入,在SCLK的下降沿同步输出。上电时,如果DSP接在DGND上,数据在SCLK的下降沿同步输入,在SCLK的上升沿同步输出。
图3是数据在SCLK上升沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,在SCLK的上升沿,DIN 8位读指令同步进入输入移位寄存器。根据不同的读取长度,数据在下一个8或24 SCLK周期的DOUTRB上出现。24位读操作需要在8位读指令后写两个额外的NO-OP指令(0xFF),以保证数据的最后两字节由DOUTRB输出。DOUTRB输出数据在SCLK的下降沿改变,在SCLK的上升沿有效。整个读操作过程中,CS一直保持低电平。
点击看大图
图3. 单器件读操作—SCLK上升沿数据同步输入
图4是数据在SCLK下降沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,在SCLK的下降沿,DIN 8位读指令同步进入输入移位寄存器。根据不同的读取长度,数据在下一个8或24 SCLK周期的DOUTRB上出现。24位读操作在8位读指令后需要两个额外的NO-OP指令(0xFF),以保证数据的最后两字节由DOUTRB输出。DOUTRB的输出数据在SCLK的上升沿改变,在SCLK的下降沿有效。整个读操作过程中,CS一直保持低电平。
点击看大图
图4. 单器件读操作—SCLK下降沿数据同步输入
在菊花链上,第一个器件从总线主机得到DIN,其后的器件从前一个器件的DOUTDC_输出得到DIN。为使器件A通过串行接口将菊花链数据传送到器件B,在接收到16位指令序列后,器件A的CS信号必须保持低电平(没有上升沿)。DOUTDC_同步输出数据等同于同步输入DIN数据被延时了16个时钟周期。
菊花链上所有器件均在CS上升沿执行存储在串行寄存器的写指令(对于读指令参见菊花链和回读互作用一节)。如果在下一个写指令同步进入器件之前,没有出现CS的上升沿(CS保持低电平),那么新的写指令将会覆写输入移位寄存器中的旧指令。这样,数据可以在链上器件间相互传输而状态不会改变。对于那些不应受到影响的器件,对其发出NO-OP (0xFF)指令。
可以同时控制输入时钟沿和输出时钟沿,这意味着对于一个工作正常的菊花链,数据可能需要延时15.5,16或16.5个时钟周期。CPOL和CPHA控制位设置一个器件DIN到 DOUTDC_延时,以保证无论器件之间时钟如何配置,整个菊花链都可以正常工作。
CPOL和CPHA同SPI™接口中所描述的定义相似:
表1. DSP,CPOL和CPHA设置
*数据总是在SCLK有效沿(DOUTDC0上升沿,DOUTDC1下降沿)同步输出DOUTDC_。
图5是在一种菊花链配置方式下,写入多个器件时的CS,SCLK,DIN和DOUTDC0时序图,其中,链上每一个器件的DIN在SCLK上升沿同步输入,DOUTDC0将数据从一个器件传送到下一个器件。
点击看大图
图5. 菊花链—SCLK上升沿数据同步输入
进行菊花链写操作时,将CS置低以选中菊花链上的所有器件。来自总线主机或前一器件的DOUTDC0的数据同步进入每一个级联器件的DIN。只要CS保持低电平,器件将不受经过输入移位寄存器数据的影响。当数据已在菊花链上传输时,假设已有16的整数倍个(N*16) SCLK脉冲,驱动CS为高电平将使链上所有器件输入移位寄存器中存储的DAC指令同时生效。如果在N*16个SCLK周期之前,CS置高,那么链上的所有器件将忽略此次写操作。
图6是菊花链的一种特殊配置方式下,写入多个器件时的CS,SCLK,DIN和DOUTDC1时序图,其中,链上每一个器件的DIN在SCLK下降沿同步输入,DOUTDC1将数据从一个器件传送到下一个器件。
点击看大图
图6. 菊花链—SCLK下降沿数据同步输入
进行菊花链写操作时,将CS置低以选中菊花链上的所有器件。来自总线主机或前一器件的DOUTDC1的数据同步进入每一个级联器件的DIN。只要CS保持低电平,器件将不受经过输入移位寄存器数据的影响。当数据已在菊花链上传输时,假设已有16的整数倍个(N*16) SCLK脉冲,驱动CS为高电平将使链上所有器件输入移位寄存器中存储的DAC指令同时生效。如果在N*16个SCLK周期之前,CS置高,那么链上的所有器件将忽略此次写操作。
菊花链实例
下面的例子建立了由3个器件(A,B和C)组成的菊花链。器件A离总线主机最近。每一个器件与其他两个配置均不同。
具有数据回读的菊花链例子
该例使用两个器件:A和B,A离总线主机最近。如果器件A有DOUTRB和DOUTDC_,器件B有DOUTRB,那么以下步骤可以有效执行:
相互作用的第二个例子是只从器件A (距离总线主机最近)读取24位DAC,该指令可以正确执行。除了链上的第一个器件外,24位读信号同菊花链不兼容。这是因为当数据输出至DOUTDC_时,链上第一个器件将24位读信号转换为NO-OP。同样,一个24位读信号是32位的总指令长度,这同菊花链的16位指令序列不兼容。
当连接多个器件至一个共享串行接口时,可以按照以下要求进行:
点击看大图
图7. 多器件读操作—SCLK上升沿数据同步输入
点击看大图
图8. 多器件读操作—SCLK下降沿数据同步输入
注意,由于器件不需要CS上升沿对16位数据进行操作,而是直接将数据传送到下一个器件,因此DSP帧同步模式同菊花链模式不兼容。
帧同步模式下,可以通过一个共享4+N线串行接口对多器件进行读或写操作。N是共享串行接口的器件数量,同时也是片选线之和,这是由于每个器件都有自己的CS。在上电后DSP的第一个上升沿,器件进入DSP帧同步模式。如果不使用这种模式,如前节所示,上电时应将DSP连至DVDD或DGND。
DSP帧同步模式的主要优点是一个硬件信号(帧同步)控制接入串行总线上多个器件DSP的时序。由于DAC操作时序的关键因素不再是软件控制片选信号,因此该模式具有性能上的优势。一个充分利用这种特性的例子是多芯片CODEC,其共同的帧同步信号以同一速率驱动(永久使能) DAC和ADC。DSP软件在一次将DAC数据输入缓冲区,并将缓冲区的全部ADC数据读出,并允许串行接口硬件处理全双工数据传送。
点击看大图
图9. DSP帧同步模式—多路读操作
本手册为MAX5290-MAX5295,MAX5580-MAX5585,MAX5590-MAX5595用户可编程D/A转换器(DAC)提供详细的时序图和高级编程特性。该系列的每一个器件共享一个非常灵活的3,4或5线串行接口,组成该接口的输入和输出信号为:
- SCLK—串行时钟输入。根据不同的配置,数据可以在时钟的上升沿或下降沿,同步输入或输出串行接口。
- DIN—串行数据输入。
- CS—低电平有效芯片选择。除DSP帧同步模式外,对于其他所有模式,CS下降沿对应串行接口指令开始,CS上升沿对应指令结束。
- DSP—DSP在上电复位序列结束时进行采样,其状态决定了为DIN数据提供时钟的SCLK信号的有效沿。连接DSP至DVDD,则SCLK上升沿时数据同步输入,连接DSP至DGND,则SCLK下降沿数据同步输入。DSP也可进行有源驱动,在这种情况下,上电复位后DSP的第一个上升沿将使能DSP帧同步模式。
- UPIO1/UPIO2—该系列器件均有两个用户编程I/O端口(UPIO1和UPIO2),可以配置成包括串行数据输出端口在内的多种模式,既可以读回(DOUTRB),也可以是菊花链(DOUTDC0或DOUTDC1)。
该系列器件中的任何一款都支持多种配置方式,如下所示(不限于这些方式):
- 单器件写操作
- 单器件读操作
- 菊花链模式中,多器件的读写操作
- 多器件的直接读写操作(非DSP帧同步模式)
- DSP帧同步模式下多器件直接读写操作
对单器件的写操作
串行接口支持使用CS,SCLK和DIN三种输入的只写操作。将DSP连至DVDD,SCLK上升沿的同步输入数据。将DSP连至DGND,SCLK下降沿的同步输入数据。DSP在上电复位周期结束时被采样,SCLK时钟有效沿在检测到DSP的上升沿或器件断电前一直有效。图1是数据在上升沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,DIN同步串行数据在SCLK的上升沿进入输入移位寄存器。收到16的整数倍(如,N*16)个SCLK脉冲后,CS置高,写入数据或指令生效。如果CS在N*16个SCLK周期之前就置高,则写入无效。
点击看大图
图1. 单器件写操作—SCLK上升沿数据同步输入
图2是数据在下降沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,DIN同步串行数据在SCLK的下降沿进入输入移位寄存器。收到16的整数倍(如,N*16)个SCLK脉冲后,CS置高,写入数据或指令生效。如果CS在N*16个SCLK周期之前就置高,则写入无效。
点击看大图
图2. 单器件写操作—SCLK下降沿数据同步输入
对单器件的读操作
该系列器件串行接口可以支持多种读指令选项。多数情况下,由读指令产生的输出数据为8位,这样总的指令序列为16位(8位指令和8位输出数据)。对于DAC数据的读操作,接口从输入(12位)和所选通道的DAC (12位)寄存器同时输出数据。输出数据为24位,指令序列总长度为32位。从器件种读取数据时,将UPIO1或UPIO2配置为DOUTRB (DOUT为读回)。接口在上电时采样DSP输入,判断采用哪个时钟边沿传输来自DOUTRB的串行数据。上电时,如果DSP接在DVDD上,数据在SCLK的上升沿同步输入,在SCLK的下降沿同步输出。上电时,如果DSP接在DGND上,数据在SCLK的下降沿同步输入,在SCLK的上升沿同步输出。
图3是数据在SCLK上升沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,在SCLK的上升沿,DIN 8位读指令同步进入输入移位寄存器。根据不同的读取长度,数据在下一个8或24 SCLK周期的DOUTRB上出现。24位读操作需要在8位读指令后写两个额外的NO-OP指令(0xFF),以保证数据的最后两字节由DOUTRB输出。DOUTRB输出数据在SCLK的下降沿改变,在SCLK的上升沿有效。整个读操作过程中,CS一直保持低电平。
点击看大图
图3. 单器件读操作—SCLK上升沿数据同步输入
图4是数据在SCLK下降沿同步输入时,与器件通信的CS,SCLK,DIN时序图。将CS置低,在SCLK的下降沿,DIN 8位读指令同步进入输入移位寄存器。根据不同的读取长度,数据在下一个8或24 SCLK周期的DOUTRB上出现。24位读操作在8位读指令后需要两个额外的NO-OP指令(0xFF),以保证数据的最后两字节由DOUTRB输出。DOUTRB的输出数据在SCLK的上升沿改变,在SCLK的下降沿有效。整个读操作过程中,CS一直保持低电平。
点击看大图
图4. 单器件读操作—SCLK下降沿数据同步输入
对菊花链中多器件的写操作
该系列器件串行接口可以支持多种菊花链配置。数据在时钟的上升沿或下降沿同步进入链上的每一个器件。这样,链上前一个器件输出的串行数据可能在时钟的任意沿出现。串行接口可提供灵活的应用,如需要相同的时钟相位,或菊花链上时钟相位的交替变化。对一些威廉希尔官方网站 板级的考虑可能会影响如何选择时钟方案,如:- 时钟斜移—如果器件A和器件B之间出现了明显的时钟斜移,则可以考虑使用反相边沿数据传送(如,SCLK上升沿由器件A输出,SCLK下降沿输入器件B)。这种方法能够有效克服时钟斜移,但是如果没有进行仔细的威廉希尔官方网站 板设计,工作在串行接口支持的最大时钟速率时,该方案会难以实现。
- 时钟速率—如果必须工作在菊花链最大时钟速率下,可以考虑在整个链上采用同一个时钟沿。但是,采用这种方式前必须仔细设计威廉希尔官方网站 板。为保证菊花链的正常工作,应避免过长的数据传输线,明显的器件间的时钟斜移或者板上条件(温度,电源等)的大幅度变化等。
- 时钟占空比—由于数据从一个器件传送到另一个器件时,使用半个时钟周期,因此,菊花链上采用交替的时钟方案依赖于合理的时钟信号占空比。如果不仔细设计,采用低速但是占空比很高或很低的时钟时菊花链也不能正常工作。
- 低速时钟或数据边沿—菊花链上时钟信号驱动能力不足会导致缓慢的上升和下降时间。可以将这种情况当作特殊的时钟斜移来处理,这样可能会导致菊花链上不同器件的同步时钟出现在不同的时刻。
在菊花链上,第一个器件从总线主机得到DIN,其后的器件从前一个器件的DOUTDC_输出得到DIN。为使器件A通过串行接口将菊花链数据传送到器件B,在接收到16位指令序列后,器件A的CS信号必须保持低电平(没有上升沿)。DOUTDC_同步输出数据等同于同步输入DIN数据被延时了16个时钟周期。
菊花链上所有器件均在CS上升沿执行存储在串行寄存器的写指令(对于读指令参见菊花链和回读互作用一节)。如果在下一个写指令同步进入器件之前,没有出现CS的上升沿(CS保持低电平),那么新的写指令将会覆写输入移位寄存器中的旧指令。这样,数据可以在链上器件间相互传输而状态不会改变。对于那些不应受到影响的器件,对其发出NO-OP (0xFF)指令。
可以同时控制输入时钟沿和输出时钟沿,这意味着对于一个工作正常的菊花链,数据可能需要延时15.5,16或16.5个时钟周期。CPOL和CPHA控制位设置一个器件DIN到 DOUTDC_延时,以保证无论器件之间时钟如何配置,整个菊花链都可以正常工作。
CPOL和CPHA同SPI™接口中所描述的定义相似:
- CPOL描述时钟极性
- CPHA描述在任何给定的序列中,在第一个有效时钟边沿之前,是否有引导时钟边沿。
表1. DSP,CPOL和CPHA设置
DSP | CPOL | CPHA | DOUTDC1 (ALWAYS CLOCKED OUT ON RISING EDGE OF SCLK)* |
DOUTDC0 (ALWAYS CLOCKED OUT ON FALLING EDGE OF SCLK)* |
COMMENT |
DGND | 0 | 1 | DIN clocked in on falling edge of SCLK. Power-up state of CPOL/CPHA for this DSP connection. | ||
DVDD |
0 | 0 | DIN clocked in on rising edge of SLCK. Power-up state of CPOL/CPHA for this DSP connection. | ||
DGND | 0 | 0 | Invalid | Invalid | This combination is unused. |
DGND | 0 | 1 | Delay of 15.5 clocks from SCLK falling edge (active edge for DIN) to SCLK rising edge (active edge for DOUTDC1) | Delay of 15 clocks from SCLK falling edge (active edge for DIN) to SCLK falling edge (active edge for DOUTDC0) | |
DGND | 1 | 0 | Delay of 15.5 clocks from SCLK falling edge (active edge for DIN) to SCLK rising (active edge for DOUTDC1) | Delay of 16 clocks from SCLK falling edge (active edge for DIN) to SCLK falling edge (active edge for DOUTDC0) |
|
DGND | 1 | 1 | Invalid | Invalid | This combination is unused. |
DVDD | 0 | 0 | Delay of 16 clocks from SCLK rising (active edge for DIN) to SCLK rising (active edge for DOUTDC1) | Delay of 15.5 clocks from SCLK rising (active edge for DIN) to SCLK falling (active edge for DOUTDC0) | |
DVDD | 0 | 1 | Invalid | Invalid | This combination is unused. |
DVDD | 1 | 0 | Invalid | Invalid | This combination is unused. |
DVDD | 1 | 1 | Delay of 15 clocks from SCLK rising (active edge for DIN) to SCLK rising (active edge for DOUTDC1) | Delay of 15.5 clocks from SCLK rising (active edge for DIN) to SCLK falling (active edge for DOUTDC0) |
*数据总是在SCLK有效沿(DOUTDC0上升沿,DOUTDC1下降沿)同步输出DOUTDC_。
图5是在一种菊花链配置方式下,写入多个器件时的CS,SCLK,DIN和DOUTDC0时序图,其中,链上每一个器件的DIN在SCLK上升沿同步输入,DOUTDC0将数据从一个器件传送到下一个器件。
点击看大图
图5. 菊花链—SCLK上升沿数据同步输入
进行菊花链写操作时,将CS置低以选中菊花链上的所有器件。来自总线主机或前一器件的DOUTDC0的数据同步进入每一个级联器件的DIN。只要CS保持低电平,器件将不受经过输入移位寄存器数据的影响。当数据已在菊花链上传输时,假设已有16的整数倍个(N*16) SCLK脉冲,驱动CS为高电平将使链上所有器件输入移位寄存器中存储的DAC指令同时生效。如果在N*16个SCLK周期之前,CS置高,那么链上的所有器件将忽略此次写操作。
图6是菊花链的一种特殊配置方式下,写入多个器件时的CS,SCLK,DIN和DOUTDC1时序图,其中,链上每一个器件的DIN在SCLK下降沿同步输入,DOUTDC1将数据从一个器件传送到下一个器件。
点击看大图
图6. 菊花链—SCLK下降沿数据同步输入
进行菊花链写操作时,将CS置低以选中菊花链上的所有器件。来自总线主机或前一器件的DOUTDC1的数据同步进入每一个级联器件的DIN。只要CS保持低电平,器件将不受经过输入移位寄存器数据的影响。当数据已在菊花链上传输时,假设已有16的整数倍个(N*16) SCLK脉冲,驱动CS为高电平将使链上所有器件输入移位寄存器中存储的DAC指令同时生效。如果在N*16个SCLK周期之前,CS置高,那么链上的所有器件将忽略此次写操作。
菊花链实例
下面的例子建立了由3个器件(A,B和C)组成的菊花链。器件A离总线主机最近。每一个器件与其他两个配置均不同。
- CS置低以配置器件A。从总线主机发出指令至器件A将其UPIO1配置为DOUTDC0 (指令1)。该指令存储在器件A的输入移位寄存器中。将CS置高,执行存储在器件A输入移位寄存器中的指令。器件A配置完毕。
- CS置低以配置器件B。从总线主机发出经过器件A的指令将器件B的UPIO2配置为DOUTDC1 (指令2)。收到这16位写指令后,器件B的输入移位寄存器在随后的时钟周期内立即更新。
- 从总线主机发出指令至器件A覆写其输入移位寄存器数据,这样器件A的状态保持不变(指令3)。如果需要进行特殊的操作(如配置UPIO1,改变速率位等),可用任何指令替代器件A中的NO-OP。器件B的输入移位寄存器在这16个时钟周期内被前一指令进行更新。将CS置高,执行存储在器件A和器件B输入移位寄存器中的指令。器件A和器件B配置完毕。
- CS置低以配置器件C。从总线主机发出指令将器件C的UPIO1配置为DOUTDC1 (指令4),该指令将经过器件A和器件B。
- 从总线主机发出的指令将器件B的输入移位寄存器数据覆写,这样器件B的状态保持不变(指令5),该指令经过器件A。器件B的输入移位寄存器被步骤5的指令进行更新。
- 从总线主机发出的指令将器件A的输入移位寄存器数据覆写,这样器件A的状态保持不变(指令6)。器件B的输入移位寄存器被步骤6的指令进行更新。器件C的输入移位寄存器被步骤5的指令进行更新。将CS置高,执行存储在器件A、器件B和器件C输入移位寄存器中的指令。
STEP | DEVICE A (FROM BUS MASTER) |
DEVICE B (FROM DOUTDC_ OF DEVICE A) |
DEVICE C (FROM DOUTDC_ OF DEVICE B) |
RISING EDGE OF CS? |
1 | COMMAND 1 | - | - | YES |
2 | COMMAND 2 | - | - | NO |
3 | COMMAND 3 | COMMAND 2 | - | YES |
4 | COMMAND 4 | - | - | NO |
5 | COMMAND 5 | COMMAND 4 | - | NO |
6 | COMMAND 6 | COMMAND 5 | COMMAND 4 | YES |
菊花链和回读的互作用
该系列器件的每一个串行接口都有2个UPIO端口。一个可以配置为回读(DOUTRB),另一个可作为菊花链使用(DOUTDC1或DOUTDC0)。这种组合是非常有效的,大多数情况下,回读和菊花链都可以正常工作,但是有两种情况,这种配置会带来一些影响。具有数据回读的菊花链例子
该例使用两个器件:A和B,A离总线主机最近。如果器件A有DOUTRB和DOUTDC_,器件B有DOUTRB,那么以下步骤可以有效执行:
- 将CS置低。从总线主机发出8位读指令(指令1)至器件A。保持CS低电平,不要将其置高。
- 从总线主机发出一些其他的读或写指令(指令2)至器件A。器件B的输入移位寄存器被指令1更新。执行指令1的有效输出数据在器件A的DOUTRB出现。将CS置高,完成该指令序列。
- 执行指令1的有效输出数据在器件B的DOUTRB出现。器件A执行指令2。
相互作用的第二个例子是只从器件A (距离总线主机最近)读取24位DAC,该指令可以正确执行。除了链上的第一个器件外,24位读信号同菊花链不兼容。这是因为当数据输出至DOUTDC_时,链上第一个器件将24位读信号转换为NO-OP。同样,一个24位读信号是32位的总指令长度,这同菊花链的16位指令序列不兼容。
对多器件的直接读、写操作
如图7和图8所示,可以通过一个共享的3+N线串行接口对多器件进行读或写操作。N是共享串行接口的器件数量,同时也是片选线之和,这是由于每个器件都有自己的CS。读写操作遵从前面章节中的协议。SCLK,DIN和DOUTRB信号对所有的器件都相同。该方法同菊花链的两点主要不同为1)每一个器件都有自己的CS和2) DIN对所有器件都相同。当连接多个器件至一个共享串行接口时,可以按照以下要求进行:
- 同时选中多个芯片,然后通过一个单步写操作将相同的数据广播至几个器件。
- 为避免竞争,数据回读时,只能有一个器件的DOUTRB有效。对于没有选中的器件,DOUTRB为高阻抗,允许其他器件驱动总线。
- 连接在单个信号线(SCLK,DIN,DOUTRB)上的多器件负载减慢了串行接口的速度。速度减慢的程度取决于PCB布线和共享总线上的器件数量等外部因素。
- 由于CS线通常由微控制器或DSP端口来驱动,因此接入多个器件需要额外的软件开销。这和一个DAC应用情况不同,在DAC应用情况下,CS可以一直置低,或通过一个DSP基于硬件的帧同步信号来控制。
点击看大图
图7. 多器件读操作—SCLK上升沿数据同步输入
点击看大图
图8. 多器件读操作—SCLK下降沿数据同步输入
DSP帧同步模式
DSP帧同步模式的读写操作同前面几节所述的协议相似,但是有两点主要的不同。第一,写操作的开始以DSP的下降沿为参考,而不是CS信号(在DSP帧同步模式下,CS必须置低以便选中该器件)。第二,16位DAC数据或写指令在DSP下降沿之后的16个SCLK周期内有效。在DSP帧同步模式下,不需要其他模式下执行指令的CS上升沿条件。注意,由于器件不需要CS上升沿对16位数据进行操作,而是直接将数据传送到下一个器件,因此DSP帧同步模式同菊花链模式不兼容。
帧同步模式下,可以通过一个共享4+N线串行接口对多器件进行读或写操作。N是共享串行接口的器件数量,同时也是片选线之和,这是由于每个器件都有自己的CS。在上电后DSP的第一个上升沿,器件进入DSP帧同步模式。如果不使用这种模式,如前节所示,上电时应将DSP连至DVDD或DGND。
DSP帧同步模式的主要优点是一个硬件信号(帧同步)控制接入串行总线上多个器件DSP的时序。由于DAC操作时序的关键因素不再是软件控制片选信号,因此该模式具有性能上的优势。一个充分利用这种特性的例子是多芯片CODEC,其共同的帧同步信号以同一速率驱动(永久使能) DAC和ADC。DSP软件在一次将DAC数据输入缓冲区,并将缓冲区的全部ADC数据读出,并允许串行接口硬件处理全双工数据传送。
点击看大图
图9. DSP帧同步模式—多路读操作
评论
查看更多