امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
پروتکل spi
نویسنده پیام
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #1
پروتکل spi
سلام بدجوری به مشکل برخوردم خواهشا کمک کنید که بدجوری گیرم.من میخوام بین دوتا میکرو ارتباط برقرار کنم.بدین صورت که:میکرو مگا 32 مقادر رو از مبدل adc بخونه و بعد از طریق spi بده به مگا8 و مگا8 هم مقادیر رو روی ال سی دی نمایش بده.بین مبدل و مگا32(مستر)از طریق سخت افزار ارتباط برقرار کردم و بین دوتا میکرو هم نرم افزاری اما نتیجه نمیده.من فقط میخوام ارتباط spi باشه مهم نیست بین کدوم سخت افزاری و بین کدوم نرم افزاری باشه.فقط خواهشا کمک کنیدومن که هرکاری کردم نتونستم.مشکل من بین دوتا میکرو.بین مبدل و مگا32 مشکل ندارم


فایل‌(های) پیوست شده
.rar   send.rar (اندازه: 46.96 KB / تعداد دفعات دریافت: 65)
۰۴-دى-۱۳۹۲, ۲۰:۳۸:۰۴
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #2
RE: پروتکل spi
خوب چه کردین!Biggrin
من بسکام ندارم که براتون تستم بکنم ولی فعلا این جوری پیش برید که
این ADC رو وصل می کنید به میکرو اول بصورت سخت افزاری داده رو بخونید و مستقیما روی LCD نشون بدید تا ببینیم تا اینجاش درست عمل می کنید یانه
و اگه مشکلی هست فعلا تا این جا رو راهنماییتون بکنیم تا قسمت های بعدی
یک توضیحاتی هم توی کدتون بنویسید ببینیم قصدتون از این قسمت های مختلف برنامه چی بوده

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
(آخرین ویرایش در این ارسال: ۰۶-دى-۱۳۹۲, ۲۰:۳۱:۰۰، توسط behzady.)
۰۶-دى-۱۳۹۲, ۲۰:۳۰:۲۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, babyy, omid_phoenix, kelaran, salehjg
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #3
RE: پروتکل spi
من این که اگه فقط بخوام با یه میکرو مقادیر رو از adc بخونم و رو ال سی دی نشون بدم.مشکلی ندارم.مشکل من اینه که مقدار خونده شده رو میخوام به میکرو دوم انتقال بدم و اونجا مقادیر رو روی ال سی دی نمایش بدم.البته با پروتکل spi

باور کنید قصد بدی ندارم Wink فقط میخوام بین سه تاارتباط برقرار کنم.یعنی از adc به میکرو32 ,واز میکرو32 به میکرو8 همین
(آخرین ویرایش در این ارسال: ۰۷-دى-۱۳۹۲, ۱۵:۵۴:۰۲، توسط kelaran.)
۰۷-دى-۱۳۹۲, ۱۵:۴۰:۴۹
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #4
RE: پروتکل spi
(۰۷-دى-۱۳۹۲, ۱۵:۴۰:۴۹)kelaran نوشته است: من این که اگه فقط بخوام با یه میکرو مقادیر رو از adc بخونم و رو ال سی دی نشون بدم.مشکلی ندارم.مشکل من اینه که مقدار خونده شده رو میخوام به میکرو دوم انتقال بدم و اونجا مقادیر رو روی ال سی دی نمایش بدم.البته با پروتکل spi

