DS1807由兩個對數數字電位計(POTS)組成,用於音頻音量調節。每個鍋有64個體積水平加上靜音設置。每個罐的體積級別設置在雙線I2C串行接口上。我們將向您展示如何連接和接口下面的DS1807。
DS1807 I2C音頻音量電位計(Digikey#DS1807 + -ND,3.04美元)
連接
公共汽車海盜
DS1807(PIN#)
GND.
GND(1)
GND.
A2(2)
GND.
A1(3)
GND.
A0(4)
GND.
AGND(11)
SDA.
SDA(12)
鐘
SCL(13)
+ 5Volts.
VCC(14)
我們將DS1807連接到總線海盜通用串行接口工具,如表所示,相同的基本原理適用於任何自定義配置。我們使用了公共汽車海盜的5伏電源,但DS1807也將在3.3Volts工作。 I2C需要每個信號線上的上拉電阻,我們使用總線海盜的車載電阻連接到板上的5Volt電源。
將DS1807連接到數據表第3頁上的音頻源。將原始音頻信號連接到H引腳並將L引腳連接到地,衰減音頻信號將來自W銷。
界面
首先,設置I2C模式的總線海盜,並激活5Volt電源。我們在最後一部分郵寄中介紹了這個程序。
I2C> V <-VOLTAGE監視器 9xx電壓監控:5V:4.9 | 3.3V:0.0 | vpullup:5.0 | I2C>
通過配置的電源,請檢查電壓監視器(V)以確保5Volt電源處於活動狀態,並且在上拉電阻處存在5Volts。
I2C>(0)< - 列表可用宏 0.Macro菜單 1.7bit地址搜索 I2C>(1)< - 運行地址搜索 XXX搜索7bit I2C地址空間。 找到設備: 0x50 0x51 0x52 <-potential地址 I2C>
總線海盜的地址搜索宏是一種快速的方法來定位I2C設備而不檢查數據表。 0x50是I2C寫入地址,因為最後一位為0,0x51是讀取地址(最後一位1)。 0x52可能是一個組/全局寫入地址,因為它沒有相應的讀取地址。
我們還可以從數據表中找出地址:基地址為0101加上三個地址選擇位(A0-2,全接地,000)和寫入或讀取位(0或1)給出0b01010000(0x50)。
I2C> [0x51 R R] < - 讀取壺值 210 I2C啟動條件 220 I2C寫入:0x51 GOT ACK:是<-Device讀取地址 230 I2C讀取:0x3F <-POT0 230 I2C讀取:0x3F <-POT1 240 i2c停止條件 I2C>
首先,我們讀取啟動時的電位器值。 [發出I2C啟動條件,0x51是設備讀取地址,“r r”讀取兩個字節,並且“ris”發出I2C停止命令。默認啟動值為63(0x3F),靜音上方一個位置(數據表第2頁)。
I2C> [0x50 0B10101001 0] < - 寫pot0 210 I2C啟動條件 220 I2C寫入:0x50 GOT ACK:是<-DS1807寫地址 220 I2C寫入:0xA9 GOT ACK:是<-pot0 write命令 220 I2C寫入:0x00 GOT ACK:是<-volume設置 240 i2c停止條件 I2C> [0x50 0B10101010 64] < - 寫pot1 210 I2C啟動條件 220 I2C寫入:0x50 GOT ACK:是<-DS1807寫地址 220 I2C寫入:0xAA GOT ACK:是<-pot1 write命令 220 I2C寫入:0x40 GOT ACK:是<-Volume設置 240 i2c停止條件 I2C> [0x51 R] < - 讀取值返回驗證 210 I2C啟動條件 220 I2C寫入:0x51 GOT ACK:是<-DS1807讀取地址 230 I2C讀取:0x00 <-POT0值 230 I2C讀取:0x40 <-POT1值 240 I2C停止條件 I2C>
接下來,我們使用單獨的命令更新每個卷池。 0x50是DS1807寫入地址,0B10101001(0xA9)是要更新POT0的命令,0將捲設置為完整。下一個序列使用更新pot1命令0b10101010(0xaa),並將捲設置為靜音(64,0×40)。最後,我們使用讀取過程來驗證值是否正確。
I2C> [0x50 0xA9 64 0] < - 寫入罐值 210 I2C啟動條件 220 i2c寫:0x50 get ack:是的 220 I2C寫入:0xA9 GOT ACK:是<-update pot0命令 220 I2C寫入:0x40 GOT ACK:是<-POT0值 220 I2C寫入:0x00 GOT ACK:是<-POT1值 240 I2C停止條件 I2C> [0x51 R] < - 讀取返回值 210 I2C啟動條件 220 I2C寫:0x51 GOT ACK:是的 230 I2C讀取:0x40 <-POT0值 230 I2C讀取:0x00 <-POT1值 240 I2C停止條件 I2C>
POT 0 WRITE命令也可用於使用單個命令設置電位器值。使用pot0更新命令(0b10101001,0xa9),並在Pot0值(64)後發送Pot1值(0)。
I2C> [0x50 0B10101111 0x20] < - 更新具有相同值的兩個罐 210 I2C啟動條件 220 i2c寫:0x50 get ack:是的 220 I2C寫入:0xAF GOT ACK:是<-Dual Update命令 220 I2C寫入:0x20 GOT ACK:是<-Value設置 240 i2c停止條件 I2C> [0x51 R] < - 讀取返回值 210 I2C啟動條件 220 I2C寫:0x51 GOT ACK:是的 230 I2C讀取:0x20 <-POT0值 230 I2C讀取:0x20 <-POT1值 240 i2c停止條件 I2C>
最後,0xAF(0b10101111)可用於更新具有相同值的兩個電位器。這可能是立體聲音頻音量控制的最有益的命令通道具有相同的值並同時更改。
您是否希望我們在未來的零件帖子中覆蓋任何芯片或組件?