|
السلام عليكم ورحمة الله وبركاته
اخي الحبيب حسن هادي المحترم
اعجز عن تقديم شكري وامتناني لك على كل ما قدمته وما ستقدمه
اخي حسن ما المقصود بنظام SPI mode وما هي تطبيقاته ؟
جزاك الله خير الجزاء و أوفر الجزاء وفقك الله لكل ما يحب ويرضى ونحن بانتظار المزيد من نشاطاتك المفيدة والممتعة
وما توفيقي إلا بالله العلي العظيم
|
السلام عليكم
SPI يمثل احد الانظمه الاتصال بين مايكرو وكثير من قطع الالكترونيه وكذلك الشاشات
مثل نظام i2c وغيرها
ولهذا النظام له اربعه اسلاك وهما DI بيانات داخله , DO البيانات الخارجه ,CS وتمثل اختيار الشريحه او ايسي واخير SCK وتمثل CLOCK
طبعا يمكن ربط كثير من قطع مع مايكرو على نفس الاسلاك ماعدا CS فيجب ان يتم ربطها مع كل قطعه ومن خلالها يتم اختيار القطعه المراد الاتصال بها عن طريق جعلها CS=0 والبقيه يجب ان يكون لها CS=1
هذا النظام يحتاج الى تعريف ويوجد امر للقراءه وامر اخر للكتابه
كود:
// Initialize the SPI1 module with default settings
SPI1_Init();
وهذا يمثل التعريف ضمن البيانات التاليه
master mode
clock Fosc/4
clock idle state low
data transimtted on low to high edge
input data sampled at the middle of interval
طبعا تعريف اعلاه يعني يستخدم مايمكرو هو ماستر
اما هذا التعريف اخر هنا
كود:
void SPIx_Init_Advanced(unsigned short master_slav, unsigned short data_sample, unsigned short clock_idle, unsigned short transmit_edge);
عليك مراجعه ملف مساعده في مايكروسي لمزيد من معلومات حول هذا التعريف
وهذا امر للقراءه البيانات
كود:
short take, buffer;
...
take = SPI1_Read(buffer);
وهذا امر لارسال البيانات
كود:
// write a byte to the SPI bus
char buffer;
...
SPI1_Write(buffer);
على فكره ربط ذاكره خارجيه SD-CARD معتمده على هذا البرتوكول
بصراحه لااملك معلومات قويه حول هذا موضوع ولكن أستخدامه سهل جدا
ماعليك سوى ايصال الاسلاك بين مايكرو وقطعه مراد الاتصال بها
هنا يجب توصيل DI مع DO للقطعه
هنا يجب توصيل DO مع DI للقطعه
وتوصل SCK للمايكرو مع SCK للقطعه
CS للقطعه مع اي بت بشريط عليك بتعريفه يعني تقول مثلا
كود:
sbit Chip_Select at RC0_bit;
sbit Chip_Select_Direction at TRISC0_bit;
وايضا يجب ربط CS الى مقاومه رفع
خطوه ثانيه تعريف نظام
خطوه ثالث استخدم امر القراءه للقراءه البيانات او امر كتابه لارسال البيانات
وبالنسبه للمايكرو الذي لايدعم البرتوكول spi توجد مكتبه جاهزه في مايكروسي
ستجدها بعنوان
Software SPI Library
حاول قراءه ملف مساعده لانه سوف يوضح لك الكثير
وللعلم اغلب البرتوكولات
تحتاج الى تعريف وامر للقراءه واخر للكتابه
شاهد هذا موضوع
http://www.qariya.info/vb/showthread...=116105&page=2