ZHCSHQ5A February 2018 – June 2018 OPT3101
PRODUCTION DATA.
AFE 具有片上序列發(fā)生器,可用于執(zhí)行各種操作。Table 19 中列出了序列發(fā)生器命令。每條指令為 12 位,其中的前四個 MSB 位作為操作碼,后八個位作為操作數(shù)。序列發(fā)生器可以執(zhí)行幅度或相位與寄存器閾值 COMPARE_REG1、COMPARE_REG2 的比較,并生成信號 COMP_STATUS(可以通過 DIG_GPO_SEL0 = 8 和 gpo1_mux_sel = 2 設(shè)置在 GP1 上觀察到此信號)。可以使用 COMP_IN_SEL 來選擇比較輸入類型。序列發(fā)生器每個樣本執(zhí)行一條命令。執(zhí)行命令的序列發(fā)生器中斷可以在數(shù)據(jù)準備好之后和下一個樣本開始之前置于樣本的開頭或樣本的末尾。可以使用 TG_SEQ_INT_START、TG_SEQ_INT_END、TG_SEQ_INT_MASK_START 和 TG_SEQ_INT_MASK_END 寄存器對序列發(fā)生器中斷進行編程。TG_SEQ_INT_START 和 TG_SEQ_INT_END 用于定義子幀內(nèi)中斷脈沖的位置。TG_SEQ_INT_MASK_START 和 TG_SEQ_INT_MASK_END 用于定義啟用脈沖的子幀。
序列發(fā)生器的一些用例包括:
| 操作碼 | 功能 | 說明 |
|---|---|---|
| 0000 | NOP | 操作數(shù)指示應(yīng)該執(zhí)行 NOP 的周期數(shù)。0 表示 1 個周期,1 表示 2 個周期,以此類推。例如,0000-0000 1111 表示在接下來的 16 個周期中,序列發(fā)生器不執(zhí)行任何操作。 |
| 0001 | WRITE | 此命令將操作數(shù)寫入 STATUS_OUT 寄存器。例如,0001-0110 0110 在 STATUS_OUT 端口 0110 01100 上生成值。STATUS_OUT 端口映射到Table 20 中列出的特定關(guān)鍵寄存器。僅當(dāng) EN_PROCESSOR_VALUES = 1 時,STATUS_OUT 值才會覆蓋寄存器值。 |
| 0010 | GOTO | 程序計數(shù)器 (PC) 轉(zhuǎn)到操作數(shù)指示的行。此命令對循環(huán)很有用。下一條命令在下一個序列發(fā)生器中斷處執(zhí)行。例如,0010-0000 0000 將 PC 設(shè)置為程序存儲器的第一行,從而在循環(huán)中執(zhí)行指令。 |
| 0011 | DGOTO | 在此命令中,僅當(dāng) STATUS_IN_REG 位為 1 時,PC 才會轉(zhuǎn)到操作數(shù)指示的行。否則,PC 將保持相同的命令,直到 STATUS_IN_REG 寄存器值變?yōu)?1。下一條命令在下一個幀 VD 處執(zhí)行。例如,0011-0000 0000 會暫停程序,直到 STATUS_IN_REG 位設(shè)置為 1。執(zhí)行此設(shè)置后,循環(huán)將重新開始。 |
| 0100 | DrGOTO | 在此指令中,PC 不經(jīng)過任何延遲而直接進入操作數(shù)指示的行。這種情況下還會執(zhí)行下一條指令。下一條命令在同一個幀 VD 處執(zhí)行。 |
| 0101 | COMP0 | 在此命令中,CPU 比較 COMP_IN 和 COMPARE_REG1。如果 COMP_IN ≤ COMPARE_REG1,程序計數(shù)器將保持原樣,且 COMP_STATUS 端口為 0。如果比較失敗,程序計數(shù)器將移動到操作數(shù)指示的行,且 COMP_STATUS 變?yōu)?1。 |
| 0110 | COMP0_INV | 與 COMP 類似,但使用的比較為:COMP_IN ≥ COMPARE_REG2 |
| 0111 | COMP_WINDOW | 在此命令中,PC 永遠保持相同的命令。如果 (COMP_IN ≥ COMPARE_REG1) 且 (COMP_IN ≤ COMPARE_REG2),則 COMP_STATUS 變?yōu)?1,否則 COMP_STATUS = 0。 |
| 1000 | COMP2 | 如果 (COMP_IN ≥ COMPARE_REG1) 且 (COMP_IN ≤ COMPARE_REG2),則 COMP_STATUS 變?yōu)?1,否則 COMP_STATUS = 0。如果條件為 TRUE,則程序計數(shù)器保持相同的命令,否則移動到操作數(shù)指示的行。 |
| 1001 | COMP3 | 與 COMP2 相似。不同之處在于,無論比較結(jié)果如何,程序計數(shù)器都會移動到操作數(shù)指向的指令。如果滿足比較要求,則 COMP_STATUS 設(shè)置為 1,否則設(shè)置為 0。 |
| 1010 | COMP_HYST | 在此命令中,PC 永遠保持相同的命令。比較中存在遲滯。如果 (COMP_IN ≤ COMPARE_REG1),則 COMP_STATUS = 0,否則如果 (COMP_IN ≥ COMPARE_REG2),則 COMP_STATUS = 1。 |
| 1011 | COMP1 | 在此命令中,CPU 比較 COMP_IN 和 COMPARE_REG1。如果 COMP_IN ≤ COMPARE_REG1,程序計數(shù)器將保持原樣,且 COMP_STATUS 端口為 0。如果比較失敗,程序計數(shù)器將移動到操作數(shù)指示的行,且 COMP_STATUS 變?yōu)?1。執(zhí)行此命令并在同一中斷處移至下一條命令。 |
| 1100 | COMP1_INV | 與 COMP1 類似,但使用的比較為 COMP_IN ≥ COMPARE_REG2。序列發(fā)生器執(zhí)行此命令并在同一中斷處移至下一條命令。 |
| 1101–1111 | 無效 |
| STATUS_OUT | 寄存器映射 |
|---|---|
| [0] | INT_XTALK_CALIB |
| [1] | EN_DEALIAS_MEAS |
| [2] | START_FREQ_CALIB |
| [4:3] | SEL_TX_CH |
| [5] | SEL_HDR_MODE |
| [7:6] | 無效 |
| 寄存器 | 地址 | 說明 |
|---|---|---|
| COMP_IN_SEL | 13h[2:0] | 選擇用于 comp_in 的值。
0:AMP_OUT | 1:DEALIAS_BIN | 2:去混疊模式下的相位輸出 | 3:PHASE_OUT |
| COMPARE_REG1 | 13h[18:3] | 序列發(fā)生器比較閾值 1 |
| COMPARE_REG2 | 14h[15:0] | 序列發(fā)生器比較閾值 2 |
| EN_SEQUENCER | 14h[16] | 啟用序列發(fā)生器。 |
| EN_PROCESSOR_VALUES | 14h[17] | 使用處理器值而不是寄存器值。 |
| STATUS_IN_REG | 14h[18] | 此寄存器用于控制 CPU 中的程序流 |
| DIS_INTERRUPT | 14h[19] | 禁用可觸發(fā)序列發(fā)生器的中斷。 |
| COMMAND0 至 COMMAND19 | 15h[11:0] 至 1Eh[23:12] | 序列發(fā)生器命令寄存器。共有 20 個命令寄存器可用。 |