Visits: 264
در دنياي امروزي يعني دنياي ديجيتال همه آيسي ها و يا ميكرو كنترولرها و ساير پردازنده عمده مصرف آنها در طراحي مدارتي است كه با سنسور ها سروكار دارند. همانطور كه مي دانيم خروجي تمامي سنسور ها يا جريان هستند و يا ولتاژ كه دامنه جريان و ولتاژ آنها بسيار پايين بوده و حتي در مواردي آنها را با استفاده از تقويت كننده هاي عملياتي تا يك محدوده اي تقويت مي كننده و بعدا تقويت شده آن را به ADC مي دهند. ADC يك مبدل آنالوگ به ديجيتال مي باشد كه با استفاده از پايه 9 يعني Vref مي توان مقدار دامنه سيگنال ورودي را با توجه به مقدار ولتاژ اين پايه تنظيم كرد.
به اين صورت كه اگر اين پايه را رها كنيم و به جايي وصل نكنيم ولتاژ دامنه سيگنال ورودي مي تواند در محدوده 0 تا 5 ولت باشد كه در اين صورت گام هر پله برابر با 19.23=256÷5 ميلي ولت خواهد شد. براي ديگر ولتاژ ها هم در زير مشخص شده است:
Verf=2v -> vin=0v-4v 4/255=15.62mv
Verf=1.5v -> vin=0v-3v 3/255=11.71mv
Verf=1.28v -> vin=0v-2.56v 2.56/255=10mv
Verf=1v -> vin=0v-2v 2/255=7.81mv
Verf=.5v -> vin=0v-1v 1/255=3.90mv
گام پله يعني اينكه به ازاي چه مقداري از دامنه ورودي خروجي يك واحد باينري بالا يا پايين برود. مثلا با ولتاژ پايه 2ولت خروجي ديجيتال ما به ازاي هر 15.62 ميلي ولت ورودي يك واحد افزايش مي يابد يعني 18.62=00000001B و 37.24=00000010B خواهد شد و در ساير ولتاژ ها هم همين طور مي باشد. البته اگر قادر به توليد اين ولتاژ هاي پايه نباشيم مي توانيم توسط يك پتانسيومتر 10 كيلو و با تنظيم آن يك ولتاژ مبنا ايجاد كرد.
تشريح پايه ها:
1) CS اين پايه در واقع انتخاب كننده چيپ مي باشد. كار برد اين پايه در مدارتي كه نياز به دو يا چند سنسنور باشد كه براي هر سنسور يك ADC استفاده مي كنيم و در ميكرو ما مي توانيم توسط اين پايه مشخص كنيم كه كدام يك از ADC ها انتخاب شوند و ميكرو زير برنامه چه سنسوري را اجرا كند. البته در مداراتي كه از يك سنسور استفاده مي كنيم چون ما يك آيسي داريم مي توانيم آن را زمين كنيم.
2) RD همون طوري كه از معني آن پيدا است يعني خواندن. وقتي ما مي خواهيم يك سيگنال آنالوگ را به ديجيتال تبديل كنيم اگر پايه CS=0 باشد و پايه RD را هم صفر كنيم آيسي معادل ديجيتال سيگنال ورودي را در خروجي قرار مي دهد يعني D0-D7 . البته بايد از قبل توسط پايه WR كه در زير توضيح داده شده است سيگنال آنالوگ را براي تبديل آماده كنيم.
3) WR يعني نوشتن. اگر پايه CS=0 باشد و WR را در يك لحظه صفر كنيم در واقع آغاز روند تبديل را به ADC اطلاع مي دهد. كه ADC بعد از متوجه شدن به سراغ سيگنال ورودي رفته و آن را تبديل كرده و در يك ثبات داخلي ذخيره مي كند تا زماني كه RD=0 شود و محتواي اين ثبات را به خروجي انتقال مي دهد.
4) CLK IN اگر بخواهيم از يك منبع پالس ساعت بيروني استفاده كنيم پالس ساعت را به اين پايه اعمال مي كنيم و اگر بخواهيم از پالس ساعت داخلي خود ADC استفاده كنيم بايد اين پايه و پايه 19 را به يك مقاومت و خازن متصل كنيم. فركانس آن از طريق فرمول زير مي باشد: f=1/(1.1*RC) مقادير پيشنهادي براي اين آيسي مقاومت 10 كيلو اهم و خازن 150 پيكو فاراد مي باشد كه زمان تبديل ADC با توجه به فرمول بالا 110 ميكرو ثانيه خواهد شد. يعني در زمان 110 ميكرو ثانيه اي مي تواند يك سيگنال را از ورودي بخواند و معادل ديجيتال آن را تحويل دهد.
5) INTR همون وقفه هست. اين پايه هميشه در وضعيت يك قرار دارد و هرگاه سيگنالي در ورودي باشد و CS=0 و WR=0 باشد پس از پايان تبديل اين پايه صفر مي شود كه اگر اين پايه را به پايه وقفه بيروني 8051 وصل كنيم و آن را برنامه ريزي كنيم در اين صورت مي توانيم از CPU ميكرو كارهاي ديگري انجام دهيم و هرگاه عمل تبديل به اتما رسيد ميكرو متوجه مي شود و براي خواندن خرجي ADC مي رود و بعد از خواندن به كار قبلي خود خواهد برگشت. در كل براي صرفه جويي در وقت ميكرو مي باشد شما مي تواند اصلا استفاده نكنيد.(منظورم روش وقفه هست) البته من در اين مثال از روش وقفه سركش استفاده كردم يعني CPU كل خود را روي اين پايه مي گذارد و هرگاه صفر شده عمل فرائت را انجام مي دهد.
6) VIN(+)
7) VIN(-) اين دو پايه ورودي هاي تفاضلي هستند كه خروجي برابر با VIN=VIN(+)-VIN(-) خواهد بود. ولي ما اغلب از ورودي تفاضلي استفاده نمي كنيم و VIN(-) را به زمين وصل كرده و VIN(+) را هم سيگنال ورودي را به آن متصل مي كنيم.
8) A GND زمين آنالوگ كه به زمين وصل مي كنيم.
9) Vref/2 كه در بالا توصيح داديم
10)GND زمين آيسي
11)پايه 11 تا 18به ترتيب D0-D7 خطوط داده 8 بتي هستند. (D0=18…D7=11).
19)CLK R كه در بالا توضيح داديم.
20)VCC تغذيه آيسي.
قسمتي از برنامه را براي خواندن سيگنال آنالوگ و در نهايت تبديل به داده 8 بيتي و خواندن اين داده 8 بيتي و تبديل آن به مقدار ده دهي يعني دسيمال را نوشته ام در صورتي كه كل برنامه و سخت افزار كامل اين پروژه را بخواهيد با ايميل من تماس بگيريد. اين برنامه و شكل مداري در واقع يك نماي از اين پروژه هست. نام اين پروژه، محافظ ديجيتالي مي باشد كه ضمن اندازه گيري ولتاژ برق شهر و نمايش آن بر روي يك ال سي دي16*1 در صورتي كه برق شهر از 180 ولت پايين تر بيايد خروجي يعني رله را قطع مي كند و اگر از 240 ولت هم بالا تر رود باز هم خروجي را قطع مي كند. به طور كلي به ولتاژ هايي در محدوده 180تا 240 اجازه عبور مي دهد.
برنامه خواندن از ADC: