ايران ويج

نسخه‌ی کامل: کمک درباره تشریح رابط i2c
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

من می خوام بدونم تو پروتکل i2c اطلاعات چجوری رد و بدل میشه در واقع می خوام یه جوری توضیح بدین که بتونم بدونه کتابخانه avr خودم با این روش اطلاعات رو ارسال کنم به اون یکی میکرو 

مثلا تو این رابط چرا دو تا سیم هست کدوم سیم اطلاعات رو ارسال می کنه و کدوم سیم دریافت می کنه
چجوری آی سی می فهمه که ارسال اطلاعات تموم شده در واقع چجور تشخیص میده که یک پاکت تموم شده و داره دومی میاد

ببینید تو پرتکل تک سیمه مثلا وقتی یک بیت ارسال میشه فاصله ای بین بیت اول دومی هست که تعیین می کنه این بیت یک هست یا صفره حالا من می خوام این زمانها رو هم برای i2c بفهمم و بتونم بدونه کتابخانه با میکرو ی دیگه ارتباط برقرار کنم Amaze
سلام.

شما کافیه datasheet یه سنسور با رابط I2C یا datasheet یه میکرو رو دانلود کنید و بخش I2C اون رو مطالعه کنید.
تایمینگ ها و ... مشخص شده.
البته کار درست اینه که یه کتابخانه ی آماده گیر بیارید و همزمان روی هر 2 کار کنید تا کارتون سریعتر پیش بره ... .
در نهایت اگر خواستید تغییرات بدید می تونید کتابخانه رو دستکاری کنید یا ... .

موفق باشید.
همون حرفای sharin +
یعنی میخواین با pio پروتکول رو شبیه سازی کنید؟
ممنون که پاسخ دادین


ولی جناب salehjg من نمی دونم pio چیه :|


فقط می خوام این قابلیت رو به یه attiny کوچیک اضافه کنم که مثل avr چنین قابلیتی رو نداره و بعد بتونم بین avr و attiny با i2c ارتباط برقرار کنم آیا شما راهی بهتر میشناسین ؟؟؟
جناب sharin 

شما مقاله ای سراغ ندارین که به صورت فارسی این پروتکل رو توضیح داده باشه انگلیسیم اصلا خوب نیست که :(
pio همون پایه های ورودی و خروجی منظورمه
-------------
این پستی که لینک میدم، یه فایل ضمیمه شده، sccb، این همون i2c هست که شبیه سازی شده
یکم منظم نیست سورس کد، ولی میتونه کمک کنه

البته میتونید گوگل software i2c یا software twi رو سرچ کنید.

یه سری به pudn.com هم بزنید
نه مقاله فارسی سراغ ندارم.
اما با توجه به حافظه های کم سری attiny پیشنهاد می کنم با shiftout و shiftin به سبک موجود در بسکام کار کنید که پیاده سازیش حافظه ی زیادی هم نیاز ندارهه.
(۲۰-مرداد-۱۳۹۴, ۰۹:۲۷:۰۸)sharin نوشته است: [ -> ]نه مقاله فارسی سراغ ندارم.
اما با توجه به حافظه های کم سری attiny پیشنهاد می کنم با shiftout و shiftin به سبک موجود در بسکام کار کنید که پیاده سازیش حافظه ی زیادی هم نیاز ندارهه.

این دستورات مربوط به spi نیست ؟ یعنی میشه با این دستوران دیتا رو بدم به یکی از پایه ها و توسط یه میکرو دیگه دریافت کنم ؟

اونوقت این وسط من چیکار کنم که دیتا این وسط گم نشه و همه برسه به میکرو
نه ربطی به SPI نداره. انتقال روی 2 خط انجام می شه، یه خط کلاک و یک خط دیتا. البته به صورت پیشفرض ACK و CRC و ... ای هم وجود ندارهه.
بستگی به محیط و سرعت انتقال اطلاعات و حجم اطلاعات داره. تو این روشی که گفتم تضمینی وجود ندارهه مگر اینکه موقع پیاده سازیش خودتون برای CRC و ... ها ایده بدید که موجب بالا رفتن حجم برنامه و پیچیدگیه بیشتر می شه.
مصافت بیشتر 5 سانت نیست ولی من می خوام با یه سنسور مثل ds1621 که رابطش i2c هست ارتباط برقرار کنم یعنی با همین دستوراتی که گفتید میشه چنین چیزی؟
ممنون از پاسختون
اگر پروتکل سنسور مد نظر I2C هست، خیر، با روشی که گفتم نمی شه و باید پروتکل I2C رو همونطور که در پست 6 گفته شد پیاده سازی کنید.