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

本文件還有更多資訊:http://www.xs4all.nl/~sbp/knowledge/ir/rc5.htm