PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : یکسان کردن ولتاژ باس میکرو و سنسور برای i2c



Sens
23-08-2012, 16:09
سلام خدمت دوستان عزیز

من با میکرو pic16f877a کار می کنم.می خوام با یه سنسور که رابط i2c داره ارتباط برقرار کنم.
اما یه مشکلی هست,اونم اینکه ولتاژ میکرو من 5 ولته و ولتاژ سنسور 3 ولته که تو برقراری ارتباط به مشکل می خوره.یعنی ولتاژ slave و master یکی نیست.

من vcc میکرو رو با vcc سنسور یکی کردم که میکرو کار میکنه اما پایدار نیست.
تو دیتاشیت برای سری 16f ولتاژ رو از 4 تا 5 ولت و برای سری 16Lf بین 2 تا 5 ولت زده.اما بازم یه مشکل دیگه اینکه سری Lf فرکانس کاریشون خیلی پایینه و نویز پذیری بالایی دارن.بعضی از دوستان گفتن که از i2c نرم افزاری استفاده کنم روی پرت b که خروجی TTL داره.بعضی از دوستان گفتن که از i2c نرم افزاری استفاده کنم روی پرت b که خروجی TTL داره.بعضی هام گفتن از level shifter استفاده کنم.




حالا از شما دوستان می خوام که کمک کنن که با سری 16f این سنسور رو راه اندازی کنم

یا علی

mj3747
23-08-2012, 16:21
از تقسیم ولتاژ مقاومتی استفاده کن.
تغذیه مثبت سنسور هم با 2 تا دیود سری شده بهش بده، البته اگه تغذیه ش 3.6 ولت.

morteza_rk
23-08-2012, 17:27
سلام

اینطور که من متوجه شدم مشکل اینجاست که شما نمی تونید میکروتونو با ولتاژ کمتر از 4 ولت تغذیه کنید.

پس الان دوتا روش ساده برای شیفت دادن سطح ولتاژ میکرو تا سطح ولتاژ سنسور هست.

1. استفاده از دیود زنر 3 ولت
2. استفاده از تقسیم مقاومتی

لطفا به عکس های توجه کنید.

Sens
23-08-2012, 17:59
سلام

اینطور که من متوجه شدم مشکل اینجاست که شما نمی تونید میکروتونو با ولتاژ کمتر از 4 ولت تغذیه کنید.

پس الان دوتا روش ساده برای شیفت دادن سطح ولتاژ میکرو تا سطح ولتاژ سنسور هست.

1. استفاده از دیود زنر 3 ولت
2. استفاده از تقسیم مقاومتی

لطفا به عکس های توجه کنید.
ممنونم از پاسختون

میشه بفرمایید مقاومت 3.3 نقشش چیه؟نقش پول اپ رو داره؟

KHM
23-08-2012, 19:00
ممنونم از پاسختون

میشه بفرمایید مقاومت 3.3 نقشش چیه؟نقش پول اپ رو داره؟
نه رفیق...قضیه همون تقسیم مقاومتیه...وقتی بالا ولتاژت 5ولته،تو وسط که به سنسور وصل میشه،خروجیت میشه (3.3/5.5) * 5 یعنی میشه 3 ولت...
اگه ام خواستی از دیود زنر استفاده کنی،طرف میکرو مقاومت 130 اهم هم بذار..
موفق باشی...

agape
23-08-2012, 22:42
دوست من ترتیب مقاوتی درست بهت جواب نمیده - چرا که تو پرتکل I2c خط SDA دو طرفه هست - و اما راه چیه اینا رو ببین
You can see links before reply
You can see links before reply
You can see links before reply

Sens
24-08-2012, 00:57
به نظرم تو ترتیب مقاومتی ولتاژ برگشتی از سنسور دچار مشکل میشه.درسته؟

saeidhp
24-08-2012, 00:58
سلام به این سایت (You can see links before reply) یه نگاهی بندازید که روش های متعددی رو گفته اما در در روش هایی که ارتباط 2طرفه هست میتونید از آیسی هایی که معرفی کرده استفاده کنید

