9.1.3. cx88 驅動程式¶
作者:Gerd Hoffmann
9.1.3.1. cx88 資料手冊中缺失的文件¶
MO_OUTPUT_FORMAT (0x310164)
Previous default from DScaler: 0x1c1f0008
Digit 8: 31-28
28: PREVREMOD = 1
Digit 7: 27-24 (0xc = 12 = b1100 )
27: COMBALT = 1
26: PAL_INV_PHASE
(DScaler apparently set this to 1, resulted in sucky picture)
Digits 6,5: 23-16
25-16: COMB_RANGE = 0x1f [default] (9 bits -> max 512)
Digit 4: 15-12
15: DISIFX = 0
14: INVCBF = 0
13: DISADAPT = 0
12: NARROWADAPT = 0
Digit 3: 11-8
11: FORCE2H
10: FORCEREMD
9: NCHROMAEN
8: NREMODEN
Digit 2: 7-4
7-6: YCORE
5-4: CCORE
Digit 1: 3-0
3: RANGE = 1
2: HACTEXT
1: HSFMT
0x47 是 MPEG-2 傳輸流資料包的同步位元組。 資料手冊錯誤地宣告使用十進位制 47。 188 是長度。 所有符合 DVB 標準的前端都輸出帶有此起始程式碼的資料包。
9.1.3.2. Hauppauge WinTV cx88 IR 資訊¶
mux 的控制元件是 GPIO [0,1] 用於源,GPIO 2 用於靜音。
GPIO0 |
GPIO1 |
|
|---|---|---|
0 |
0 |
電視音訊 |
1 |
0 |
FM 收音機 |
0 |
1 |
線路輸入 |
1 |
1 |
單聲道調諧器旁路或 CD 直通(特定於調諧器) |
GPIO 16(我相信)連線到 IR 埠(如果存在)。
來自資料表
暫存器 24'h20004 PCI 中斷狀態
位 [18] IR_SMP_INT 在透過以下方式收集 32 個輸入樣本時設定
gpio[16] 引腳進入 GP_SAMPLE 暫存器。
資料表中缺少的內容
設定 4KHz 取樣率(大約 2 倍過取樣;對於我們的 RC5 相容遙控器來說足夠好)
將暫存器 0x35C050 設定為 0xa80a80
啟用取樣
將暫存器 0x35C054 設定為 0x5
在中斷遮蔽暫存器中啟用 IRQ 位 18(並提供處理程式)
GP_SAMPLE 暫存器位於 0x35C058
然後,位以指定的速率右移到 GP_SAMPLE 暫存器中; 當收到完整的 DWORD 時,您會收到中斷。 您需要從(過取樣的)IR 感測器位中恢復實際的 RC5 位。 (提示:尋找 RC5 雙相資料的 0/1 和 1/0 交叉)實際的原始 RC5 程式碼將跨越 2-3 個 DWORDS,具體取決於實際對齊方式。
我很確定,當沒有 IR 訊號時,接收器始終處於標記狀態 (1); 但雜散光等也會導致間歇性的噪聲值。 請記住,這是 IR 接收器狀態隨時間的自由執行樣本,因此不要假設任何樣本都從任何特定位置開始。
9.1.3.2.1. 附加資訊¶
這個資料表(谷歌搜尋)似乎對 RC5 基礎知識有一個很好的描述:http://www.atmel.com/dyn/resources/prod_documents/doc2817.pdf
本文件包含更多資料:http://www.nenya.be/beor/electronics/rc5.htm
本文件包含如何解碼雙相資料流:http://www.ee.washington.edu/circuit_archive/text/ir_decode.txt