- MCP4921 DAC (ینالاگ کنورٹر ڈیجیٹل)
- ضروری اجزاء
- اسکیمیٹک
- کوڈ کی وضاحت
- PIC کا استعمال کرتے ہوئے ڈیجیٹل سے ینالاگ تبادلوں کی جانچ ہو رہی ہے
ڈیجیٹل اور اینالاگ الیکٹرانکس کا لازمی جزو ہیں۔ بیشتر آلات میں اے ڈی سی کے ساتھ ساتھ ڈی اے سی دونوں ہوتے ہیں اور جب وہ سگنل کو ینالاگ سے ڈیجیٹل یا ڈیجیٹل میں ینالاگ میں تبدیل کرنے کی ضرورت ہوتی ہے تو وہ استعمال ہوتے ہیں۔ نیز آواز اور روشنی جیسے حقیقی دنیا کے اشارے فطرت میں ینالاگ ہیں ، لہذا جب بھی یہ حقیقی دنیا کے اشاروں کو استعمال کرنا پڑتا ہے تو ، ڈیجیٹل سگنلز کو ینالاگ میں تبدیل کرنا پڑتا ہے ، مثال کے طور پر اسپیکر کے ذریعہ آواز پیدا کرنا یا روشنی کے منبع کو کنٹرول کرنا ہے۔
ڈی اے سی کی ایک اور قسم پلس چوڑائی ماڈیولر (PWM) ہے۔ ایک PWM ایک ڈیجیٹل لفظ لیتا ہے اور متغیر پلس کی چوڑائی والی ڈیجیٹل پلس تیار کرتا ہے۔ جب یہ سگنل کسی فلٹر کے ذریعے گزر جاتا ہے تو ، نتیجہ مکمل طور پر ینالاگ ہوگا۔ ینالاگ سگنل میں سگنل میں متعدد قسم کا ڈیٹا ہوسکتا ہے۔
اس ٹیوٹوریل میں ، ہم ڈیجیٹل سے ینالاگ تبادلوں کے لئے مائکروچپ PIC16F877A کے ساتھ DAC MCP4921 کو انٹرفیس دیں گے ۔
یہاں اس ٹیوٹوریل میں ہم ڈیجیٹل سگنل کو ینالاگ سگنل میں تبدیل کریں گے اور ان پٹ ڈیجیٹل ویلیو اور آؤٹ پٹ ینالاگ ویلیو کو 16x2 LCD پر ڈسپلے کریں گے۔ یہ 1V ، 2V ، 3V ، 4V ، اور 5V کو حتمی مطابق مطابق پیداوار کے طور پر فراہم کرے گا جو آخر میں دیئے گئے ویڈیو میں ظاہر کیا گیا ہے۔ آپ ڈی اے سی کے بارے میں مزید جان سکتے ہیں کہ راس بیری پائی ، اردوینو اور ایس ٹی ایم 32 بورڈ کے ساتھ مداخلت کرنے والے ہمارے ڈی اے سی کے قیمتی ٹیوٹوریل میں۔
ڈی اے سی کو متعدد ایپلی کیشنز میں استعمال کیا جاسکتا ہے جیسے موٹر کنٹرول ، ایل ای ڈی لائٹس کی کنٹرول چمک ، آڈیو یمپلیفائر ، ویڈیو انکوڈرز ، ڈیٹا حصول سسٹم وغیرہ۔ براہ راست انٹرفیسنگ حصے پر کودنے سے پہلے ، ایم سی پی 4921 کے بارے میں جائزہ لینا ضروری ہے۔
MCP4921 DAC (ینالاگ کنورٹر ڈیجیٹل)
ایم سی پی 4921 ایک 12 بٹ ڈی اے سی ہے ، لہذا ایم سی پی 4921 آؤٹ پٹ ریزولوشن کے 12 بٹس فراہم کرے گا۔ ڈی اے سی ریزولوشن کا مطلب ہے ڈیجیٹل بٹس کی تعداد جو ینالاگ سگنل میں تبدیل ہوسکتی ہے۔ اس سے ہم کتنی اقدار حاصل کرسکتے ہیں اس کی بنیاد فارمولے پر ہے۔ 12 بٹ کے ل it ، یہ = 4096 ہے۔ اس کا مطلب ہے کہ 12 بٹ ریزولوشن ڈیک 4096 مختلف آؤٹ پٹ تیار کرسکتا ہے۔
اس قدر کا استعمال کرتے ہوئے ، ایک آسانی سے ایک ینالاگ مرحلہ وولٹیج کا حساب لگاسکتا ہے۔ اقدامات کا حساب کتاب کرنے کے لئے ، حوالہ وولٹیج کی ضرورت ہے۔ چونکہ ڈیوائس کیلئے منطق وولٹیج 5V ہے ، اس طرح مرحلہ وولٹیج 5/4095 ہے (4096-1 کیونکہ ڈیجیٹل کے لئے نقطہ آغاز 1 نہیں ہے ، 0 ہے) ، جو 0.00122100122 ملی وولٹ ہے۔ تو ، 1 بٹ کی تبدیلی سے 0.00122100122 کے ساتھ ینالاگ پیداوار میں تبدیلی آئے گی۔
تو ، یہ تبادلوں کا حصہ تھا۔ ایم سی پی 4921 ایک 8 پن آئی سی ہے ۔ پن آریھ اور وضاحت ذیل میں پایا جا سکتا ہے.
MCP4921 آایسی SPI پروٹوکول طرف microcontroller کی کے ساتھ بات چیت. ایس پی آئی مواصلات کے ل a ، کسی آلے کو ماسٹر بننا پڑتا ہے ، جو غلام کے طور پر منسلک بیرونی آلہ پر ڈیٹا یا کمانڈ پیش کرتا ہے۔ ایس پی آئی مواصلاتی نظام میں ، ایک سے زیادہ غلام ڈیوائسز کو واحد ماسٹر ڈیوائس کے ساتھ منسلک کیا جاسکتا ہے۔
ڈیٹا اور کمانڈ پیش کرنے کے ل the ، ضروری ہے کہ کمانڈ رجسٹر کو سمجھا جا understand۔
نیچے کی تصویر میں ، کمانڈ رجسٹر دکھایا گیا ہے ،
کمانڈ ورڈ کو ایک 16 بٹ ورڈ ہے. بٹ 15 سے بٹ -12 کنفیگریشن کمانڈ کے لئے استعمال ہوتا ہے۔ مندرجہ بالا تصویر میں ڈیٹا ان پٹ اور کنفیگریشن واضح طور پر دکھائی گئی ہے۔ اس پروجیکٹ میں ، MCP4921 درج ذیل تشکیل کے بطور استعمال ہوگا۔
بٹ نمبر |
تشکیل |
کنفیگریشن ویلیو |
بٹ 15 |
ڈی اے سی اے |
0 |
بٹ 14 |
بے ساختہ |
0 |
بٹ 13 |
1x (V آؤٹ * D / 4096) |
1 |
بٹ 12 |
آؤٹ پٹ پاور ڈاون کنٹرول بٹ |
1 |
تو ثنائی 0011 کے ساتھ ساتھ اعداد و شمار کے ساتھ ہے جو D11 سے D0 بٹ رجسٹر کے ذریعہ طے کی جاتی ہے۔ 16 بٹ ڈیٹا 0011 ایکس ایکس ایکس ایکس ایکس ایکس ایکس ایکس ایکس ایکس ایکس ایکس ایکس جمع کرنے کی ضرورت ہے جہاں ایم ایس بی کا پہلا 4 بٹ کنفیگریشن ہے اور باقی ایل ایس بی ہے۔ رائٹ کمانڈ ٹائمنگ ڈایاگرام دیکھ کر یہ واضح ہوجائے گا۔
ٹائمنگ ڈایاگرام اور ڈیٹا شیٹ کے مطابق ، ایم سی پی 4921 پر پوری کمانڈ کی تحریری مدت کے لئے سی ایس پن کم ہے۔
اب وقت آگیا ہے کہ آلہ کو ہارڈ ویئر کے ساتھ انٹرفیس کریں اور کوڈ لکھیں۔
ضروری اجزاء
اس پروجیکٹ کے لئے ، درج ذیل اجزاء کی ضرورت ہے۔
- ایم سی پی 4921
- PIC16F877A
- 20 میگا ہرٹز کرسٹل
- ایک ڈسپلے 16x2 کردار LCD.
- 2k ریزٹر -1 پی سی
- 33 پی ایف کیپسیسیٹرز - 2 پی سیز
- 4.7k ریزٹر - 1 پی سی
- آؤٹ پٹ وولٹیج کی پیمائش کرنے کے لئے ایک ملٹی میٹر
- ایک بریڈ بورڈ
- 5V بجلی کی فراہمی ، ایک فون چارجر کام کرسکتا ہے۔
- بہت سارے ہک اپ تاروں یا برگ تاروں۔
- مائکروچپ پروگرامنگ ماحول پروگرامر کٹ اور کمپائلر کے ساتھ IDE
اسکیمیٹک
ڈی آئی سی 4921 کو پی آئی سی مائکروکنٹرولر کے ساتھ انٹرفیس کرنے کے لئے سرکٹ ڈایاگرام ذیل میں دیا گیا ہے۔
سرکٹ بریڈر بورڈ میں تعمیر کیا گیا ہے۔
کوڈ کی وضاحت
ڈیجیٹل سگنل کو PIC16F877A کے ساتھ ینالاگ میں تبدیل کرنے کے لئے مکمل کوڈ مضمون کے آخر میں دیا گیا ہے۔ ہمیشہ کی طرح ، ہمیں سب سے پہلے پی آئی سی مائکروکنٹرولر میں ترتیب بٹس مرتب کرنے کی ضرورت ہے۔
// PIC16F877A کنفگریشن بٹ ترتیبات // سی مصدر لائن کی تشکیل بیانات // تشکیل #pragma تشکیل FOSC = HS // oscillator کے سلیکشن بٹس (ایچ ایس oscillator کے) #pragma تشکیل WDTE = OFF // واچ ڈاگ ٹائمر کو فعال بٹ (WDT غیر فعال) # پراگما کنفیگریشن PWRTE = OFF // پاور اپ ٹائمر قابل بٹ (PWRT غیر فعال) # پراگما تشکیل BOREN = ON // براؤن آؤٹ ری سیٹ کریں قابل بٹ (BOR فعال) # پرگرام کی تشکیل LVP = OFF // کم وولٹیج (واحد سپلائی)) ان سرکٹ سیریل پروگرامنگ بٹ کو قابل بنائیں (RB3 / PGM پن میں PGM فنکشن ہے؛ کم وولٹیج پروگرامنگ فعال ہے) # پیراگما کنفیگریشن سی پی ڈی = آف // ڈیٹا EEPROM میموری کوڈ پروٹیکشن بٹ (ڈیٹا EEPROM کوڈ پروٹیکشن آف) #pragma config WRT = OFF // فلیش پروگرام میموری تحریر بٹس کو چالو کریں (تحریری تحفظ کو بند کریں all ECHON کنٹرول کے ذریعہ تمام پروگرام میموری کو تحریری شکل دی جاسکتی ہے) # پیراگما تشکیل سی پی = آف // فلیش پروگرام میموری کوڈ پروٹیکشن بٹ (کوڈ پروٹیکشن آف)
ذیل میں کوڈ لائنز LCD اور SPI ہیڈر فائلوں کو مربوط کرنے کے لئے استعمال کی جاتی ہیں ، XTAL فریکوینسی اور DAC کا CS پن کنکشن بھی اعلان کیا جاتا ہے۔
PIC SPI ٹیوٹوریل اور لائبریری دیئے گئے لنک پر مل سکتی ہے۔
# شامل کریں
funciton کے SPI_Initialize_Master () تھوڑا سا اس منصوبے کے لئے درکار ایک مختلف ترتیب کے لئے نظر ثانی کی ہے. اس معاملے میں ، ایس ایس پی ایس ٹی اے ٹی رجسٹر کو اس طرح تشکیل دیا گیا ہے کہ ڈیٹا آؤٹ پٹ وقت کے اختتام پر ان پٹ ڈیٹا کا نمونہ لیا گیا اور اسپیشل سے بیکار کلاک اسٹیٹ وضع میں منتقلی کے وقت ٹرانسمٹ کے بطور تشکیل شدہ ایس پی آئی گھڑی بھی واقع ہوتی ہے۔ دوسرا وہی ہے۔
باطل SPI_Initialize_ ماسٹر () { TRISC5 = 0؛ // آؤٹ پٹ کے طور پر سیٹ کریں SSPSTAT = 0b11000000؛ // پی جی 74/234 ایس ایس پی سیون = 0b00100000؛ // پی جی 75/234 TRISC3 = 0؛ // غلام وضع کے لئے پیداوار کے طور پر مقرر کریں }
نیز ، مندرجہ ذیل فنکشن کے لئے ، SPI_Write () میں قدرے ترمیم کی گئی ہے۔ ایس پی آئی پر کامل ڈیٹا ٹرانسمیشن کو یقینی بنانے کے لئے بفر کو صاف کرنے کے بعد ڈیٹا منتقل کرنے کا عمل ہوگا۔
باطل SPI_Write (چار آنے والے) { SSPBUF = آنے والا؛ // صارف کو دیئے گئے ڈیٹا کو بفر میں لکھیں جبکہ (! SSPSTATbit.BF)؛ }
پروگرام کا اہم حصہ ایم سی پی 4921 ڈرائیور ہے۔ یہ تھوڑا سا مشکل حصہ ہے کیونکہ ایس پی آئی پر مکمل 16 بٹ ڈیٹا فراہم کرنے کے لئے کمانڈ اور ڈیجیٹل ڈیٹا کو ایک ساتھ گھونس دیا جاتا ہے۔ تاہم ، اس منطق کو کوڈ کے تبصروں میں واضح طور پر دکھایا گیا ہے۔
/ * یہ فنکشن ڈیجیٹل ویلیو کو ینالاگ میں تبدیل کرنے کے لئے ہے۔ * / باطل کنورٹ_ڈیسی (بغیر دستخط شدہ قدر) { / * مرحلہ سائز = 2 ^ n ، لہذا 12 بٹ 2 ^ 12 = 4096 5V حوالہ کے ل the ، قدم 5/4095 = 0.0012210012210012V یا 1mV (تقریبا) * / دستخط شدہ کنٹینر نہیں ہوگا ؛ بغیر دستخط شدہ ایم ایس بی؛ غیر دستخط شدہ ایل ایس بی؛ / * مرحلہ: 1 ، 12 بٹ ڈیٹا کو کنٹینر میں محفوظ کریں فرض کریں کہ ڈیٹا 4095 ہے ، بائنری میں 1111 1111 1111 * / مرتبہ = قیمت؛ / * مرحلہ: 2 ڈمی 8 بٹ بنانا۔ لہذا ، 256 کی تقسیم کرکے ، بالائی 4 بٹس ایل ایس بی ایل ایس بی = 0000 1111 * / ایل ایس بی = کنٹینر / 256 میں قبضہ کرلیتے ہیں ۔ / * مرحلہ: 3 4 بٹ ڈیٹا کو چھدرن کے ساتھ ترتیب بھیجنا۔ LSB = 0011 0000 یا 0000 1111. نتیجہ 0011 1111 * / LSB = (0x30) ہے - LSB؛ / * مرحلہ: 4 کنٹینر میں اب بھی 21 بٹ کی قیمت ہے۔ کم 8 بٹس نکالنا 1111 1111 اور 1111 1111 1111. نتیجہ 1111 1111 ہے جو ایم ایس بی * / MSB = 0xFF & کنٹینر ہے۔ / * مرحلہ: 4 16 بائٹس کو دو بائٹس میں تقسیم کرکے بھیجنا۔ * / DAC_CS = 0؛ // CS ڈیٹا منتقل کرنے کے دوران کم ہے۔ ڈیٹا شیٹ کے مطابق اس کی ضرورت SPI_Write (LSB) ہے۔ SPI_Write (MSB)؛ DAC_CS = 1؛ }
مرکزی تقریب میں ، 'لوپ' کے لئے استعمال کیا جاتا ہے جہاں 1V ، 2V ، 3V ، 4V ، اور 5V کی آؤٹ پٹ بنانے کے لئے ڈیجیٹل ڈیٹا تیار کیا جاتا ہے۔ ڈیجیٹل ویلیو کا حساب آؤٹ پٹ وولٹیج / 0.0012210012210012 ملیولیٹ کے مقابلہ میں کیا جاتا ہے۔
باطل اہم () _ system_init ()؛ تعارف_سکرین ()؛ انٹ نمبر = 0؛ انٹ وولٹ = 0؛ جبکہ (1) { for (وولٹ = 1؛ وولٹ <= MAX_VOLT؛ وولٹ ++) { نمبر = وولٹ / 0.0012210012210012؛ صاف_سکرین ()؛ lcd_com (FIRST_LINE)؛ lcd_puts ("ڈیٹا ارسال کردہ: -")؛ lcd_print_number (نمبر)؛ lcd_com (SECOND_LINE)؛ lcd_puts ("آؤٹ پٹ: -")؛ lcd_print_number (وولٹ)؛ lcd_puts ("V")؛ کنورٹ_ڈی اے سی (نمبر)؛ __Dlay_ms (300)؛ } } }
PIC کا استعمال کرتے ہوئے ڈیجیٹل سے ینالاگ تبادلوں کی جانچ ہو رہی ہے
بلٹ سرکٹ کا استعمال ملٹی میٹر کا استعمال کرتے ہوئے کیا جاتا ہے۔ نیچے کی تصاویر میں ، LCD پر آؤٹ پٹ وولٹیج اور ڈیجیٹل ڈیٹا دکھایا گیا ہے۔ ملٹی میٹر قریبی پڑھ رہا ہے۔
کام کرنے والی ویڈیو کے ساتھ مکمل کوڈ ذیل میں منسلک ہے۔