باور کنید قصد بدی ندارم Wink فقط میخوام بین سه تاارتباط برقرار کنم.یعنی از adc به میکرو32 ,واز میکرو32 به میکرو8 همین
منم نگفتم که قصد بدی دارید که گفتم موضوع رو کوچیک کنیدBiggrin راه حل در اینه که اول داده رو بخونید و نمایش بدید
بعد میکرو دوم رو اضافه کنید یه داده مشخص مثلا یه متن ثابت رو بفرستید و نمایش بدید
در مرحله بعد کار مرحله قبل رو به صورت نرم افزاری انجام بدید
در آخرین مرحله داده دریافتی از ADC رو به میکرو دوم بفرستید
با این کار مشخص میشه دقیقا شما با کدوم دستور مشکل دارید تا راه نماییتون کنیمBiggrin

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۰۷-دى-۱۳۹۲, ۲۱:۰۴:۵۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, salehjg, babyy, kelaran
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #5
RE: پروتکل spi
جوونيا يه تاپيك براي SPI زده بودم ، كدها هم با بسكام بود. تا جايي كه مي دونم سخت افزاريش بسيار راحت بود و نكته اي نداشت. گيرم سر SPI نرم افزاريش بود كه توي اون تاپيك هم كد گذاشته بودم. SPI رو يه سرچي تو سايت بزنيد.

نكته كنكوريش هم بهزاد بزرگ فرمودند ...

موفق باشيد.

۰۷-دى-۱۳۹۲, ۲۱:۱۴:۴۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : salehjg, behzady, babyy, kelaran, parsegade
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #6
RE: پروتکل spi
اگه برنامه رو دیده باشید عین همین مراحل رو که گفتید انجام دادم.در ابتدا که مقدار ولتاژ ورودی صفره همه چیز عادی و رو ال سی دی هم مقدار صفر نمایش داده میشه.اما همین که مقدار رو افزایش میدم.مقادیر نمایش داده دچار نوسان میشه و از مثلا 2 تا 150 کم و زیاد میشه.اگه امکان داره برنامه رو ببینید متوجه حرفم میشید.خواهشا کمک کنید که بدجوری لنگم گذاشته.خدا از برادری کمتون نکنه
۰۸-دى-۱۳۹۲, ۱۹:۲۵:۴۴
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #7
RE: پروتکل spi
الان شما مي دونيد مشكل از كدوم سمت هست؟ سمت SPI سخت افزاري يا نرم افزاري؟
نه من مي دونم ، نه شما.

پس روش كار مي شه هموني كه بهزاد خان گفت.
اول مطمئن بشيم ADC خارجي دارهه كارش رو درست انجام مي دهه يا نه.
پس يه mega32 و ADC خارجي و LCD نيازهه ، باقيه پروژه رو بريز دور.
حالا مقادير رو روي LCD نشون بدهه، در حالي كه مدام سيگنال خروجي رو داري تغيير مي دي ، مطمئن بشو مقادير رو درست داري دريافت مي كني ، ( از طريق LCD ) ، جاي بايت پرارزش و كم ارزش هم دقت كن كه پس و پيش نشن ، اگر به ازاء تغييرات كوچيك سطح ولتاژ ، عدد دريافتي تغيير زيادي داشت ، جاي بايت پر ارزش و كم ارزش برعكس هست.

خوب تا اينجا كه اوكي شد ، اين پروژه رو مي ذاري يه گوشه تا به وقتش بيايم سراغش.

2. الان بين 2 ميكرو مي خوايم ارتباط SPI نرم افزاري پياده سازي كنيم.
يه mega32 ، يه mega8 و يه LCD نيازهه ، باقيه پروژه رو بنداز دور.
LCD به mega8 وصل باشه و mega32 هم سر جاي خودش.
چندتا مقدار متفاوت رو در نظر مي گيري و به سمت ميكروي ديگه از طريق SPI نرم افزاري مي فرستي و مطمئن مي شي روي LCD اطلاعات رو درست داري دريافت مي كني. باز به كم ارزش و پر ارزش بودنشون دقت كن.

حالا كه 100% از اين قسمت هم مطمئن شدي ، پروژه ي 1 و پروژه ي 2 رو با هم قاطي مي كني.

اينطوري خود به خود مشكل برطرف مي شه و نكته كنكوريش اينه كه پله پله بري جلو تا به كل برسي.
كلا اشكال كار اينجوري در مي ياد ، الان صاف نمي شه روي مورد خاصي دست گذاشت.
مخصوصا شما كه داري از بسكام استفاده مي كني ، اصلا با اطمينان نمي شه حرف زد.

