硬件驱动篇 | 5x24 模拟开关阵列芯片 CH446X
5x24 模擬開關陣列芯片 CH446X
一、概述
CH446X 是 5x24 矩陣模擬開關芯片。CH446X 包含 120 只模擬開關,分布于 5x24 信號通道矩陣的各個交叉點,每只模擬開關都可以獨立的開啟或者關閉,從而實現 5x24 信號通道的任意路由。
二、引腳
三、功能說明
參考首頁的框圖,CH446X 芯片內部分為三個部分:接口控制邏輯、128 只鎖存器、120 只模擬開關陣列。
128 只模擬開關分布于由 24 個 X 端口和5 個 Y 端口組成的 5x24 矩陣的每個交叉點,使得任意一個 X 端口和任意一個 Y 端口之間能夠在需要時導通或者斷開,甚至可以使某兩個 X 端口分別導通到某個 Y 端口,實現任意兩個 X 端口之間或者任意兩個 Y 端口之間的間接導通(CH446X 雖然有 128 只鎖存器,但是只有 120 只模擬開關,有 8 只鎖存器沒有任何用途)
128 只鎖存器用于分別控制 128 只模擬開關的導通或者斷開,128 只鎖存器被編址為 0 到 127,由 7 位地址 ADDR6~ADDR0 譯碼后選擇。從 RST 引腳輸入高電平復位信號可以將所有鎖存器清 0,從而導致所有模擬開關斷開。需要開啟或者關閉某一模擬開關時,應該通過 7 位的 ADDR 提供鎖存器的地址,并通過 DAT 提供開關數據(1 則導通,0 則關閉),然后產生一個 ACT 激活脈沖,將開關數據寫入由 ADDR 譯碼指定的鎖存器,實現對指定的某個模擬開關的控制。
接口控制邏輯主要用于產生 ADDR 地址和 ACT 激活脈沖。在串行地址輸入方式下,由 CS/CK 引腳輸入時鐘,在其每個上升沿,從 DAT 引腳依次輸入 ADDR6、ADDR5直到ADDR1、ADDR0(分別對應于 AY2、AY1 直到 AX1、AX0),CS/CK 引腳需要提供 7 個上升沿得到 7位地址,并由 STB 引腳輸入的高電平選通脈沖直接產生 ACT 激活脈沖。
實際上,在串行地址輸入方式下,ACT 信號只是來自 STB 引腳的輸入。RST 復位信號優先于 ACT 信號,當 RST 輸入高電平時,ACT 信號將被忽略,所有鎖存器總是被清 0。在 ACT 激活脈沖有效期間,DAT 引腳可以動態改變輸入的開關數據,并使得相應的模擬開關實時地導通或者關閉,但是在 ACT 信號結束之前(即STB 的下降沿之前),DAT 引腳的輸入數據應該保持穩定以便正確地鎖存數據。
下圖是一個串行地址輸入的實例,控制 14H 地址(Y1 和 X4 之間)的模擬開關,先開再關。
下表是 CH446X 芯片 7 位地址 ADDR 的譯碼真值表,也是 120 只模擬開關的編址表。
四、應用 -- 串行地址輸入
如果 VEE 接負電壓,那么模擬開關可以通過負電壓的模擬信號,否則 VEE 接 GND,模擬開關只能通過高于-0.3V 的模擬信號。
由于模擬電路與數字電路共用 VDD,為減少干擾,VDD 和 VEE 引腳必須外接退耦電容,并且建議將數字輸入信號的邊沿適當放緩,降低傳輸頻率。另外,對于強干擾的應用環境,單片機可以每隔數秒定期對 CH446 進行刷新,確保各個模擬開關處于正確的開關狀態。
串行地址輸入方式下的控制步驟:通過 DAT 引腳依次提供 7 位地址并用 CS/CK 引腳的 7 個上升沿移入 CH446,通過 DAT 引腳提供數據、向 STB 引腳提供一個高電平脈沖。
如果單片機通過 SPI 總線連接 CH446X,那么 SPI 提供的一字節 8 位數據的位 7 將被 CH446 丟棄,SPI 的位 6 到位 0 作為地址,單片機 SPI 的串行數據輸出引腳連接 DAT 引腳提供開關數據,單片機使用一個獨立引腳控制 CH446 的 STB 引腳。
圖為8x16 矩陣模擬開關芯片CH446Q,CH446X類似
五、程序接口
1 /* *****************************************************
2 // 函數功能:CH446X模擬開關復位,即通道全部關閉
3 // 輸入參數:
4 // 輸出參數:
5 // 函數返回:
6 // 修改記錄:
7 // 補充說明:
8 ***************************************************** */
9 void Control_Switch_Reset(void)
10 {
11 CH446X_RST = 1; // RST引腳高電平
12 CH446X_RST = 1;
13 CH446X_RST = 1;
14 NOP; // 延時
15 NOP;
16 NOP;
17 NOP;
18 NOP;
19 NOP;
20 CH446X_RST = 0;
21 CH446X_RST = 0;
22 }
23
24 /* *****************************************************
25 // 函數功能:CH446X模擬開關通道選擇導通
26 // 輸入參數:
27 // 輸出參數:
28 // 函數返回:
29 // 修改記錄:
30 // 補充說明:
31 ***************************************************** */
32 void Control_Switch_State(u8 Address,u8 State)
33 {
34 u8 ByteCnt;
35
36 CH446X_STB = 0;
37 CH446X_DAT = 0;
38 NOP;
39 NOP;
40 for(ByteCnt = 0; ByteCnt < 7; ByteCnt++ )
41 {
42 CH446X_CK = 0;
43 NOP;
44 if( Address & 0x80 )
45 {
46 CH446X_DAT = 1;
47 }
48 else
49 {
50 CH446X_DAT = 0;
51 }
52 CH446X_CK = 1;
53 NOP;
54 NOP;
55 NOP;
56 NOP;
57 NOP;
58 Address <<= 1; // 左移1位
59 }
60 CH446X_CK = 0;
61 if( State == 1 )
62 {
63 CH446X_DAT =1;
64 }
65 else
66 {
67 CH446X_DAT =0;
68 }
69 NOP;
70 NOP;
71 NOP;
72 NOP;
73 CH446X_STB =1;
74 NOP;
75 NOP;
76 CH446X_STB =0;
77 NOP;
78 NOP;
79 }
80
81 void main( void )
82 {
83 Control_Switch_Reset();
84
85 Control_Switch_State(0x00, 1); // Y0,X0導通
86 Control_Switch_State(0x01, 1); // Y0,X1導通
87 while(1)
88 {
89
90 }
91
92 }
總結
以上是生活随笔為你收集整理的硬件驱动篇 | 5x24 模拟开关阵列芯片 CH446X的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英伟达 RTX 40 笔记本 GPU 性
- 下一篇: 离谱!小米员工吐槽Redmi新机支持双S