可以通過設(shè)置 DDS_IMODE=1 來啟用索引模式。索引模式允許 TRIG[4:1] 引腳在 DDS 由 TRIG[0] 觸發(fā)時(shí),選擇矢量存儲(chǔ)器中要跳轉(zhuǎn)到的 16 個(gè)位置之一。這允許用戶隨機(jī)訪問矢量存儲(chǔ)器的 16 個(gè)部分(觸發(fā)多個(gè)不同波形中的一個(gè))。
任何 DSP 通道都可以在索引模式下運(yùn)行,但用戶必須通過設(shè)定 TRIG_TYPEn=4 和 TRIG_SELn=0,將 DSP 通道配置為由 TRIG[0] 觸發(fā)。多個(gè) DSP 通道可以同時(shí)在索引模式下運(yùn)行,但 DSP 通道都共用 TRIG[4:0] 引腳,因此用戶無法唯一地對(duì)通道建立索引。請(qǐng)注意,DSP 通道 0 和 2 無法訪問太多矢量,因此對(duì)于索引模式而言不是很好的選擇。建議將通道 3 用于索引模式,以便可以為 16 個(gè)唯一的位置建立索引。如果用戶嘗試跳轉(zhuǎn)到大于分配給通道的矢量數(shù)量的矢量編號(hào),該地址將被混疊回通道的分配中。
在索引模式中,矢量被正常處理,但是進(jìn)行了以下更改:
- 每次 DDS 接收到觸發(fā)信號(hào)時(shí),TRIG[4:1] 的當(dāng)前值乘以 16,并存儲(chǔ)在名為 VINDEX 的內(nèi)部寄存器中。
- 如果 DSP 通道只能訪問 128 個(gè)矢量,那么 VINDEX 的位 7 將被忽略(地址混疊)。如果只有 64 個(gè)矢量可用,則位 7 和 6 都被忽略。
- 如果在處理器等待觸發(fā)時(shí) 收到觸發(fā)信號(hào),則會(huì)更新 VINDEX 寄存器,然后處理器跳轉(zhuǎn)到 VINDEX 指定的矢量并立即播放該矢量。如果新矢量的 VTRIG_MODE=1,則使用觸發(fā)信號(hào),否則觸發(fā)信號(hào)將被放入觸發(fā)隊(duì)列中。如果 DDS_SYM=1,VINDEX 將復(fù)制到 VSYM(矢量處理器記憶對(duì)稱播放的起始索引,以便稍后遞減索引)。
- 如果在處理器未等待觸發(fā) 時(shí)接收到觸發(fā)信號(hào),則會(huì)更新 VINDEX 寄存器,并且觸發(fā)信號(hào)會(huì)被放入隊(duì)列中,但播放不會(huì)中斷。VINDEX 的新值可在以后使用(請(qǐng)參閱以下項(xiàng)目)。
- 當(dāng) DDS_SYM=0 時(shí)(非對(duì)稱模式),并且處理器完成 LAST_VEC=1 的矢量時(shí),處理器跳轉(zhuǎn)到 VINDEX 指定的矢量(而不是將矢量指針設(shè)置為 0)。
- 5.當(dāng) DDS_SYM=1(對(duì)稱模式),并且矢量指針處于遞減階段時(shí),矢量指針不會(huì)遞減到 VINDEX,而是遞減到 VSYM。一旦 VSYM 指定的矢量完成,對(duì)稱序列就完成,因此處理器跳轉(zhuǎn)到 VINDEX 指定的矢量并設(shè)置 VSYM=VINDEX(此定義允許一個(gè)對(duì)稱序列在執(zhí)行另一個(gè)對(duì)稱序列時(shí)排入隊(duì)列)。