KHM
24-08-2012, 01:10
به نظر من که تو 2طرفه هم مشکلی نداره..چون اگه ولتاژ سنسور رو 3ولت بگیریم، ولتاژ سر بالایی بازم همو 5ولت میشه...
در ثانی حتی همو 3ولت هم میتونه 1منطقی باشه..
البته کاملآ قبول دارم که استفاده از ترانزیستور یا ماسفت بهتره...ولی به نظرم اینم کارو راه میندازه ها...(البته اگه 3ولت رو 1منطقی در نظر بگیره، زنر هم بهتر از تقسیم مقاومتی کار میکنه)

Sens
24-08-2012, 20:15
با مقاومت تست زدم بعضی مواقع اختلال پیش میاد.با ماسفت تست کردم بد نبود.
اما این ای سی از همش بهتر بود

Txb0108 (You can see links before reply)


بازم از همه ی دوستان بابت راهنمایی های خوب تشکر می کنم.

یا علی

agape
24-08-2012, 20:42
خوب خدا رو شکر مشکل حل شد !

morteza_rk
25-08-2012, 00:12
دوست من ترتیب مقاوتی درست بهت جواب نمیده - چرا که تو پرتکل i2c خط sda دو طرفه هست

فرمایش جناب مزارعی کاملا صحیحه. من حواسم به این قسمت نبود. چون تا حالا عملی درگیرش نشدم. ولی توی ماژول های gsm متفاوتی که کار کردم و همینطور mmc همین تقسیم مقاومتی کار منو راه انداخت. البته معلومه که اونجا ، یک خط ارتباط دو طرفه نداشت مثل sda.

Sens
25-08-2012, 01:32
فرمایش جناب مزارعی کاملا صحیحه. من حواسم به این قسمت نبود. چون تا حالا عملی درگیرش نشدم. ولی توی ماژول های gsm متفاوتی که کار کردم و همینطور mmc همین تقسیم مقاومتی کار منو راه انداخت. البته معلومه که اونجا ، یک خط ارتباط دو طرفه نداشت مثل sda.
فرمایش شما درسته.
تو تقسیم مقاومتی شما فقط میتونی از روی slave عمل خوندن رو انجام بدی اما تو عمل نوشتن ناپایداری پیش میاد.بهترین راه برای ارتباط 2 طرفه ماسفت فرکانس بالا یا همون ای سی BIDIRECTIONAL VOLTAGE-LEVEL TRANSLATOR هستش.
یا علی

Sens
26-08-2012, 23:30
دوستان عذر خواهی می کنم
یه سوال دیگه داشتم
اونم اینکه من می خوام با i2c داخل یه رجیستر مقدار رو عوض کنم اما تو ادرس دهیش به مشکل برخوردم.

توی عکس زیر من می خوام تو قسمت clk_sel یه مقداری رو write کنم.همون طوری که توی عکس مشخصه ادرس رجیستر 6b هست.حالا می خوام بدونم ادرس clk_sel چیه؟
You can see links before reply



i2c_start();
i2c_write(0xD0);
i2c_write(0x6b);
i2c_write(0x00);
i2c_stop();
delay_ms(10);

behnam6500
27-08-2012, 00:05
برای ارتباط mmc و میکرو 5 ولت باید از تقسیم مقاومتی یا زنر استفاده کرد؟ اگه اره برای کدوم پایه ها باید زنر گذاشت؟

Sens
27-08-2012, 00:13
برای ارتباط mmc و میکرو 5 ولت باید از تقسیم مقاومتی یا زنر استفاده کرد؟ اگه اره برای کدوم پایه ها باید زنر گذاشت؟
از ماسفت استفاده کن
تقسیم مقاومتی جواب گو نیست
bs170

morteza_rk
27-08-2012, 00:51
برای ارتباط mmc و میکرو 5 ولت باید از تقسیم مقاومتی یا زنر استفاده کرد؟ اگه اره برای کدوم پایه ها باید زنر گذاشت؟

تاپیک جدید مهندس! به عکس زیر نگاه کن. 100% جواب میده.

behnam6500
27-08-2012, 01:52
تاپیک جدید مهندس! به عکس زیر نگاه کن. 100% جواب میده.

سپاس... دقیقن من هم از همین مقاومتها استفاده میکنم و همین شماتیکش... با 3.3 کیلو و 1.8 کیلو... گفتم شاید جز این مقاومتی لازم باشه... با هر حال ممنونم