精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用PT2258構建數字音量控制器

科技觀察員 ? 來源:circuitdigest ? 作者:Debashis Das ? 2022-08-11 17:12 ? 次閱讀

電位器是一種機械裝置,使用它可以根據所需值設置電阻,從而改變通過它的電流。電位器有很多應用,但大多數情況下電位器用作音頻放大器的音量控制器

電位器不控制信號的增益,但它形成了一個分壓器,這就是輸入信號衰減的原因。因此,在這個項目中,我將向您展示如何使用 IC PT2258 構建您的數字音量控制器,并將其與 Arduino 接口以控制放大器電路的音量。

集成電路PT2258

poYBAGL0x5iAAsNqAAQ2fA_aIDo141.png

正如我之前提到的,PT2258 是一款用作 6通道電子音量控制器的 IC,該 IC 采用專為多通道音頻-視頻應用而設計的 CMOS 技術。

該 IC 提供 I2C 控制接口,衰減范圍為 0 至 -79dB,1dB/步長,采用 20 引腳 DIP 或 SOP 封裝。

一些基本功能包括,

6 個輸入和輸出通道(適用于 5.1 家庭音頻系統)

可選 I2C 地址(用于菊花鏈應用)

高通道分離(用于低噪聲應用)

信噪比 》 100dB

工作電壓為 5 至 9V

PT2258 IC 工作原理

pYYBAGL0x5SARv0GAACk6UFoAKU525.png

該 IC 通過 SCL 和 SDA 線從微控制器發送和接收數據。SDA 和 SCL 構成總線接口。這些線必須通過兩個 4.7K 電阻拉高,以確保穩定運行。

在我們進入實際的硬件操作之前,這里是IC的詳細功能描述。如果你不想知道這一切,你可以跳過這部分,因為所有的功能部分都由 Arduino 庫管理。

數據驗證

當 SCL 信號為 HIGH 時,SDA 線上的數據被認為是穩定的。

SDA 線的 HIGH 和 LOW 狀態僅在 SCL 為 LOW 時改變。

poYBAGL0x5CAZQZyAABfKD69ajY130.png

啟動和停止條件

啟動條件被激活時

SCL 設置為 HIGH 和

SDA 從 HIGH 狀態變為 LOW 狀態。

停止條件被激活時

SCL 設置為 HIGH 和

SDA 從低狀態轉變為高狀態

poYBAGL0x4uAZWUYAABHnKtr_JI026.png

筆記!此信息對于調試信號非常有用。

數據格式

傳輸到 SDA 線的每個字節由 8 位組成,形成一個字節。每個字節后面必須跟一個確認位。

致謝

確認確保穩定和正確的操作。在確認時鐘脈沖期間,微控制器將 SDA 引腳拉高,此時外圍設備(音頻處理器)將 SDA 線拉低(低)。

pYYBAGL0x4eAaxNtAABhRm5m32g852.png

外圍設備(PT2258)現在被尋址,它必須在接收到一個字節后產生一個確認,否則,SDA 線將在第九(9)個時鐘脈沖期間保持高電平。如果發生這種情況,主發送器將生成 STOP 信息以中止傳輸。

poYBAGL0x4OAYHsOAABYeEv1tBM786.png

這消除了有效數據傳輸的必要性。

地址選擇

該 IC 的 I2C 地址取決于 CODE1 (Pin No.17) 和 CODE2 (Pin No.4) 的狀態。

poYBAGL0x4CAOTchAAANUsL8IBc232.png

邏輯高 = 1

邏輯低 = 0

接口協議

接口協議由以下部分組成:

一個起始位

一個芯片地址字節

ACK=確認位

一個數據字節

停止位

pYYBAGL0x3uAGzAcAACC4K60oWM109.png

IC上電后,需要等待至少200ms才能傳輸第一個數據位,否則可能會導致數據傳輸失敗。

延遲之后,首先要做的是通過 I2C 線發送“0XC0”來清除寄存器,這樣可以確保正常運行。

poYBAGL0x3aAYb_gAABh6k7KiyM607.png

上述步驟清空了整個寄存器,現在我們需要給寄存器設置一個值,否則,寄存器存儲垃圾值,我們得到一個雀斑的輸出。

為保證音量調節合適,需要依次發送 10dB 的倍數和 1dB 的代碼到衰減器,否則 IC 會出現異常。下圖更清楚地說明了這一點。

pYYBAGL0x3KADHhMAACqlh4XBVo871.png

以上兩種方法都可以正常工作。

為確保正常運行,請確保 I2C 數據傳輸速度不超過 100KHz。

這就是您可以向 IC 傳輸一個字節并衰減輸入信號的方式。上面的部分是學習 IC 的功能,但正如我之前所說,我們將使用 Arduino 庫與管理所有硬代碼的 IC 進行通信,我們只需要進行一些函數調用。

原理圖

pYYBAGL0x26AQPjcAAEiv9bYf5g164.png

上圖顯示了基于 PT2258 的音量控制電路的測試原理圖。它取自數據表并根據需要進行修改。

為了演示,電路是在上面顯示的示意圖的幫助下在無焊面包板上構建的。

所需組件

PT2258 集成電路 – 1

Arduino Nano 控制器 – 1

通用面包板 - 1

螺絲端子 5mm x 3 – 1

按鈕 – 1

4.7K 電阻,5% - 2

150K 電阻,5% - 4

10k 電阻,5% - 2

10uF 電容 – 6

0.1uF 電容 – 1

跳線 - 10

Arduino代碼

#include

#include 
#include 

接下來,使用您喜歡的文本編輯器打開PT2258.cpp文件,我使用的是 Notepad++。

可以看到wire庫的“w”是小寫字母,與最新的Arduino版本不兼容,需要換成大寫的“W”,就這樣。

可在本節末尾找到 PT2258 音量控制器的完整代碼。這里解釋了程序的重要部分。

我們通過包含所有必需的庫文件來開始代碼。Wire 庫用于在 Arduino 和 PT2258 之間進行通信。PT2258 庫包含所有關鍵的 I2C 時序信息和確認。ezButton庫用于與按鈕交互。

不要使用下面的代碼圖像,而是從代碼文件中復制所有代碼實例,并像我們以前在其他項目中那樣將它們格式化

#include 
#include 
#include 

接下來,為兩個按鈕和 PT2258 庫本身制作對象。

PT2258 PT2258;
ezButton button_1(2);
ezButton button_2(4);

接下來,定義音量級別。這是該 IC 啟動時的默認音量級別。

國際體積 = 40;

接下來,啟動 UART,并設置 I2C 總線的時鐘頻率。

序列號.開始(9600);
Wire.setClock(100000);

設置I2C時鐘非常重要,否則IC將無法工作,因為該IC支持的最大時鐘頻率為100KHz。

接下來,我們使用if else語句做一些整理工作,以確保 IC 與 I2C 總線正確通信。

如果 (!pt2258.init())
 Serial.printIn("PT2258 啟動成功");
別的
 Serial.printIn(“啟動 PT2258 失敗”);

接下來,我們設置按鈕的去抖動延遲。

Button_1.setDebounceTime(50);
Button_2.setDebounceTime(50);

最后,通過設置默認通道音量和引腳號來啟動 PT2258 IC。

/* 使用默認音量和 Pin 啟動 PT*/
Pt2258.setChannelVolume(音量,4);
Pt2258.setChannelVolume(音量,5);

這標志著Void Setup()部分的結束。

在循環部分,我們需要從按鈕類中調用循環函數;這是圖書館的規范。

Button_1.loop(); //庫規范
Button_2.loop(); //庫規范

下面的if部分是為了降低音量。

/* 如果條件為真,則按下按鈕 1 */
如果 (button_1.ispressed())
{
   音量++;// 增加音量計數器。
   // 這個 if 語句確保交易量不超過 79
   如果(音量 >= 79)
   {
   體積 = 79;
   }
   Serial.print(“卷:”); // 打印音量級別
   Serial.printIn(volume);
   /* 設置通道 4 的音量
   在 PT2558 IC 的 PIN 9 中
  */
  Pt2558.setChannelVolume(音量,4);
  /* 設置通道 5 的音量
  PT2558 IC的PIN 10是哪個
  */
  Pt2558.setChannelVolume(音量,5);
}

