اطلاعیه
Collapse
No announcement yet.
SPI بین دو میکرو
Collapse
X
-
پاسخ : SPI بین دو میکرو
با سلام خدمت دوست خوبم :
اولا که من مطمئن نیستم که تینی ها قابلیت spi داشته باشن در نتیجه شما هم به نقشه سخت افزاریش اکتفا نکنین و حتما دیتاشیت اون رو مطالعه کن تا ببینی این قابلیت رو داره یا نه . ثانیا برای ارتباط spi بطور کلی به سه درگاه از هرمیکرو نیازه که این درگاه ها MISO , MOSI , SCK هستند . ارسال هر بیت با یک لبه پالس همواره در پایه SCK است . پایه ای که شما گفتی (ss) برای تعیین حالت میکرو بین master , slave هست که در حالت مستر این پایه بعنوان خروجی و در حالت اسلیو همیشه بعنوان ورودی استفاده میشه و اگر این پایه رو active LOW کنی ارتباط برقرار میشه و در غیر اینصورت ارتباط قطع است . در مورد سوال اولت هم باید بگم که کمی زحمت لازم داری تا بتونی پروژت رو انجام بدی و یادت نره که نیرو های غیبی تا زمانی که خودت زحمت نکشی به کمکت نمیان . بازم من در خدمتم . با سپاس
چو ایران نباشد تن من مباد
-
پاسخ : SPI بین دو میکرو
همین الآن تونستم ارتباط رو برقرار کنم ( منظورم سوال اول هستش)
اینم از لینک های دانلود پروژه
http://www.lgshare.com/upload/do.php...9e8e640e71.rar
و اما سوال دوم
تو عکس موجود سه پایه ی MOSI , MISO , SCK وجود داره ولی SS نیست من کدوم پایه رو ACTIVE LOW کنم ؟
همچنین منظورتون از ACTIVE LOW چیه چون من یکم مبتدی هستم؟
دیدگاه
-
پاسخ : SPI بین دو میکرو
درسته پایه ss برای پروتکل spi است و برای آنکه در مد slave قرار بگیرد به این پایه احتیاج می باشد.نوشته اصلی توسط Amir-bهمین الآن تونستم ارتباط رو برقرار کنم ( منظورم سوال اول هستش)
اینم از لینک های دانلود پروژه
http://www.lgshare.com/upload/do.php...9e8e640e71.rar
و اما سوال دوم
تو عکس موجود سه پایه ی MOSI , MISO , SCK وجود داره ولی SS نیست من کدوم پایه رو ACTIVE LOW کنم ؟
همچنین منظورتون از ACTIVE LOW چیه چون من یکم مبتدی هستم؟
میکرو ATtiny26 واحد spi ندارد و این پایه ها برای پروگرمر isp می باشد.
دیدگاه
-
پاسخ : SPI بین دو میکرو
درسته من هم آن را دیدم ولی اگه توجه کنید فقط می شود دو تا میکرو را بهم وصل کرد با سه سیم و داده ارسال و دریافت می شود اما نمی شود چندتا میکرو را به عنوان slave به یک میکرو به عنوان master وصل کرد (شبکه کردن میکروها) در ضمن اگر بلوک دیاگرام اول دیتاشیت را هم ملاحظه کنید واحد spi وجود ندارد.نوشته اصلی توسط sina_80سلام.
اگه به صفحه 87، شکل شماره 45 دیتاشیت نگاه بکنید، اونجا گفته که برای حالت Slave یا Master باید
بصورت نرمافزاری آیسی رو تنظیم بکنیم. و در ادامه یه مثال هم خودش نوشته.
البته من خودم با این آیسی کار نکردم.
موفق باشید
دیدگاه
-
پاسخ : SPI بین دو میکرو
صفحه 80 به بعد دیتا شیت همه چیز رو توضیح داده این واحد هم می تواند به صورت دو سیمه و سه سیمه ارتباط برقرار کند.نوشته اصلی توسط Amir-bبله شما درست میگید تو دیتاشیت نوشته SPI PROGRAMMING
اگه دقت کنید یه پروتکل USI یا همون Universal Serial Interface داره با این پروتکل چطوری میتونم کار کنم؟
دیدگاه
-
پاسخ : SPI بین دو میکرو
خوب ببین من خیلی وقته با AVR کار نکردم به خاطر این ARM که 2و3 ساله دارم فقط با اون کار می کنم. حالا از لحاظ سخت افزاری به نظرم چون ATtiny26 را نمی شود درست حسابی slave قرار داد (مگر اینکه با وقفه کار کنید) پس آنرا ما Master در نظر می گیریم و ATmega32 را slave در نظر بگیر و مطابق شکل صفحه 85 مدارت را ببند و یک پایه دیگر از ATtiny26 را به پایه ss میکرو ATmega32 وصل کن. با slave میکرو ATmega32 که مشکلی نداری و به راحتی رجیسترهای آنرا تنظیم می کنی بعد برای ATtiny26 هم که کلا 3 تا رجیستر دارد 1 رجیستر هم که بافر می باشد پس در کل اون دوتا رجیستر را مطالعه کن مطمئنا می توانی راه اندازی کنی فقط دقت داشته باش هر وقت که می خواهی عدد را از ATtiny26 ارسال کنی باید اون پین که به پایه ss میکرو ATmega32 وصل است را باید صفر کنید بعد از ارسال آنرا یک کن حتما.نوشته اصلی توسط Amir-bلطفا کمکم کنید خیلی واجبه میخوام یه عدد رو از این attiny26 به یه mega32 بفرستم
موفق باشید
دیدگاه
-
پاسخ : SPI بین دو میکرو
خوب در این حالت mega32 را master در نظر می گیریم و tiny26 ها رو slave .در میکرویی که master می باشد باید به تعداد slave ها یک پایه برای فعال کردن پایه ss میکرو slave در نظر گرفت. اصولا در پروتکل SPI این پایه با صفر فعال می شود و با یک غیر فعال می شود. در مدار زیر هم فرض بر این است که این پایه با صفر فعال می شود اما شما می توانید آنرا با یک فعال و صفر غیر فعال کنید در اینصورت به NOTها نیازی نیست.نوشته اصلی توسط Amir-bآخه یه مشکل بزرگتر اینه که من میخوام دو تا attiny26 رو به یک mega32 وصل کنم و از هر کدوم یه عدد به mega32 بفرستم
مدار شکل زیر را نگاه کن DO , DI ها رو به دوتا ATtiny26 وصل کن و SCK1 به tiny26 اول و SCK2 به tiny26 دوم. سپس برای tiny26 ها برنامه slave را مظابق دیتاشیت بنویس برنامه هر دو هم مشابه می باشد. برای mega32 برنامه master را بنویس و هواست باشد برای ارسال و دریافت اطلاعات پایه ss مورد نظر را قبل از ارسال فعال کن بعد از اتمام کار غیر فعالش کن. در ضمن به این روش هر چندتا tiny26 را که بخواهید می توانی به mega32 وصل کنید.
دیدگاه










دیدگاه