نمونه برداری و تحلیل سیگنال I2C با استفاده از میکرو کنترولر

88 روز پیش

لطفا فایل شماره یک رو ملاحظه بفرمایید. یه مستر هست که با سه تا LM75 به طور دائم در ارتباط هست و فقط هم دما رو میخونه. خیلی ساده ، اول آدرس، بعدش دستور ریدینگ دست آخر هم دما. برای هرسه تا سنسور پشت سر هم و کل این فرایند اغلب دوبار تکرار میشه در هر ثانیه. ولی زمان بین خواندن اولی و دومی کاملا متغییر و تصادفی هست. تصویر یک ما اون بلاک سبز هستیم و قراره ما هم از اطلاعات دما با خبر بشیم. شاید اینطور به نظر بیاد که مساله سادست ما هم دستور خواندن رو صادر میکنیم که اطلاعات دما رو برداریم. ولی توجه بفرمایید که اگر خوندن ما با سیگنال های مستر همزمان بشه بلافاصله سیستم تریپ میخوره که این کار ممنوع هست و به هیچ عنوان نباید سیستم وقفه در کارش ایجاد بشه. در وحله اول با روش های آماری با قضیه برخورد شد که احتمال تداخل سیگنال ما با مستر به صفر برسه ولی متاسفانه بعد از چند ساعت این تداخل به خاطر ذات تصادفی خواندن مستر حتما اتفاق می افتد مهمم نیست که چقدر تکنیک های آماری رو پیشرفته کنی. ولی ما اینجا به دنبال راه حل قطعی هستیم. از اونجایی که ما هیچ دسترسی یا کنترلی نه روی اسلیوها و نه روی مستر نداریم، تنها راه اینطور به نظر میاد که مشابه پردازش سیگنال یک logic Analyzer از سیگنال ها فقط نمونه برداری بشه و اونوقت درون یک میکرو پردازش سیگنال و نهایتا استخراج دمای سنسورها انجام بشه. تصویر دوم. بسیار از آی سی های سوییچ I2C توی مارکت برای این موضوع مطالعه شد که متاسفانه برای این پروژه اجرایی نبود. پیشنهاد میکنم اگه بتونیم به طریقی دسترسی به زیر لایه های دستور HAL پیدا کنیم این کار ممکنه میشه چون سخت افزار لازم تو دل میکرو همین الان هم هست. میکرو Stm32f0C8T6 میتونه تا فرکانس نزدیک به 380 کیلوهرتز کلاک I2C تولید میکنه. بدون صورت که مثلا میکرو اطلاعات کلاک و دیتا رو روی یک آرایه ذخیره بکنه بدون اینکه بخواد سیگنال ACL یا NACK بزنه و عملا فقط یه Observerباقی بمونه. اطلاعات بیشتری لازم بود بفرمایید بلافاصله خدمتتون ارسال می گردد.

بودجه

10,000,000 تومان

تاریخ انقضا

24 فروردین 1404

مدت زمان پروژه

10 روز

پیشنهادها

1 پیشنهاد

نیاز به فاز بندی

ندارد

سطح پروژه

متوسط


فایل پیوست


مهارت‌های مورد نیاز پروژه


دسته‌بندی

درباره کارفرما

Elengineer
Elengineer

عضو از10 فروردین 1404