بستن مدار در پروتوس و در عمل هم خيلي وقت ها 2تا چيز متفاوت هستن.

تاپيكي هم كه گفته بودم اين بود ، من جور ديگه اي پيكربندي كردم ، مورد شما رو مطمئن نيستم در عمل صحيح باشه:
http://www.iranled.com/forum/thread-2202...%D9%84+SPI

موفق باشيد.

۰۸-دى-۱۳۹۲, ۲۰:۳۱:۱۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : salehjg, kelaran, babyy
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #8
RE: پروتکل spi
من مرجله اول رو انجام دادم.یعنی مقادیر ADC رو از طریق مگا32 دریافت میکردم و به طور صحیح رو نمایشگر نشون میداد.اما ظاهرا مشکل در ارتباط مگا32 و مگا8 اینجا کار من لنگه.شما اصلا برنامه من رو دیدید؟خوب اصلا به فرض اینکه من مشکل قسمت دوم رو هم حل کردم.اونوقت سوال اینه که این دستور قسمت دوم رو کجای برنامه قرار بدم تا برنامه در مرحله دوم(یعنی ارسال دیتا از مگا32 به مگا8)اجرا بشه؟
۰۸-دى-۱۳۹۲, ۲۲:۰۴:۱۰
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #9
RE: پروتکل spi
بسيار خوب ، پس پروژه ي 1 اوكي هست.
الان بريد سراغ پروژه ي 2 كه بالا گفتم و مشكلش رو حل كنيد . ( كد نمونه هم در لينكي كه تو پست قبليم هست مي تونيد ببينيد و استفاده كنيد )

از اونجايي كه سبك برنامه تون به اين صورت هست كه در هر لحظه 1 كار در حال انجام هست ، بعد از خوندن مقادير از ADC خارجي ، مستر مقادير رو براي ميكروي slave جهت نمايش روي LCD مي فرسته. دستورها پشت سر هم مي شن.

چون در هر لحظه يك كار انجام مي ديد نيازي نيست از SPI نرم افزاري هم استفاده كنيد!
هر دو ارتباط SPI اتون مي تونه سخت افزاري باشه.
clk , MISO , MOSI بين ديوايس ها مشترك هستن.( هر چندتا كه باشن )
هر ديوايس يه سيگنال CS مجزا مي خواد.
هر پايه ي I/O معمولي هم مي تونه به عنوان پايه ي CS استفاده بشه.

موفق باشيد.

۰۸-دى-۱۳۹۲, ۲۳:۰۶:۳۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : behzady, omid_phoenix, babyy
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #10
RE: پروتکل spi
گیرم و اینا نداریم اول انجام بدید بعد یه فکری براش می کنیمBiggrin
---
این کدی که شما می خوای سخت نیست که من ببینم بگم فلان جا سوتی دادی که
خودت باید بنویسی که بعد بفهمی مشکل از کجا بوده
حالا من برات سخت افزاری این کار رو کردم شما بیا و یک طرفش رو نرم افزاری بکن ببینم چه می کنی
(نکته: فقط در مود Master می تونی نرم افزاری انجام بدی)
اون کدی هم که برای خوندن ADC نوشتی رو هم بزار ببینیم چی شد بالاخرهBiggrin

(۰۸-دى-۱۳۹۲, ۲۳:۰۶:۳۴)sharin نوشته است: بسيار خوب ، پس پروژه ي 1 اوكي هست.
الان بريد سراغ پروژه ي 2 كه بالا گفتم و مشكلش رو حل كنيد . ( كد نمونه هم در لينكي كه تو پست قبليم هست مي تونيد ببينيد و استفاده كنيد )

از اونجايي كه سبك برنامه تون به اين صورت هست كه در هر لحظه 1 كار در حال انجام هست ، بعد از خوندن مقادير از ADC خارجي ، مستر مقادير رو براي ميكروي slave جهت نمايش روي LCD مي فرسته. دستورها پشت سر هم مي شن.

