- IC PT2258
- PT2258 IC ఎలా పనిచేస్తుంది
- స్కీమాటిక్
- భాగాలు అవసరం
- ఆర్డునో కోడ్
- డిజిటల్ ఆడియో వాల్యూమ్ కంట్రోల్ సర్క్యూట్ను పరీక్షిస్తోంది
- మరింత వృద్ధి
పొటెన్షియోమీటర్ అనేది ఒక యాంత్రిక పరికరం, దీనిని ఉపయోగించి కావలసిన విలువకు అనుగుణంగా ప్రతిఘటనను సెట్ చేయవచ్చు, తద్వారా దాని గుండా ప్రస్తుత ప్రయాణాన్ని మారుస్తుంది. పొటెన్షియోమీటర్ కోసం చాలా అనువర్తనాలు ఉన్నాయి, అయితే ఎక్కువగా పొటెన్షియోమీటర్ను ఆడియో యాంప్లిఫైయర్ల కోసం వాల్యూమ్ కంట్రోలర్గా ఉపయోగిస్తారు.
ఒక పొటెన్టోమీటర్ సిగ్నల్ యొక్క లాభాలను నియంత్రించదు, కానీ ఇది వోల్టేజ్ డివైడర్ను ఏర్పరుస్తుంది మరియు అందుకే ఇన్పుట్ సిగ్నల్ అటెన్యూట్ అవుతుంది. కాబట్టి ఈ ప్రాజెక్ట్లో, మీ డిజిటల్ వాల్యూమ్ కంట్రోలర్ను IC PT2258 తో ఎలా నిర్మించాలో నేను మీకు చూపించబోతున్నాను మరియు యాంప్లిఫైయర్ సర్క్యూట్ యొక్క వాల్యూమ్ను నియంత్రించడానికి ఒక ఆర్డునోతో ఇంటర్ఫేస్ చేస్తాను. VU మీటర్, టోన్ కంట్రోల్ సర్క్యూట్ మొదలైన వాటితో సహా వివిధ ఆడియో సంబంధిత సర్క్యూట్లను కూడా మీరు ఇక్కడ తనిఖీ చేయవచ్చు.
IC PT2258
నేను ఇంతకు ముందే చెప్పినట్లుగా, PT2258 అనేది 6- ఛానెల్ ఎలక్ట్రానిక్ వాల్యూమ్ కంట్రోలర్గా ఉపయోగించటానికి తయారు చేయబడిన IC , ఈ IC బహుళ-ఛానల్ ఆడియో-వీడియో అనువర్తనాల కోసం ప్రత్యేకంగా రూపొందించిన CMOS సాంకేతికతను ఉపయోగిస్తుంది.
ఈ ఐసి 1 డిబి / స్టెప్ వద్ద 0 నుండి -79 డిబి వరకు అటెన్యుయేషన్ పరిధితో ఐ 2 సి కంట్రోల్ ఇంటర్ఫేస్ను అందిస్తుంది మరియు ఇది 20-పిన్ డిఐపి లేదా ఎస్ఓపి ప్యాకేజీలో వస్తుంది.
కొన్ని ప్రాథమిక లక్షణాలలో ఇవి ఉన్నాయి,
- 6-ఇన్పుట్ మరియు అవుట్పుట్ ఛానెల్స్ (5.1 హోమ్ ఆడియో సిస్టమ్స్ కోసం)
- ఎంచుకోదగిన I2C చిరునామా (డైసీ-చైన్ అప్లికేషన్ కోసం)
- అధిక ఛానెల్ విభజన (తక్కువ శబ్దం అనువర్తనం కోసం)
- > 100dB యొక్క S / N నిష్పత్తి
- ఆపరేటింగ్ వోల్టేజ్ 5 నుండి 9 వి
PT2258 IC ఎలా పనిచేస్తుంది
ఈ ఐసి మైక్రోకంట్రోలర్ నుండి ఎస్సిఎల్ మరియు ఎస్డిఎ లైన్ల ద్వారా డేటాను ప్రసారం చేస్తుంది మరియు స్వీకరిస్తుంది. SDA మరియు SCL బస్ ఇంటర్ఫేస్ను తయారు చేస్తాయి. స్థిరమైన ఆపరేషన్ను నిర్ధారించడానికి ఈ పంక్తులను రెండు 4.7 కె రెసిస్టర్లు అధికంగా లాగాలి.
మేము వాస్తవ హార్డ్వేర్ ఆపరేషన్కు వెళ్ళే ముందు, ఇక్కడ IC యొక్క వివరణాత్మక క్రియాత్మక వివరణ ఉంది. మీరు ఇవన్నీ తెలుసుకోవాలనుకుంటే, మీరు ఈ భాగాన్ని దాటవేయవచ్చు ఎందుకంటే అన్ని ఫంక్షనల్ భాగాన్ని ఆర్డునో లైబ్రరీ నిర్వహిస్తుంది.
సమాచారం ప్రామాణీకరణ
- SCL సిగ్నల్ HIGH ఉన్నప్పుడు SDA లైన్లోని డేటా స్థిరంగా పరిగణించబడుతుంది.
- SDA లైన్ యొక్క HIGH మరియు LOW స్థితులు SCL తక్కువగా ఉన్నప్పుడు మాత్రమే మారుతాయి.
పరిస్థితిని ప్రారంభించండి మరియు ఆపు
ప్రారంభ పరిస్థితి ఎప్పుడు సక్రియం అవుతుంది
- SCL HIGH కు సెట్ చేయబడింది
- SDA HIGH నుండి LOW రాష్ట్రానికి మారుతుంది.
స్టాప్ కండిషన్ ఎప్పుడు సక్రియం అవుతుంది
- SCL HIGH మరియు
- SDA తక్కువ నుండి అధిక రాష్ట్రానికి మారుతుంది
గమనిక! సిగ్నల్స్ డీబగ్ చేయడానికి ఈ సమాచారం చాలా ఉపయోగపడుతుంది.
డేటా ఫార్మాట్
SDA లైన్కు ప్రసారం చేసే ప్రతి బైట్ 8 బిట్లను కలిగి ఉంటుంది, ఇవి బైట్ను ఏర్పరుస్తాయి. ప్రతి బైట్ను తప్పనిసరిగా అంగీకార బిట్ అనుసరించాలి.
గుర్తింపు
రసీదు స్థిరమైన మరియు సరైన ఆపరేషన్ను నిర్ధారిస్తుంది. అంగీకార గడియారం పల్స్ సమయంలో, మైక్రోకంట్రోలర్ ఈ ఖచ్చితమైన సమయంలో SDA పిన్ HIGH ని లాగుతుంది పరిధీయ పరికరం (ఆడియో ప్రాసెసర్) SDA లైన్ లాగుతుంది (తక్కువ).
పరిధీయ పరికరం (PT2258) ఇప్పుడు పరిష్కరించబడింది మరియు ఇది బైట్ను స్వీకరించిన తర్వాత ఒక రశీదును ఉత్పత్తి చేయాలి, లేకపోతే, తొమ్మిదవ (9 వ) క్లాక్ పల్స్ సమయంలో SDA లైన్ అధిక స్థాయిలో ఉంటుంది. ఇది జరిగితే, బదిలీని నిలిపివేయడానికి మాస్టర్ ట్రాన్స్మిటర్ STOP సమాచారాన్ని ఉత్పత్తి చేస్తుంది.
చెల్లుబాటు అయ్యే డేటా బదిలీ కోసం స్థానంలో ఉండవలసిన అవసరం లేదని ఇది క్లియర్ చేస్తుంది.
చిరునామా ఎంపిక
ఈ IC యొక్క I2C చిరునామా CODE1 (పిన్ నెం.17) మరియు CODE2 (పిన్ నెం.4) స్థితిపై ఆధారపడి ఉంటుంది.
CODE1 (పిన్ నం. 17) |
CODE2 (పిన్ నం 4) |
హెక్స్ చిరునామా |
0 |
0 |
0 ఎక్స్ 80 |
0 |
1 |
0 ఎక్స్ 84 |
1 |
0 |
0 ఎక్స్ 88 |
1 |
1 |
0 ఎక్స్ 8 సి |
లాజిక్ హై = 1
లాజిక్ తక్కువ = 0
ఇంటర్ఫేస్ ప్రోటోకాల్
ఇంటర్ఫేస్ ప్రోటోకాల్ ఈ క్రింది వాటిని కలిగి ఉంటుంది:
- ప్రారంభ బిట్
- చిప్ చిరునామా బైట్
- ACK = బిట్ను గుర్తించండి
- డేటా బైట్
- ఒక స్టాప్ బిట్
కొద్దిగా హౌస్ కీపింగ్
IC ఆన్ చేయబడిన తరువాత, మొదటి డేటా బిట్ను ప్రసారం చేయడానికి ముందు కనీసం 200ms వేచి ఉండాలి, లేకపోతే, డేటా బదిలీ విఫలం కావచ్చు.
ఆలస్యం తరువాత, మొదట చేయవలసినది “0XC0” vi I2C లైన్ పంపడం ద్వారా రిజిస్టర్ క్లియర్ చేయడం, ఇది సరైన ఆపరేషన్ను నిర్ధారిస్తుంది.
పై దశ మొత్తం రిజిస్టర్ను క్లియర్ చేస్తుంది, ఇప్పుడు మనం రిజిస్టర్కు ఒక విలువను సెట్ చేయాలి, లేకపోతే, రిజిస్టర్ చెత్త విలువను నిల్వ చేస్తుంది మరియు మనకు ఫ్రీక్ల్డ్ అవుట్పుట్ లభిస్తుంది.
సరైన వాల్యూమ్ సర్దుబాట్లను నిర్ధారించడానికి, 10dB యొక్క గుణకాన్ని 1dB కోడ్ను అటెన్యూయేటర్కు వరుసగా పంపడం అవసరం, లేకపోతే, IC అసాధారణంగా ప్రవర్తించగలదు. దిగువ రేఖాచిత్రం దీన్ని మరింత స్పష్టం చేస్తుంది.
పై రెండు పద్ధతులు సరిగ్గా పనిచేస్తాయి.
సరైన ఆపరేషన్ ఉండేలా, I2C డేటా బదిలీ వేగం 100KHz ని మించకుండా చూసుకోండి.
ఆ విధంగా మీరు ఐసికి బైట్ను ప్రసారం చేయవచ్చు మరియు ఇన్పుట్ సిగ్నల్ను ఆకర్షించవచ్చు. పై విభాగం ఐసి ఎలా పనిచేస్తుందో తెలుసుకోవడం, కాని నేను ఇంతకు ముందే చెప్పినట్లుగా, అన్ని హార్డ్ కోడ్లను నిర్వహించే ఐసితో కమ్యూనికేట్ చేయడానికి మేము ఆర్డునో లైబ్రరీని ఉపయోగించబోతున్నాము మరియు మేము కొన్ని ఫంక్షన్ కాల్స్ చేయాలి.
పై సమాచారం అంతా డేటాషీట్ నుండి తీసుకోబడింది, దయచేసి మరింత సమాచారం కోసం దీనిని చూడండి.
స్కీమాటిక్
పై చిత్రం PT2258 ఆధారిత వాల్యూమ్ కంట్రోల్ సర్క్యూట్ యొక్క పరీక్ష స్కీమాటిక్ చూపిస్తుంది. ఇది డేటాషీట్ నుండి తీసుకోబడింది మరియు అవసరానికి అనుగుణంగా సవరించబడింది.
ప్రదర్శన కోసం, పైన చూపిన స్కీమాటిక్ సహాయంతో టంకము లేని బ్రెడ్బోర్డ్లో సర్క్యూట్ నిర్మించబడింది.
గమనిక! పరాన్నజీవి కెపాసిటెన్స్ ఇండక్టెన్స్ మరియు నిరోధకతను తగ్గించడానికి అన్ని భాగాలు సాధ్యమైనంత దగ్గరగా ఉంచబడతాయి.
భాగాలు అవసరం
- PT2258 IC - 1
- ఆర్డునో నానో కంట్రోలర్ - 1
- సాధారణ బ్రెడ్బోర్డ్ - 1
- స్క్రూ టెర్మినల్ 5 మిమీ x 3 - 1
- పుష్ బటన్ - 1
- 4.7 కె రెసిస్టర్, 5% - 2
- 150 కె రెసిస్టర్, 5% - 4
- 10 కె రెసిస్టర్, 5% - 2
- 10uF కెపాసిటర్ - 6
- 0.1uF కెపాసిటర్ - 1
- జంపర్ వైర్లు - 10
ఆర్డునో కోడ్
సరళత కోసం, నేను సన్రూట్కాన్ చేత తయారు చేయబడిన గిట్హబ్ నుండి PT2258 లైబ్రరీని ఉపయోగించబోతున్నాను.
ఇది చాలా బాగా వ్రాసిన లైబ్రరీ, అందుకే నేను దీన్ని ఉపయోగించాలని నిర్ణయించుకున్నాను, కానీ ఇది చాలా పాతది కనుక, ఇది కొంచెం బగ్గీ మరియు మేము దానిని ఉపయోగించే ముందు దాన్ని పరిష్కరించాలి.
మొదట, గిట్హబ్ రిపోజిటరీ నుండి లైబ్రరీని డౌన్లోడ్ చేసి సేకరించండి.
వెలికితీసిన తర్వాత పై రెండు ఫైళ్ళను మీరు పొందుతారు.
# చేర్చండి # చేర్చండి
తరువాత, మీకు ఇష్టమైన టెక్స్ట్ ఎడిటర్తో PT2258.cpp ఫైల్ను తెరవండి, నేను నోట్ప్యాడ్ ++ ని ఉపయోగిస్తున్నాను.
వైర్ లైబ్రరీ యొక్క “w” చిన్న అక్షరాలతో ఉందని మీరు చూడవచ్చు, ఇది తాజా Arduino సంస్కరణలతో సరిపడదు, మరియు మీరు దానిని “W” టోపీలతో భర్తీ చేయాలి, అంతే.
PT2258 వాల్యూమ్ కంట్రోలర్ కోసం పూర్తి కోడ్ ఈ విభాగం చివరిలో చూడవచ్చు. ఇక్కడ ప్రోగ్రామ్ యొక్క ముఖ్యమైన భాగాలు వివరించబడ్డాయి.
అవసరమైన అన్ని లైబ్రరీల ఫైళ్ళను చేర్చడం ద్వారా మేము కోడ్ను ప్రారంభిస్తాము. Arduino మరియు PT2258 మధ్య కమ్యూనికేట్ చేయడానికి వైర్ లైబ్రరీ ఉపయోగించబడుతుంది. PT2258 లైబ్రరీలో అన్ని క్లిష్టమైన I2C టైమింగ్ సమాచారం మరియు రసీదులు ఉన్నాయి. EzButton లైబ్రరీ పుష్-బటన్లు తో ఇంటర్ఫేస్ ఉపయోగిస్తారు.
దిగువ కోడ్ చిత్రాలను ఉపయోగించకుండా, కోడ్ ఫైల్ నుండి అన్ని కోడ్ ఉదంతాలను కాపీ చేసి, ఇతర ప్రాజెక్టులలో మేము ఉపయోగించినట్లుగా వాటిని ఫార్మాట్ చేయండి
# చేర్చండి
తరువాత, రెండు బటన్లు మరియు PT2258 లైబ్రరీ కోసం వస్తువులను తయారు చేయండి.
పిటి 2258 పిటి 2258; ezButton button_1 (2); ezButton button_2 (4);
తరువాత, వాల్యూమ్ స్థాయిని నిర్వచించండి. ఈ ఐసి ప్రారంభమయ్యే డిఫాల్ట్ వాల్యూమ్ స్థాయి ఇది.
Int వాల్యూమ్ = 40;
తరువాత, UART ను ప్రారంభించండి మరియు I2C బస్సు కోసం క్లాక్ ఫ్రీక్వెన్సీని సెట్ చేయండి.
సీరియల్.బెగిన్ (9600); వైర్.సెట్క్లాక్ (100000);
I2C గడియారాన్ని సెట్ చేయడం చాలా ముఖ్యం, లేకపోతే, IC పనిచేయదు ఎందుకంటే ఈ IC మద్దతు ఇచ్చే గరిష్ట గడియార పౌన frequency పున్యం 100KHz.
తరువాత, I2C బస్సుతో IC సరిగ్గా కమ్యూనికేట్ అవుతోందని నిర్ధారించుకోవడానికి మేము if if statement తో కొద్దిగా హౌస్ కీపింగ్ చేస్తాము.
(! Pt2258.init ()) Serial.printIn (“PT2258 విజయవంతంగా ప్రారంభించబడింది”) ఉంటే; వేరే సీరియల్.ప్రింట్ఇన్ (“PT2258 ను ప్రారంభించడంలో విఫలమైంది”);
తరువాత, మేము పుష్బటన్ల కోసం డీబౌన్స్ ఆలస్యాన్ని సెట్ చేసాము.
బటన్_1.సెట్డిబౌన్స్టైమ్ (50); బటన్_2.సెట్డిబౌన్స్టైమ్ (50);
చివరగా, PT2258 IC ని డిఫాల్ట్ ఛానల్ వాల్యూమ్ మరియు పిన్ నంబర్తో సెటప్ చేయడం ద్వారా ప్రారంభించండి.
/ * డిఫాల్ట్ వాల్యూమ్ మరియు పిన్తో పిటిని ప్రారంభించడం * / Pt2258.setChannelVolume (వాల్యూమ్, 4); Pt2258.setChannelVolume (వాల్యూమ్, 5);
ఇది శూన్య సెటప్ () విభాగం ముగింపును సూచిస్తుంది.
లో లూప్ విభాగం, మేము బటన్ తరగతి నుండి లూప్ ఫంక్షన్ కాల్ అవసరం; ఇది లైబ్రరీ ప్రమాణం.
బటన్_1.లూప్ (); // లైబ్రరీ నిబంధనలు బటన్_2.లూప్ (); // లైబ్రరీ నిబంధనలు
క్రింద ఉంటే విభాగం వాల్యూమ్ తగ్గించడానికి ఉంది.
/ * షరతు నిజమైతే బటన్ 1 నొక్కితే * / if (button_1.ispressed ()) {వాల్యూమ్ ++; // వాల్యూమ్ కౌంటర్ పెంచడం. // వాల్యూమ్ 79 కంటే ఎక్కువ ఉండదని స్టేట్మెంట్ నిర్ధారిస్తే (వాల్యూమ్> = 79) {వాల్యూమ్ = 79; } సీరియల్.ప్రింట్ (“వాల్యూమ్:“); // వాల్యూమ్ స్థాయిని ముద్రించడం సీరియల్.ప్రింట్ఇన్ (వాల్యూమ్); / * ఛానెల్ 4 కోసం వాల్యూమ్ను సెట్ చేయండి, ఇది PT2558 IC యొక్క PIN 9 లో ఉంది * / Pt2558.setChannelVolume (వాల్యూమ్, 4); / * ఛానెల్ 5 కోసం వాల్యూమ్ను సెట్ చేయండి, ఇది PT2558 IC * / Pt2558.setChannelVolume (వాల్యూమ్, 5) యొక్క PIN 10; }
క్రింద ఉంటే విభాగం వాల్యూమ్ పెంచడానికి ఉంది.
// బటన్ 2 విషయంలో కూడా అదే జరుగుతుంది (button_2.isPressed ()) {వాల్యూమ్--; // స్టేట్మెంట్ వాల్యూమ్ స్థాయి సున్నా కంటే తక్కువగా ఉండదని నిర్ధారిస్తే. ఉంటే (వాల్యూమ్ <= 0) వాల్యూమ్ = 0; సీరియల్.ప్రింట్ (“వాల్యూమ్:“); సీరియల్.ప్రింట్ఇన్ (వాల్యూమ్); Pt2258.setChannelVolume (వాల్యూమ్, 4); Pt2558.setChannelVolume (వాల్యూమ్, 5); }
డిజిటల్ ఆడియో వాల్యూమ్ కంట్రోల్ సర్క్యూట్ను పరీక్షిస్తోంది
సర్క్యూట్ పరీక్షించడానికి, కింది ఉపకరణం ఉపయోగించబడింది
- 13-0-13 ట్యాప్ ఉన్న ట్రాన్స్ఫార్మర్
- 2 4Ω 20W స్పీకర్ ఒక లోడ్.
- ఆడియో మూలం (ఫోన్)
మునుపటి వ్యాసంలో, TDA2050 IC తో సింపుల్ 2x32 వాట్ ఆడియో యాంప్లిఫైయర్ ఎలా తయారు చేయాలో నేను మీకు చూపించాను, నేను ఈ ప్రదర్శన కోసం కూడా ఉపయోగించబోతున్నాను.
నేను మెకానికల్ పొటెన్టోమీటర్ను అస్తవ్యస్తం చేశాను మరియు రెండు చిన్న జంపర్ కేబుల్లతో రెండు లీడ్లను తగ్గించాను.
ఇప్పుడు, రెండు పుష్-బటన్ల సహాయంతో, యాంప్లిఫైయర్ యొక్క వాల్యూమ్ను నియంత్రించవచ్చు.
మరింత వృద్ధి
సర్క్యూట్ దాని పనితీరును మెరుగుపరచడానికి మరింత సవరించవచ్చు. ఐసి యొక్క డిజిటల్ విభాగం ద్వారా ఉత్పన్నమయ్యే శబ్దాన్ని మరింతగా తొలగించడానికి సర్క్యూట్ వంటి మెరుగుదలలు పిసిబికి చేయవచ్చు. అధిక-ఫ్రీక్వెన్సీ శబ్దాలను తిరస్కరించడానికి మేము అదనపు ఫిల్టర్ను కూడా జోడించవచ్చు. అలాగే, ఇతర ఆడియో యాంప్లిఫైయర్ సర్క్యూట్లు మరియు ఇతర ఆడియో సంబంధిత ప్రాజెక్టులను చూడండి.
మీరు ఈ కథనాన్ని ఇష్టపడ్డారని మరియు దాని నుండి క్రొత్తదాన్ని నేర్చుకున్నారని నేను ఆశిస్తున్నాను. మీకు ఏమైనా సందేహం ఉంటే, మీరు ఈ క్రింది వ్యాఖ్యలలో అడగవచ్చు లేదా వివరణాత్మక చర్చ కోసం మా ఫోరమ్లను ఉపయోగించవచ్చు.