下面的if部分是為了增加音量。

// 按鈕 2 也是如此
如果 (button_2.isPressed())
{
體積 - ;
// 這個 if 語句確保音量不低于零。
如果(音量 <= 0)
音量 = 0;
Serial.print(“卷:”);
Serial.printIn(volume);
Pt2258.setChannelVolume(音量,4);
Pt2558.setChannelVolume(音量,5);
}

測試數字音頻音量控制電路

poYBAGL0x2aAfUXDAAdSIoxTai8104.png

為了測試電路,使用了以下設備

具有 13-0-13 分接頭的變壓器

2 4Ω 20W 揚聲器作為負載。

音源(電話)

我弄亂了機械電位器,并用兩條小跨接電纜短接了兩條引線。現在,借助兩個按鈕,可以控制放大器的音量。
#include
#include
#include
PT2258 PT2258;// PT2258 對象
ezButton button_1(2); //Button_1 對象
ezButton button_2(4); //Button_2 對象
整數體積 = 40;// 默認音量/起始音量
無效設置(){
序列號.開始(9600);//UART開始
Wire.setClock(100000); // 將 I2C 時鐘設置為 100KHz
/* 檢查 MCU 是否可以與 PT 通話 */
如果(!pt2258.init())
Serial.println("PT2258 啟動成功");
別的
Serial.println("啟動 PT2258 失敗");
/* 設置按鈕去抖動延遲*/
button_1.setDebounceTime(50);
button_2.setDebounceTime(50);
/* 使用默認音量和 Pin 啟動 PT*/
pt2258.setChannelVolume(音量, 4);
pt2258.setChannelVolume(音量, 5);
}
無效循環(){
button_1.loop(); //庫規范
button_2.loop(); //庫規范
/* 如果條件為真,則按下按鈕 1*/
if (button_1.isPressed())
{
音量++;// 增加音量計數器。
// 這個 if 語句確保交易量不超過 79
如果(音量 >= 79)
{
體積 = 79;
}
Serial.print("音量:"); // 打印音量級別
Serial.println(卷);
/*設置通道4的音量
在 PT2258 IC 的 PIN 9 中
*/
pt2258.setChannelVolume(音量, 4);
/*設置通道5的音量
PT2258 IC的10腳是哪個
*/
pt2258.setChannelVolume(音量, 5);
}
//按鈕2也是如此
如果 (button_2.isPressed())
{
體積 - ;
// 這個 if 語句確保音量不低于零。
如果(音量 <= 0)
體積 = 0;
Serial.print("音量:");
Serial.println(卷);
pt2258.setChannelVolume(音量, 4);
pt2258.setChannelVolume(音量, 5);
}
}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電位器
    +關注

    關注

    14

    文章

    1005

    瀏覽量

    66724
  • 音量控制器
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8742
  • PT2258
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5622
收藏 人收藏

    評論

    相關推薦

    PT2258 2323

    本帖最后由 eehome 于 2013-1-5 10:04 編輯 用PT2258 2323電子音量控制,一個聲道聲音大一個聲道聲音小是什么原因
    發表于 11-18 09:43

    求助,想用一個at89c2051控制前置扳的pt2258音量控制器

    這是一款杰士ProMedia5.1音響,音量控制器不見了,前置是由三塊TL074CN和兩塊LM837N組成的運放大器,還有一PT2258音量控制IC。有I2C總線插口,那個2258是6
    發表于 12-10 22:39

    音量控制器和對數電位計

    ,來控制電子電位計的衰減值。除了音頻應用,這些器件也能應用于信號通路中。下面是一些相關器件:PGA2500麥克風前置數字增益可控放大器PGA2320立體聲音頻音量控制器LM1971 具有靜音功能
    發表于 09-20 16:30

    6通道電子音量控制器ICPT2258電子資料

    概述:PT2258是Princeton生產的一款6通道電子音量控制器IC,利用CMOS技術專為新一***聲道音頻系統。 PT2258提供一個I2C控制接口,為0到-79分貝在1 dB/
    發表于 04-21 07:46

    一種數控5.1聲道音頻前置放大器系統

    前置放大器的輸入級由六個TL074 / TL072緩沖級組成。PIC16F886微控制器管理PT2258電子音量控制 IC。所有音量和菜單選項都顯示在HD44780 16×2 字符 L
    發表于 07-06 06:31

    觸摸音量控制器

        一般的觸摸式音量控制器電路較復雜,這里介紹的控制器只用兩個元件,而體積小
    發表于 04-16 23:20 ?1886次閱讀

    基于USB控制器設計的Windows音量控制器

    基于USB控制器設計的Windows音量控制器 介紹一種使用MAX3420作為USB控制器、ATtiny 13作為微處理設計的Windows音量
    發表于 03-29 15:12 ?3182次閱讀
    基于USB<b class='flag-5'>控制器</b>設計的Windows<b class='flag-5'>音量控制器</b>

    數字音量控制器電路 (Digital Volume Cont

    數字音量控制器電路 (Digital Volume Control)
    發表于 12-24 08:30 ?7316次閱讀

    用旋轉電位驅動半導體音量控制器

    目前,在音量控制器的電路設計中,廣泛應用的是用數字電位代替旋轉音量控制器。為模仿控制過程,大多數電路中采用上/下按鈕、開關或微處理
    發表于 06-23 16:56 ?135次下載
    用旋轉電位<b class='flag-5'>器</b>驅動半導體<b class='flag-5'>音量控制器</b>

    全遙控數字音量控制的D類功率放大器資料

    全遙控數字音量控制的D類功率放大器資料,有興趣的同學可以下載學習
    發表于 04-28 13:59 ?21次下載

    全遙控數字音量控制的D類功率放大器

    全遙控數字音量控制的D類功率放大器
    發表于 03-05 15:25 ?11次下載

    基于PICl6C56微控制器PT2258芯片實現AV功放音響控制系統的設計

    本設計以Microchip公司的PICl6C56為主控IC,系統硬件電路框圖如圖1所示。通過模擬開關選擇音頻信號源,輸入至聲道音量控制芯片PT2258中,由主控IC接收、分析鍵盤模塊或紅外遙控的數據,控制
    發表于 05-03 17:54 ?3180次閱讀
    基于PICl6C56微<b class='flag-5'>控制器</b>和<b class='flag-5'>PT2258</b>芯片實現AV功放音響<b class='flag-5'>控制</b>系統的設計

    音量控制器如何設置_音量控制器的作用

    音量控制器,顧名思義就是說它是一種控制音量的輸出的一種設備,主要是應用在一些聲音的處理和對音頻的音量控制。它的使用就是把會傷害到聽力的那些音頻轉換成為一些信號,再通過
    發表于 05-29 09:45 ?6923次閱讀

    分享一個不錯的立體聲數字音量控制的電路圖

    這是立體聲數字音量控制的電路圖。該電路可用于升級立體聲放大器電路中的手動音量管理。在這個特定的電路中,按下開關 S1 控制兩個通道的正向(音量增強)操作,而相同的開關 S2
    的頭像 發表于 06-29 16:35 ?7138次閱讀
    分享一個不錯的立體聲<b class='flag-5'>數字音量控制</b>的電路圖

    基于MAX5486的雙通道數字音量控制電路

    圖中顯示了基于IC MAX5486的雙通道數字音量控制電路。MAX5486為40K雙通道數字音量/平衡控制器,具有按鈕接口。該 IC 具有內置偏置電壓源,無需外部電路即可用于相同目的,從而減少了外部
    的頭像 發表于 04-02 14:40 ?1993次閱讀
    基于MAX5486的雙通道<b class='flag-5'>數字音量控制</b>電路