مشکل با دریافت اطلاعات از nrf24l01

سلام
من یک فرستنده گیرنده با nrf ساختم با کنترلر stm32 مشکل من اینجاست که مثلا در سمت فرستنده وقتی بایتی رو ارسال میکنم و جواب رو دریافت میکنم بایت ابتدا و انتهای بافر دریافتی رو چک میشه همیشه عدد اشتباهی به طور ثابت دریافت میشه و تنها با یک میکروکنترلر این دیتا درست دریافت میشه و با ۴ میکرو دیگه ای که تست کردم همشون دیتایی شبیه به هم ولی اشتباه دریافت میکنن (از میکرو blupill استفاه میکنم )
ماژول nrf هم گاهی وقتها هنگ می‌کنه و بافر ورودیش اعداد اشتباه دریافت میشه ولی تو این حالت فقط ۲ بایت ابتدا و انتها اشتباه میاد به نظر شما مشکل کجاست ؟از همون ماژول nrf هست ؟ جای ماژول ها رو هم عوض کردم ولی چون یکیش ایراد داره فقط در سمت فرستنده جواب می‌یده که همونجا هم فقط با یک میکرو هماهنگه

در ارسال و دریافت از چه توابعی استفاده کرده اید؟
از صحت توابعتان اطلاع دارید؟
اگر از صحت توابع و سخت افزار اطمینان دارید، یک روش سخت افزاری برای عیب یابی میتونم بهتون پیشنهاد بدهم که بتوانید دیباگ سخت افزاری انجام بدید، این روش راه حل نیست ولی آخرین راه می‌تونه باشه.
از یک لاجیک آنالایزر ارزان کمک بگیرید و به باس سریال وصل کنید.
یک آرایه با تعداد اعضای مشخص و الگوی مشخص بسازید…
فایل را برای مقصد بفرستید و در مقصد همون آرایه را به هر عضو یک واحد اضافه کنید و پس بفرستید.
با لاجیک آنالایزر از باس لاگ بگیرید و مطمئن شوید بایت ها به طور صحیح ارسال و دریافت میشود و زمانبندی باس صحیح است

1 پسندیده

سلام وقتی داده ای در بافر ارسال ماژول NRF24L01 قرار میدین و دستور ارسال میفرستین براش، ماژول داده رو به صورت اتوماتیک برای گیرنده میفرسته، پس احتمالا مشکل سخت افزاری هست، ممکنه طراحی ماژول اصولی نباش یا مشکل سخت افزاری داشته باش، اضافه کردن خازن ظرفیت پایین به تغذیه ماژول هم تست کنین، در نهایت باید بدون فعال کردن قابلیت های ACK و CRC ماژول به خوبی کار کنه، پس از رفع مشکل فعلی شما میتونین برای اطمینان از صحت دیتا ارسالی قابلیت ACK و محاسبه CRC رو هم در تنظیمات هردو ماژول فعال کنین.

2 پسندیده

من crc رو فعال کردم ولی از ack استفاده نمیکنم فقط با یکی از میکرو ها جواب میده .وقتی میکرو دیگه می‌زارم بایت اول و آخر بافر اشتباه هست ولی بایت های دیگه درست هستن
اصول کار هم اینجوریه که یک آرایه برای slave ارسال میشه و از اون درخواست اطلاعات میشه slave بابت اول و آخر ارایه رو با مقدار پیش فرض پر می‌کنه و اطلاعات رو در بایت های دیگه قرار میده و ارسال می‌کنه حالا مشکل اینجاست که اعداد دو بایت اول و آخر درست ارسال میشه از طریق دیباگ چک کردم ولی در master این دوبایت یه چیز دیگه هستن و تو همه میکرو هایی که تست کردم اعداد ثابتی دریافت میکن و فقط با یک میکرو سازگاره و همون عدد ها دریافت میشه