可以通过设置 DDS_IMODE=1 来启用索引模式。索引模式允许 TRIG[4:1] 引脚在 DDS 由 TRIG[0] 触发时,选择矢量存储器中要跳转到的 16 个位置之一。这允许用户随机访问矢量存储器的 16 个部分(触发多个不同波形中的一个)。
任何 DSP 通道都可以在索引模式下运行,但用户必须通过设定 TRIG_TYPEn=4 和 TRIG_SELn=0,将 DSP 通道配置为由 TRIG[0] 触发。多个 DSP 通道可以同时在索引模式下运行,但 DSP 通道都共用 TRIG[4:0] 引脚,因此用户无法唯一地对通道建立索引。请注意,DSP 通道 0 和 2 无法访问太多矢量,因此对于索引模式而言不是很好的选择。建议将通道 3 用于索引模式,以便可以为 16 个唯一的位置建立索引。如果用户尝试跳转到大于分配给通道的矢量数量的矢量编号,该地址将被混叠回通道的分配中。
在索引模式中,矢量被正常处理,但是进行了以下更改:
- 每次 DDS 接收到触发信号时,TRIG[4:1] 的当前值乘以 16,并存储在名为 VINDEX 的内部寄存器中。
- 如果 DSP 通道只能访问 128 个矢量,那么 VINDEX 的位 7 将被忽略(地址混叠)。如果只有 64 个矢量可用,则位 7 和 6 都被忽略。
- 如果在处理器等待触发时 收到触发信号,则会更新 VINDEX 寄存器,然后处理器跳转到 VINDEX 指定的矢量并立即播放该矢量。如果新矢量的 VTRIG_MODE=1,则使用触发信号,否则触发信号将被放入触发队列中。如果 DDS_SYM=1,VINDEX 将复制到 VSYM(矢量处理器记忆对称播放的起始索引,以便稍后递减索引)。
- 如果在处理器未等待触发 时接收到触发信号,则会更新 VINDEX 寄存器,并且触发信号会被放入队列中,但播放不会中断。VINDEX 的新值可在以后使用(请参阅以下项目)。
- 当 DDS_SYM=0 时(非对称模式),并且处理器完成 LAST_VEC=1 的矢量时,处理器跳转到 VINDEX 指定的矢量(而不是将矢量指针设置为 0)。
- 5.当 DDS_SYM=1(对称模式),并且矢量指针处于递减阶段时,矢量指针不会递减到 VINDEX,而是递减到 VSYM。一旦 VSYM 指定的矢量完成,对称序列就完成,因此处理器跳转到 VINDEX 指定的矢量并设置 VSYM=VINDEX(此定义允许一个对称序列在执行另一个对称序列时排入队列)。