چون در هر لحظه يك كار انجام مي ديد نيازي نيست از SPI نرم افزاري هم استفاده كنيد!
هر دو ارتباط SPI اتون مي تونه سخت افزاري باشه.
clk , MISO , MOSI بين ديوايس ها مشترك هستن.( هر چندتا كه باشن )
هر ديوايس يه سيگنال CS مجزا مي خواد.
هر پايه ي I/O معمولي هم مي تونه به عنوان پايه ي CS استفاده بشه.

موفق باشيد.
شرمنده من پست شما رو ندیدمBiggrin
دیگه کدو نوشته بودم گذاشتم حیف نشهBiggrin
---
ولی ایشون هم راست میگن نیازی به برقراری ارتباط نرم افزاری نیست من فکر کردم شما حتما می خواید نرم افزاری هم پیاده کنید


فایل‌(های) پیوست شده
.gz   SPI.tar.gz (اندازه: 44.01 KB / تعداد دفعات دریافت: 45)

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
(آخرین ویرایش در این ارسال: ۰۸-دى-۱۳۹۲, ۲۳:۱۸:۳۷، توسط behzady.)
۰۸-دى-۱۳۹۲, ۲۳:۱۳:۵۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, omid_phoenix, kelaran, babyy
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #11
RE: پروتکل spi
نه.گفتم که من فقط میخوام بین این سه ارتباط برقرار باشه.ولی در هر صورت بین هرسه تا که نمیشه سخت افزاری ارتباط برقرار کرد.درست میگم یا نه؟باید این وسط نرم افزاری هم باشه.اما این که بین کدوم،اصلا مهم نیست.بابت برنامه هم یه دنیا ممنون.برنامه رو با اونها ترکیب میکنم.اگه مشکلی داشتم بازم مزاحم شما میشم

حالا اگه بخوام بین دوتا از این سه تا ارتباط نرم افزاری ایجاد کنم.کار خیلی گره میخوره؟
(آخرین ویرایش در این ارسال: ۰۹-دى-۱۳۹۲, ۰۰:۱۸:۲۶، توسط kelaran.)
۰۹-دى-۱۳۹۲, ۰۰:۱۳:۴۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در ارتباط بیسیم با پروتکل USART cortex-m3 5 6,012 ۰۷-آبان-۱۳۹۵, ۰۰:۱۷:۳۶
آخرین ارسال: milad15m
  مشکل در دریافت اطلاعات صحیح در گیرنده با پروتکل USART cortex-m3 0 2,051 ۱۹-اردیبهشت-۱۳۹۴, ۲۲:۵۴:۳۸
آخرین ارسال: cortex-m3
  پروتکل ۱Wire hosseinip 1 1,843 ۲۴-اسفند-۱۳۹۳, ۱۹:۳۲:۳۷
آخرین ارسال: sharin
  پروتکل i2c kelaran 9 5,691 ۳۰-خرداد-۱۳۹۳, ۱۰:۵۰:۳۱
آخرین ارسال: behzady
  برقراری ارتباط با گوشی با استفاده از پروتکل F-bus,M-bus student-p 4 5,209 ۲۱-فروردین-۱۳۹۲, ۱۵:۲۸:۲۱
آخرین ارسال: 2000rpm
Exclamation پروتکل ارتباط رسیور با دیش گردون چیه؟ hooshmand2 3 4,663 ۰۹-اردیبهشت-۱۳۹۱, ۱۵:۴۷:۳۲
آخرین ارسال: shahin_mybb1.2_import13631
  ارتباط چند میکرو با پروتکل RS485 KAHRO 4 11,089 ۱۴-شهریور-۱۳۹۰, ۱۸:۴۱:۳۴
آخرین ارسال: soharoboeq
  پروتکل TCP/IP amiraliforoozandeh 11 9,158 ۲۳-بهمن-۱۳۸۸, ۰۳:۱۵:۰۵
آخرین ارسال: t3r!p3000
  پروتکل parallel در DVRS-MMC IMeysam 3 1,897 ۰۴-آذر-۱۳۸۶, ۰۸:۵۵:۱۷
آخرین ارسال: ha_60

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS