AD7715 یک مبدل آنالوگ به دیجیتال 16 بیتی از نوع سیگما دلتا است. این ADC از پروتکل SPI پشتیبانی میکند و آن را میتوان به راحتی با میکروکنترلر مرتبط کرد.
دارای رنج ولتاژ تغذیه 3-5 ولت ، قابلیت مدیرت توان مصرفی (مد استندبای)، و قابلیت دریافت ورودی در دوحالت تک قطبی و دیفرانسیلی است. همچنین میتواند سیگنالهای ورودی را با بهرهای قابل کنترل تقویت کند.
ضریب غیر خطی بودن آن 0.0015 +/- است.
این IC دارای 4 رجیستر برای تنظیم ،تست و خروجی دیتا است.
رجیسترهای AD7715:
Communication Register
Setup Register
DATA Register
Test Register
Communication Register:
G2 | G1 | STBY | R/W | RS0 | RS1 | Zero | 0/DRDY |
0/DRDY:این بیت دارای دو کاربرد مختلف برای زمان های نوشتن و خواندن است.
در زمان نوشتن در رجیستر ها، این بیت باید صفر شود تا بتوان تغییری در جیستر داد.
در زمان خواندن، این بیت وضعیت پرچم(Flag) آماده بودن دیتا را نشان میدهد.یعنی هنگامی که این بیت صفر شد، دیتا آمادهی ارسال است و میتوان آن را از AD7715 دریافت کرد.
Zero: برای نوشتن یا خواندن این بیت باید صفر باشد. در غیر این صورت نتایج معتبر نخواند بود.
RS0 و RS1: توسط این بیت ها میتوان طبق جدول زیر به کلیه رجیستر ها دسترسی داشت.
رجیستر: | RS0 | RS1 |
ارتباط | 0 | 0 |
Setup | 1 | 0 |
TEST | 0 | 1 |
DATA | 1 | 1 |
R/W:این بیت برای انتخاب نوع عملیات به کار میرود. برای عمل نوشتن این بیت باید 0 و برای عمل خواندن باید 1 باشد.
STBY : برای بردن AD7715 به مد استندبای، باید این بیت را 1 کرد.
G1 و G0 : توسط این بیت ها میتوان طبق جدول زیر سیگنال ورودی را چند برابر تقویت کرد:
Gain | G2 | G1 |
1 | 0 | 0 |
2 | 1 | 0 |
32 | 0 | 1 |
128 | 1 | 1 |
Setup Register :
FSYNC | BUF | B/U | FS0 | FS1 | CLK | MD0 | MD1 |
MD1 و MD0 :توسط این بیتها میتوان مد عملکرد AD7715 را طبق جدول زیر انتخاب کرد:
وضعیت | MD0 | MD1 |
Normal Mode | 0 | 0 |
Self-Calibration | 1 | 0 |
Zero-Scale System Calibration | 0 | 1 |
Full-Scale System Calibration | 1 | 1 |
Normal Mode : مد نرمال برای عملکرد AD7715، مد پیشفرض بعد از راه اندازی یا ریست
Self-Calibration: برای انتخاب Self-Calibration این بیت باید 1 شود. بعد از اتمام عملیات، AD7715 به مد نرمال میرود.
در زمان انجام Self-Calibration ، DRDY به سطح بالا رفته و هنگام پایان عملیات به سطح صفر میرود. در این هنگتم مقدار دیتا جدید آماده میباشد.
Zero-Scale System Calibration: در این مد سیستم در عدد 0 کالیبره میشود.
Full-Scale System Calibration: در این مد سیستم در حداکثر مقدار خود کالیبره میشود.
CLK : د صورت استفاده از کلاک پالس با فرکانس 1MHz ، این بیت باید 0 باشد. برای کلاک پالس با فرکانس 2.4576Mhz ، مقدار 1 انتخاب میشود.
FS1 و FS0 : توسط این دو بیت ، حداکثر زمان تبدیل ، نمونه برداری و به روز رسانی خروجی ،طبق بر اساس جدول زیر تعیین میشود:
فرکانس قطع (3dB) فیلتر (Hz) | نرخ به روز رسانی (Hz) | FS0 | FS1 | CLK |
5.24 | 20 | 0 | 0 | 0 |
6.55 | 25 | 1 | 0 | 0 |
26.2 | 100 | 0 | 1 | 0 |
52.4 | 200 | 1 | 1 | 0 |
13.1 | 50 | 0 | 0 | 1 |
15.7 | 60 | 1 | 0 | 1 |
65.5 | 250 | 0 | 1 | 1 |
131 | 500 | 1 | 1 | 1 |
B/U :در صورتی که ورودی به صورت تک قطبی باشد ،مقدار 1 و در صورتی که ورودی دیفرانسیلی باشد، مقدار 0 انتخاب میشود.
BUF : توسط این بیت میتوان بافر روی ورودی را فعال کرد.در صورت فعال کردن بافر، بافر به صورت سری با ورودی قرار میگیرد و امپدانس ورودی بیشتری را ارائه میکند. در نتیجه مقدار جریانی که از ورودی کشیده میشود کاهش خواد یافت و نویز خروجی به حداقل مقدار خود خواهد ر.
برای مثال جریان مصرفی برای تمامی بهرهها در فرکانس 1MHz ، یا بهره 1 و 2 در فرکانس 2.4576MHz ، 250uA و برای بهرههای 32 و 128 در فرکانس 2.4576MHz ، مقدار جریان مصرفی 500uA خواهد بود.
FSYNC: در صورتی که این بیت 1 باشد، لاجیک کنترل فیلتر دیجیتال و لاجیک کنترل کالیبراسیون در وضعیت ریست نگه داشته خواهد شد.مدولاتور آنالوگ هم در وضعیت ریستاش خواهد بود. هنگامی که این بیت 1 شود، فیلتر و مدولاتور شروع به پردازش دیتا خواهند کرد.
Test Register:
این رجیستر به منظور تست AD7715 به کار میرود و نباید توسط کاربر تغییر داده شود.
DATA Register :
دیتا آماده شده در این رجیستر قرار میگیرد.این رجیستر 16 بیتی و فقط خواندنی است. اگر عملیات نوشتن بر روی این رجیستر انجام گیرد، نامعتبر بوده و توسط AD7715 نادیده گرفته خواهد شد.
داداش 32 بیتیشو سراغ نداری؟
@اکبر,
نه متاسفانه.
AD7730 32bit hast
سلام
آقای رضایی ،من برنامه ی ad7715 را که در سایت اکا قرار داده بودید دانلود کردم و مدار را همانطور که در پروتئوس کشیده بودید بستم اما خروجی همیشه صفر است و هیچ تغیری نسبت به خروجی ندارد. در برنامه ی پروتئوس شما هم همین جواب را می گیرم . اگر لطف کنید و راهنمایی ام کنید ممنون می شوم.ضمنا من باید هر چه زودتر این پروژه را تحویل دهم اگر زودتر جوابم را بدهید ممنون می شوم.
با تشکر
این مشکل شما میتونه دلایل زیادی داشته باشه که با شرح مختصری که دادید قابل بررسی نیست.
من بارها از این برنامه استفاده کردم و یک نمونه ساخته شده توسط خودم رو براتون قرار میدم شاید مشکلتون حل بشه
از اینجا دریافتش کنید:
http://www.mediafire.com/download.php?pwauqxzabssl4kd
با سلام دوباره آقای رضایی
من توی این چند روز روی برنامه شما کار میکردم ولی متاسفانه به نتیجه ای نرسیدم فایل برنامه و مداری را که از روی فایل شما کپی کردم براتون می فرستم اگر لطف کنین اشکالش را به من بگویید ممنون می شوم
(اینجا هرچی می گردم چیزی برای اتچ کردن نمی بینم برای همین در فیس بوک براتون پیغام گذاشتم)
با تشکر
با سلام
این خطوط را اصلاح کنید جواب می گیرید.
Dim Calc As Single
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0
فایلی ندیدم.گرچه وقتی هم برای بررسی های بیشتر ندارم.
شما باید اول متوجه بشید که ارتباط با IC به درستی انجام میشه یا نه
برای مثال سعی کنید تا یکی از رجیستر ها رو بخونید(مثلا از طریق RS-232)
سلام خسته نباشید من مدار را روی پروتئوس بستمک ولی واب نمیده پایه های ain+ و ain- را باید به چی وصل کنم؟
سلام دوست عزیز
پروتئوس قابلیت شبیه سازی AD7715 را ندارد.
سلام عیدباستانی رو به تمامی دوستان عزیز و جناب اقای رضائی تبریک عرض میکنم
اقای رضائئ من میخاستم برای راه اندازی pt100 از 7715 اADستفاده کنم .خاستم ببینم محاسبات pt100 رو کجای برنامه لحاظ کنم .اخه من هنوز با adc های خارجی کار نکردم .ممنونم .
ضمنا شما اینجا یه فایل قرار دادیدhttp://www.mediafire.com/download.php?pwauqxzabssl4kd
که دو شماتیک و دو pcb و برنامه مختلف هست . او برنامه ای که مجلل تر هست رو شما برای چی نوشتید و برای چه مداری هست .??
پیشاپیش از همکاری شما سپاسگذارم
سلام عیدباستانی رو به تمامی دوستان عزیز و جناب اقای رضائی تبریک عرض میکنم
اقای رضائئ من میخاستم برای راه اندازی pt100 از 7715 اADستفاده کنم .خاستم ببینم محاسبات pt100 رو کجای برنامه لحاظ کنم .اخه من هنوز با adc های خارجی کار نکردم .ممنونم .
ضمنا شما اینجا یه فایل قرار دادیدhttp://www.mediafire.com/download.php?pwauqxzabssl4kd
که دو شماتیک و دو pcb و برنامه مختلف هست . او برنامه ای که مجلل تر هست رو شما برای چی نوشتید و برای چه کاری ازش استفاده کردید؟؟البته جسارت نباشه
پیشاپیش از همکاری شما سپاسگذارم
سلام دوست گرامی
روند راه اندازی PT100 با این IC فرقی با ADC داخلی میکرو نداره.متغیر Complete_data عدد خوانده شده از PT100 هست و این عدد رو در فرمول محاسبه دما PT100 قرار بدید
همچنین فرمول تبدیل مقدار ADC به ولتاژ در قسمت دوم مقاله توضیح داده شده.
در صورتی که توضیحات ابتدای بخش سوم رو ملاحظه بفرمایید ذکر شده که :
“با توجه به این که با انتخاب مقادیر گوناگون برای رجیسترهای AD7715 (مخصوصا رجیستر Setup)، میتوان نتایج گوناگونی را به دست آورد و همچنین تغییر این رجیستر ها در سورس برنامه و انتقال برنامه به میکرو کاری طاقت فرسا است، تصمیم به طراحی برد آموزشی برای AD7715 گرفتم.در این برد مقادیر رجیسترها توسط ارتباط RS232 قابل تغییر است.تغییرات بلافاصله اعمال میشوند و همچنین در E2PROM نیز ذخیره میگردند.بنابراین تغییرات اعمالی با قطع تغذیه مدار از بین نخواهند رفت.
روال کار مدار به این شکل است که با روشن شدن مدار، خانههایی از E2PROM که تنظیمات در آنها قرار دارد بررسی میشود.در صورتی که محتوای این خانهها خالی(۲۵۵) باشد، به این معنی است که هیچ تنظیمی توسط کاربر انجام نگرفته است و بنابراین مقادیر پیش فرض در رجیستر ها قرار میگیرند.
اطلاعات به دست آمده از اندازه گیری، بر روی LCD و RS-232 فرستاده میشوند”
حتی امکانش هست که با این برد یک اسیلوسکوپ فرکانس پایین بسازید.
در مجله نویز برنامه ای که قرار دادید پند اشکال کوچک دارد که در صورت رفع کار خواهد کرد.
با عرض سلام اقای رضایی عزیز
من با کمک مطالب مفید شما در مورد AD7715 موفق به راه اندازی آن شدم ولی بعد از آزمایش های بسیار در عمل به مشکل بسیار مهمی برخوردم، ایراد اینجاست که وقتی ما به این تراشه ولتاژ ثابتی اعمال می کنیم بعد از هر بار نمونه برداری نتیجه کاملا متفاوتی بدست می آوریم و عدد حاصل از اندازه گیری به طور قابل توجهی تغییر می کند. (این نکته را هم بگویم که با وجود خازن ها و فیلتر هایی که در مدار استفاده کردم، نویزی در مدارم وجود ندارد) عامل دیگری که روی دقت اندازه گیری تاثیر گذار بود مقدار تاخیر های زمانی بود که شما در حین ارتباط SPI با تراشه در یکی از برنامه هایتان لحاظ کرده بودید. به کد زیر توجه کنید:
Bitwait Data_ready , Reset
Spiout Read_reg , 1
Waitms 5
Spiin Data_msb , 1
Spiin Data_lsb , 1
Waitms 5
(Complete_data = Makeint(data_lsb , Data_msb
خواهش من این است که هر چه زودتر راه حل این مشکل را به من پاسخ دهید…(فوری فوری) و باتشکر.
با سلام.
در صورت نیاز میتونید تاخیرها رو بردارید.
در مورد مشکلتون هم بنده هیچ کمکی نمیتونم بکنم.به دلیل حساس بودن مدارات ADC هرگونه اشتباه کوچیکی باعث بروز مشکلات بزرگ میشه.
کافیه کامنتهای این مطلب رو بخونید تا ببینید دوستان دیگه چه مشکلاتی پیدا کردن.
سلام و تشکر از شما
فایل زبان c برنامه رو ندارین؟
سلام.
متاسفانه خیر.
سلام و تشکر از مطالب خوبتان….pt100 دو سیمه را با چه مداری به ad7715 باید وصل کنیم؟ تقسیم مقاومتی که میذارم خطا داره….ممنون از شما
سلام آقا رضایی.من برنامه شما رو کامپایل میکنم ولی مقداری که از آی سی میخونم معادل 32 هزار خورده ای برای رقم صفر هست و وقتی که بهش 5 ولت میدم حدود 1000 تا افزایش پیدا میکنه.مگه نباید تغییراتش از 0 تا 65 هزار باشه؟
http://www.eca.ir/forum2/index.php?topic=52669.msg771001#msg771001
سلام…خیلی ممنون بابته اطلاعات.من سنسور دماpt100 دارم میخوام بفرستمش توی atmega 8 فقط نمیدونم این قطه ad7715 رو باید سر راه بذارم بخاطر دیفرانسیلی بودن یا ن؟؟؟
سلام
مهندس جان خواستم بپرسم میشه ولتاژ رفرنس این مبدل ۰ تا ۵ ولت باشه، تا بتونم محدوده بین این ولتاژ رو با دقت ۱۶ بیت اندازه بگیرم؟؟؟؟
سلام. این مطلب مربوط به 9 سال پیشه و متاسفانه اصلا جزئیاتش یادم نمیاد.