內部整合電路聲音 (i2s) 控制器

24
1 13-1 內內內內內內內內 (I2S) 內內內

Upload: maitland

Post on 16-Mar-2016

109 views

Category:

Documents


5 download

DESCRIPTION

內部整合電路聲音 (I2S) 控制器. 大綱. 概觀 訊號說明 控制器操作 序列音訊時脈與取樣頻率 資料格式 暫存器 中斷. 概觀. I2S 是一種數位立體音訊協定 I2S 控制器 (I2SC) 控制 I2S 連結 (I2SLINK) I2S 連結是一個立體音訊的低電源四支腳位的序列介面 I2S 介面和音訊編碼解碼器‘ 97 (AC’97) 介面可能不能同時使用. 概觀 (cont.). I2SC 是由緩衝器、狀態暫存器、控制暫存器、平行序列轉換器和計數器組成 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 內部整合電路聲音 (I2S) 控制器

113-1

內部整合電路聲音 (I2S) 控制器

Page 2: 內部整合電路聲音 (I2S) 控制器

213-2

大綱 概觀 訊號說明 控制器操作 序列音訊時脈與取樣頻率 資料格式 暫存器 中斷

Page 3: 內部整合電路聲音 (I2S) 控制器

313-3

概觀 I2S 是一種數位立體音訊協定 I2S 控制器 (I2SC) 控制 I2S 連結 (I2SLINK) I2S 連結是一個立體音訊的低電源四支腳位的序列介面 I2S 介面和音訊編碼解碼器‘ 97 (AC’97) 介面可能不能同時使用

Page 4: 內部整合電路聲音 (I2S) 控制器

413-4

概觀 (cont.)

I2SC 是由緩衝器、狀態暫存器、控制暫存器、平行序列轉換器和計數器組成 使用在應用程式處理器系統記憶體和一個外部I2S 編碼解碼器之間的數位化音訊傳輸。 為了重播放數位化音訊的或合成音訊的產生,I2SC 從應用程式處理器系統記憶體檢索數位化音訊取樣且將它們經由 I2SLINK 傳送到編碼解碼器,再由編碼解碼器中的外部數位到類比轉換器轉換音訊取樣成為類比音訊波形

Page 5: 內部整合電路聲音 (I2S) 控制器

513-5

概觀 (cont.)

為了記錄數位化音訊, I2SC 從一個編碼解碼器 (經由 I2SLINK) 接收數位化音訊取樣且將它們儲存到應用程式處理器系統記憶體 I2S控制器支援 標準 I2S 與 MSB 調整 I2S 格式 I2S 資料能夠由 DMA 控制器或程式 I/O 來儲存到系統記憶體或是從系統記憶體取得

Page 6: 內部整合電路聲音 (I2S) 控制器

613-6

概觀 (cont.)

I2S 控制器以四支腳位連接到一個外部編碼解碼器: 一個位元率時脈 (BITCLK) ,能使用一個內部或一個外部來源資料 一種格式化或“左 /右”控制訊號 (SYNC) 二個序列音訊腳位,一個做為輸入 (SDATA_IN) 和另一個做為輸出 (SDATA_OUT) 一個可選擇的系統時脈 (SYSCLK) 也由 I2SC 傳送到編碼解碼器

Page 7: 內部整合電路聲音 (I2S) 控制器

713-7

訊號說明 SYSCLK 是 I2S 單元中所有時脈的基礎時脈 在 2 MHz 與 12.2 MHz 之間 頻率是 256 倍於音訊取樣頻率 只有在 BITCLK 組態為輸出時, SYSCLK 由應用程式處理器驅動

Page 8: 內部整合電路聲音 (I2S) 控制器

813-8

訊號說明 (cont.)

表 14-1. 外部介面到編碼解碼器名稱 方向 說明GP32/SYSCLK

O 系統時脈 = BITCLK * 4 ,只有編碼解碼器能使用GP28/BITCLK

I 或 O 位元率時脈 = SYNC * 64GP31/SYNC

O 識別 左 /右 GP30/SDATA_OUT

O 序列音訊輸出資料到編碼解碼器

GP29/SDATA_IN

I 序列音訊從編碼解碼器輸入資料

Page 9: 內部整合電路聲音 (I2S) 控制器

913-9

控制器操作 I2S 控制器 (I2SC) 能經由處理器或 DMA 控制器其中一個來進行存取 處理器使用程式 I/O 指令來存取 I2SC 且能存取下列型式的資料 • I2SC 暫存器資料 • I2SC FIFO 資料 • I2S 編碼解碼器資料

Page 10: 內部整合電路聲音 (I2S) 控制器

1013-10

控制器操作 (cont.) DMA 控制器能夠只存取 FIFO DMA 控制器對 I2SC發出的下列 DMA要求做出回應

– 傳送 FIFO 要求是以傳送臨界值 (TFTH) 設定為基礎,如果所傳送的 FIFO 數少於傳送臨界值 (TFTH) 加一個通道時,則傳送 FIFO 要求被設定 – 接收 FIFO 要求是以接收臨界值 (RFTH) 設定為基礎,如果所接收 FIFO 數多於接收臨界值 (RFTH) 加一個通道時,則接收 FIFO 要求被設定

Page 11: 內部整合電路聲音 (I2S) 控制器

1113-11

初始化 1. 藉由設計 SYSUNIT 的 GPIO 方向暫存器、 SYSUNIT 的 GPIO 交替功能選擇暫存器和 I2SC的序列音訊控制器廣域控制暫存器 (位元 2)來設置 BITCLK 方向。 2. 選擇標準 I2S 或 MSB 調整 I2S 模式的操作,可以由設計序列音訊控制器 I2S/MSB 調整控制暫存器 (SACR1) 的位元 0來完成

Page 12: 內部整合電路聲音 (I2S) 控制器

1213-12

關閉與啟動音訊重播 當 I2SC 啟動時,音訊傳輸會自動啟動 重播可以藉由觸發 SACR1 暫存器中的 DRPL 位元來停止 影響 •所有 I2SLINK 重播活動關閉 •傳送 FIFO 指標會重置為 0 •傳送 FIFO 填入值會重置為 0 •0會透過 I2SLINK 傳送 •傳送的 DMA 要求是關閉

Page 13: 內部整合電路聲音 (I2S) 控制器

1313-13

關閉與啟動音訊錄音 當 I2SC 啟動時,音訊錄音會自動啟動 錄音也可以藉由觸發 SACR1 暫存器中的 DREC 位元來停止 影響 •I2SLINK 錄音動作關閉 •接收 FIFO 指標會重置為 0 •接收 FIFO 填入值會重置為 0 •任何由 DMA/CPU 的讀取操作會以 0回傳 •接收的 DMA 要求關閉

Page 14: 內部整合電路聲音 (I2S) 控制器

1413-14

傳送 FIFO 錯誤 狀態位元在傳送欠載狀況期間設置,它會觸發一個中斷 (假如中斷是致能的話 ) 1. 有效傳送的資料在記憶體中仍然是可用的但是 DMA控制器極需要傳送的 FIFO因為它在服務其他有較高優先權的週邊設備。 2. DMA 控制器已經從記憶體傳送所有有效資料到傳送的 FIFO 第二個情況促使最後的有效取樣透過 I2SLINK 來回應直到關閉 SACR0[ENB]位元來關掉 I2SC 。

Page 15: 內部整合電路聲音 (I2S) 控制器

1513-15

接收 FIFO 錯誤 狀態位元在接收滿溢狀況期間設置,它會觸發一個中斷 (假如中斷是致能的話 )

Page 16: 內部整合電路聲音 (I2S) 控制器

1613-16

尾端位元組 當編碼解碼器已經完成傳送有效資料, I2SC將記錄零,且這將繼續直到關閉 SACR0[ENB]位元來關掉單元。假如接收資料的總緩衝區容量小於接收臨界值時, I2SC 將記錄零,當所設計的臨界值到達時,接收 DMA 要求將執行。

Page 17: 內部整合電路聲音 (I2S) 控制器

1713-17

序列音訊時脈與取樣頻率 音訊時脈分配暫存器 (31:0)

SYSCLK =147.6MHz/(SADIV)

BITCLK =SYSCLK / 4

SYNC 或取樣頻率 =BITCLK / 64

0x0000-000C 12.288 MHz 3.072 MHz

48.000 kHz

0x0000-000D 11.343 MHz 2.836 MHz

44.308 kHz

0x0000-001A 5.671 MHz 1.418 MHz

22.154 kHz

0x0000-0024 4.096 MHz 1.024 MHz

16.000 kHz

0x0000-0034 2.836 MHz 708.92kHz

11.077 kHz

0x0000-0048 2.048 MHz 512.00kHz

8.000 kHz

Page 18: 內部整合電路聲音 (I2S) 控制器

1813-18

FIFO 與記憶體格式 FIFO 緩衝區為 16個字元的深度和 32 位元的寬度,在每一個方向每個通道可儲存 32 個取樣 音訊資料每 32 位元的字儲存二個取樣 (左 +右 ),即使取樣小於 16位元。 當右通道資料使用 32 位元字的位元 [31:16]時,左通道資料佔用位元 [15:0]。在每一個 16位元欄位中,音訊取樣是向左調整,而未使用位元在右側(LSB) 填入零

Page 19: 內部整合電路聲音 (I2S) 控制器

1913-19

I2S 與 MSB 調整序列音訊格式 I2S 資料格式 (16 位元 )

MSB 調整資料格式 (16 位元 )

Page 20: 內部整合電路聲音 (I2S) 控制器

2013-20

DMA 服務所採用的 TFTH 與 RFTH DMA 控制器只能設計來傳送 8、 16或 32 位元組的資料,這符合 2、 4或 8個 FIFO 取樣,介紹 TFTH 與 RFTH 的值來預防傳送 FIFO滿溢錯誤和接收 FIFO 欠載錯誤

Page 21: 內部整合電路聲音 (I2S) 控制器

2113-21

TFTH 與 RFTHDMA 傳送容量 FIFO 通道數 TFTH 值 RFTH 值

Min Max Min

Max

8 Bytes 2 0 14 1 15

16 Bytes 4 0 12 3 15

32 Bytes 6 0 8 7 15

Page 22: 內部整合電路聲音 (I2S) 控制器

2213-22

序列音訊時脈除數暫存器 (SADIV) 這個暫存器使用來產生六個不同的 BITCLK 頻率和六個不同的取樣頻率,所有位元為讀取 /寫入

Page 23: 內部整合電路聲音 (I2S) 控制器

2313-23

SADIV

位元 名稱 說明 6:0 SADIV • 000 1100 = BITCLK of

3.072MHz• 000 1101 = BITCLK of 2.836 MHz• 001 1010 = BITCLK of 1.418MHz• 010 0100 = BITCLK of 1.024MHz• 011 0100 = BITCLK of 708.92 KHz• 100 1000 = BITCLK of 512.00 KHz

Page 24: 內部整合電路聲音 (I2S) 控制器

2413-24

中斷 下列 SASR0 狀態位元,假如中斷致能的話會中斷處理器:• 接收 FIFO服務 DMA 要求 (RFS)• 傳送 FIFO服務 DMA 要求 (TFS)• 傳送欠載 (TUR)• 接收滿溢 (ROR)