سلام
همانطور که می دانید اکثر کارت های حافظه از پروتکل spi برای ارتباط استاده می کنند ، ازspi در پروگرم کردن میکروکنترلر ها و بعضی از سنسور ها و ماژول ها هم استفاده می شود.
SPIدر واقع SERIAL ERIPHERAL INTERFACE یک پروتکل ارتبطی سریال سنکرون با سرعت بالا است.که توسط آن می توان ارتباط یک مستر را با یک یا چند اسلیو بر قرار کرد.
خصوصیات:
• ارسال داده همزمان (SYNCHRONOUS )سه سیمه
• ارتباط به صورت هایMASTER /SLAVE
• ارسال ابتدای MSB یاLSB
• بیت های قابل برنامه ریزی برای تنظیم سرعت
• پرچم وقفه اتمام ارسال داده
• بیدار شدن از حالت بیکاری
طرز کار ارتباط SPI :
پایه SCK خروجی کلاک برای MASTER و ورودی کلاک برای SLAVE است.با نوشتن رجیستر داده SPI (SPI DATA REGISTER) در MASTER ٬ CPU شروع به تولید کلاک SPI کرده و داده ها از پایه MOSI (MASTER OUT SLAVE IN) خارج شده و به پایه MOSI در SLAVE وارد می شوند.بعد از انتقال کامل داده توسط MASTER ٬ کلاک SPI قطع و پرچم وقفه پایان ارسال داده (SPIF) یک می شودو برنامه وقفه اجرا میگردد.
دو شیفت رجیستر ۸ بیتی در MASTER و SLAVE را می توان به عنوان یک شیفت رجیستر چرخشی ۱۶ بیتی در نظر گرفت.این موضوع در شکل زیر دیده می شود.زمانی که داده ای از MASTER به SLAVE ارسال مشود می تواند در همان حال در جهت مخالف داده ای از SLAVE به MASTER انتقال یابد ٬ به این صورت که در طول هشت کلاک SPI داده های MASTER و SLAVE با هم عوض شود.
طرز کار پایه SS در مد SLAVE :
زمانیکه SPI در مد SLAVE پیکره بندی میشود پایه SSهمیشه ورودی است.وقتی پایه SS صفر می شود٬ SPI فعال شده و پایه MISO در صورت تعریف کاربر به عنوان خروجی در نظر گرفته می شود.
زمانیکه پایه SS بالا می رود٬ SPI بیکار است و هیچ گونه داده ای را دریافت یا ارسال نمی کند.اگر پایه SS در هنگان انتقال داده بالا رود٬ SPI ارسال و دریافت را بلافاصله قطع کرده واطلاعات چه دریافت وچه ارسال شده باشد از دست می رود.
از پایه SS میتوان برای انتخاب SLAVE مورد نظر در سیستم هایMulty Slave استفاده کرد.
سلام
همانطور که می دانید اکثر کارت های حافظه از پروتکل spi برای ارتباط استاده می کنند ، ازspi در پروگرم کردن میکروکنترلر ها و بعضی از سنسور ها و ماژول ها هم استفاده می شود.
SPIدر واقع SERIAL ERIPHERAL INTERFACE یک پروتکل ارتبطی سریال سنکرون با سرعت بالا است.که توسط آن می توان ارتباط یک مستر را با یک یا چند اسلیو بر قرار کرد.
خصوصیات:
• ارسال داده همزمان (SYNCHRONOUS )سه سیمه
• ارتباط به صورت هایMASTER /SLAVE
• ارسال ابتدای MSB یاLSB
• بیت های قابل برنامه ریزی برای تنظیم سرعت
• پرچم وقفه اتمام ارسال داده
• بیدار شدن از حالت بیکاری
طرز کار ارتباط SPI :
پایه SCK خروجی کلاک برای MASTER و ورودی کلاک برای SLAVE است.با نوشتن رجیستر داده SPI (SPI DATA REGISTER) در MASTER ٬ CPU شروع به تولید کلاک SPI کرده و داده ها از پایه MOSI (MASTER OUT SLAVE IN) خارج شده و به پایه MOSI در SLAVE وارد می شوند.بعد از انتقال کامل داده توسط MASTER ٬ کلاک SPI قطع و پرچم وقفه پایان ارسال داده (SPIF) یک می شودو برنامه وقفه اجرا میگردد.
دو شیفت رجیستر ۸ بیتی در MASTER و SLAVE را می توان به عنوان یک شیفت رجیستر چرخشی ۱۶ بیتی در نظر گرفت.این موضوع در شکل زیر دیده می شود.زمانی که داده ای از MASTER به SLAVE ارسال مشود می تواند در همان حال در جهت مخالف داده ای از SLAVE به MASTER انتقال یابد ٬ به این صورت که در طول هشت کلاک SPI داده های MASTER و SLAVE با هم عوض شود.
طرز کار پایه SS در مد SLAVE :
زمانیکه SPI در مد SLAVE پیکره بندی میشود پایه SSهمیشه ورودی است.وقتی پایه SS صفر می شود٬ SPI فعال شده و پایه MISO در صورت تعریف کاربر به عنوان خروجی در نظر گرفته می شود.
زمانیکه پایه SS بالا می رود٬ SPI بیکار است و هیچ گونه داده ای را دریافت یا ارسال نمی کند.اگر پایه SS در هنگان انتقال داده بالا رود٬ SPI ارسال و دریافت را بلافاصله قطع کرده واطلاعات چه دریافت وچه ارسال شده باشد از دست می رود.
از پایه SS میتوان برای انتخاب SLAVE مورد نظر در سیستم هایMulty Slave استفاده کرد.
با سلام و تشکر
در خط 15 منظورتون فکر کنم MISO باشه!؟
این برای زمانی است که یک هاست یا یک پردازنده باشه و چند اس-دی.
اگر برعکس اینمورد که مدنظر من است 2یا چند میکرو با یم اس-دی باشد به چه صورت است؟
منظورم از مستر اینه که 2 تا میکرو دسترسی به حافظه داشته باشند و هر کدام از اس-دی فایل دلخواه را باز و نوشتن و خواندن انجام دهند.
میکرو ها بر هم ارجعیت نداشته باشند یا همدیگر را محدود نکنند.از این رو بود نه اینکه اس-دی بخواد پردازش کنه.
خیلی راحت تداخل پیش میاد مگه این که با یه پروتوکلی چیزی به اون یکی میکرو بفهمونی با SD کارت کاری نداشته باشه. و در این جور موارد ترجیحا یکیشو به عنوان اولویت دار انتخاب کن.
خیلی راحت تداخل پیش میاد مگه این که با یه پروتوکلی چیزی به اون یکی میکرو بفهمونی با SD کارت کاری نداشته باشه. و در این جور موارد ترجیحا یکیشو به عنوان اولویت دار انتخاب کن.
خوب میشه گفت مشکلی نیست.
مشکل من ممکنه زمانی باشه که چون پینهای میکرو در محل اس-دس متصل هستند دچار تاخل بشه
وگر نه میشه ارتباط هر میکرو از جهت فرستادن یا گرفتن دیتا را متوقف کرد.
مگه میشه میکرو sd مستر بشه ؟؟؟؟؟؟
مثل این میمونه که بگی کارت حافظه پردازشگر بشه.
در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.
1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!
این مطلب با اصل طراحی این پروتکل در تناقض هست.
دو پادشاه در یک ملک نگنجند.
در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.
1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!
spi باس نیست و این کار ها درست نیست اگه قصد این کار دارید یک میکرو رو بعد sd قرار بدید و همه ی میکرو های دیگه رو با i2c که باس هستش به این میکرو وصل کنید ...
دیدگاه