0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用PT2258構(gòu)建數(shù)字音量控制器

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

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

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

集成電路PT2258

poYBAGL0x5iAAsNqAAQ2fA_aIDo141.png

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

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

一些基本功能包括,

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

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

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

信噪比 》 100dB

工作電壓為 5 至 9V

PT2258 IC 工作原理

pYYBAGL0x5SARv0GAACk6UFoAKU525.png

該 IC 通過 SCL 和 SDA 線從微控制器發(fā)送和接收數(shù)據(jù)。SDA 和 SCL 構(gòu)成總線接口。這些線必須通過兩個(gè) 4.7K 電阻拉高,以確保穩(wěn)定運(yùn)行。

在我們進(jìn)入實(shí)際的硬件操作之前,這里是IC的詳細(xì)功能描述。如果你不想知道這一切,你可以跳過這部分,因?yàn)樗械墓δ懿糠侄加?Arduino 庫管理。

數(shù)據(jù)驗(yàn)證

當(dāng) SCL 信號(hào)為 HIGH 時(shí),SDA 線上的數(shù)據(jù)被認(rèn)為是穩(wěn)定的。

SDA 線的 HIGH 和 LOW 狀態(tài)僅在 SCL 為 LOW 時(shí)改變。

poYBAGL0x5CAZQZyAABfKD69ajY130.png

啟動(dòng)和停止條件

啟動(dòng)條件被激活時(shí)

SCL 設(shè)置為 HIGH 和

SDA 從 HIGH 狀態(tài)變?yōu)?LOW 狀態(tài)。

停止條件被激活時(shí)

SCL 設(shè)置為 HIGH 和

SDA 從低狀態(tài)轉(zhuǎn)變?yōu)楦郀顟B(tài)

poYBAGL0x4uAZWUYAABHnKtr_JI026.png

筆記!此信息對(duì)于調(diào)試信號(hào)非常有用。

數(shù)據(jù)格式

傳輸?shù)?SDA 線的每個(gè)字節(jié)由 8 位組成,形成一個(gè)字節(jié)。每個(gè)字節(jié)后面必須跟一個(gè)確認(rèn)位。

致謝

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

pYYBAGL0x4eAaxNtAABhRm5m32g852.png

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

poYBAGL0x4OAYHsOAABYeEv1tBM786.png

這消除了有效數(shù)據(jù)傳輸?shù)谋匾浴?/p>

地址選擇

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

poYBAGL0x4CAOTchAAANUsL8IBc232.png

邏輯高 = 1

邏輯低 = 0

接口協(xié)議

接口協(xié)議由以下部分組成:

一個(gè)起始位

一個(gè)芯片地址字節(jié)

ACK=確認(rèn)位

一個(gè)數(shù)據(jù)字節(jié)

停止位

pYYBAGL0x3uAGzAcAACC4K60oWM109.png

IC上電后,需要等待至少200ms才能傳輸?shù)谝粋€(gè)數(shù)據(jù)位,否則可能會(huì)導(dǎo)致數(shù)據(jù)傳輸失敗。

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

poYBAGL0x3aAYb_gAABh6k7KiyM607.png

上述步驟清空了整個(gè)寄存器,現(xiàn)在我們需要給寄存器設(shè)置一個(gè)值,否則,寄存器存儲(chǔ)垃圾值,我們得到一個(gè)雀斑的輸出。

為保證音量調(diào)節(jié)合適,需要依次發(fā)送 10dB 的倍數(shù)和 1dB 的代碼到衰減器,否則 IC 會(huì)出現(xiàn)異常。下圖更清楚地說明了這一點(diǎn)。

pYYBAGL0x3KADHhMAACqlh4XBVo871.png

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

為確保正常運(yùn)行,請(qǐng)確保 I2C 數(shù)據(jù)傳輸速度不超過 100KHz。

這就是您可以向 IC 傳輸一個(gè)字節(jié)并衰減輸入信號(hào)的方式。上面的部分是學(xué)習(xí) IC 的功能,但正如我之前所說,我們將使用 Arduino 庫與管理所有硬代碼的 IC 進(jìn)行通信,我們只需要進(jìn)行一些函數(shù)調(diào)用。

原理圖

pYYBAGL0x26AQPjcAAEiv9bYf5g164.png

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

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

所需組件

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”,就這樣。

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

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

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

#include 
#include 
#include 

接下來,為兩個(gè)按鈕和 PT2258 庫本身制作對(duì)象。

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

接下來,定義音量級(jí)別。這是該 IC 啟動(dòng)時(shí)的默認(rèn)音量級(jí)別。

國際體積 = 40;

接下來,啟動(dòng) UART,并設(shè)置 I2C 總線的時(shí)鐘頻率。

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

設(shè)置I2C時(shí)鐘非常重要,否則IC將無法工作,因?yàn)樵揑C支持的最大時(shí)鐘頻率為100KHz。

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

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

接下來,我們設(shè)置按鈕的去抖動(dòng)延遲。

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

最后,通過設(shè)置默認(rèn)通道音量和引腳號(hào)來啟動(dòng) PT2258 IC。

/* 使用默認(rèn)音量和 Pin 啟動(dòng) PT*/
Pt2258.setChannelVolume(音量,4);
Pt2258.setChannelVolume(音量,5);

這標(biāo)志著Void Setup()部分的結(jié)束。

在循環(huán)部分,我們需要從按鈕類中調(diào)用循環(huán)函數(shù);這是圖書館的規(guī)范。

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

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

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

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

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

測試數(shù)字音頻音量控制電路

poYBAGL0x2aAfUXDAAdSIoxTai8104.png

為了測試電路,使用了以下設(shè)備

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

2 4Ω 20W 揚(yáng)聲器作為負(fù)載。

音源(電話)

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電位器
    +關(guān)注

    關(guān)注

    14

    文章

    1003

    瀏覽量

    66672
  • 音量控制器
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    8734
  • PT2258
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5619
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PT2258 2323

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

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

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

    音量控制器和對(duì)數(shù)電位計(jì)

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

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

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

    一種數(shù)控5.1聲道音頻前置放大器系統(tǒng)

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

    觸摸音量控制器

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

    基于USB控制器設(shè)計(jì)的Windows音量控制器

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

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

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

    用旋轉(zhuǎn)電位驅(qū)動(dòng)半導(dǎo)體音量控制器

    目前,在音量控制器的電路設(shè)計(jì)中,廣泛應(yīng)用的是用數(shù)字電位代替旋轉(zhuǎn)音量控制器。為模仿控制過程,大多數(shù)電路中采用上/下按鈕、開關(guān)或微處理
    發(fā)表于 06-23 16:56 ?135次下載
    用旋轉(zhuǎn)電位<b class='flag-5'>器</b>驅(qū)動(dòng)半導(dǎo)體<b class='flag-5'>音量控制器</b>

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

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

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

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

    基于PICl6C56微控制器PT2258芯片實(shí)現(xiàn)AV功放音響控制系統(tǒng)的設(shè)計(jì)

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

    音量控制器如何設(shè)置_音量控制器的作用

    音量控制器,顧名思義就是說它是一種控制音量的輸出的一種設(shè)備,主要是應(yīng)用在一些聲音的處理和對(duì)音頻的音量控制。它的使用就是把會(huì)傷害到聽力的那些音頻轉(zhuǎn)換成為一些信號(hào),再通過
    發(fā)表于 05-29 09:45 ?6889次閱讀

    分享一個(gè)不錯(cuò)的立體聲數(shù)字音量控制的電路圖

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

    基于MAX5486的雙通道數(shù)字音量控制電路

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