اطلاعیه

Collapse
No announcement yet.

[آموزش]راه اندازی ماژول +nRF24L01

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : راه اندازی ماژول +nRF24L01

    یه سئوال:

    خروجی IRQ در حالت یک , 3.3 ولت هستش. اصلن این ولتاژ می تونه وقفه رو برای مگا 32 فعال کنه؟

    دیدگاه


      پاسخ : راه اندازی ماژول +nRF24L01

      نوشته اصلی توسط Laleh_s
      یه سئوال:

      خروجی IRQ در حالت یک , 3.3 ولت هستش. اصلن این ولتاژ می تونه وقفه رو برای مگا 32 فعال کنه؟
      اتفاقا من با mega32 راهش انداختم مشکلی نداره

      دیدگاه


        پاسخ : راه اندازی ماژول +nRF24L01

        دوستان کسی نمیدونست FLUSH TX چیکار میکنه؟

        دیدگاه


          پاسخ : راه اندازی ماژول +nRF24L01

          یه سوال دارم
          فاز کلاک spi واسه این ماژول باید half باشه یا start??

          دیدگاه


            پاسخ : راه اندازی ماژول +nRF24L01

            سلام

            این فاز کلاک یک نکته ای بود که توی راه اندازی این ماژول 1 روز من رو حیرون کرد! حواستون باشه که CPHA=1 باشه وگرنه کار نمیکنه. البته من با KL25Z128VLK4 از Freescale کار میکنم نه با AVR.

            دیدگاه


              پاسخ : راه اندازی ماژول +nRF24L01

              یه سوال دارم
              فاز کلاک spi واسه این ماژول باید half باشه یا start??
              باید روی start باشه یعنی همون mode 0

              دیدگاه


                پاسخ : راه اندازی ماژول +nRF24L01

                سلام دوستان سال نو مبارک
                انشاالله سال خوب و پر پولی داشته باشید
                یکی از دوستان پیام خصوصی داده بود و یک مثال برای ارتباط دو طرفه خواسته بود
                مثلا فرستنده عدد10 رو بفرسته و گیرنده در جوابش عدد 12 رو بفرسته.
                ممنون :smile: :rolleyes:
                منم گفتم اینجا بزارم تا همه استفاده کنند.
                همین مثال بالا رو می خوام بنویسم. بدون هدر هم مینویسم که همه چیز معلوم باشه برای کامپایلر CodvisionAVR می نویسم

                ماژول فرستنده:
                کد:
                unsigned char get=0,buff[];
                
                //set  POWER UP  bit in  CONFIG  register
                nrf_csn = low;
                spi( 0x00 | 0x20 );
                spi ( 0xa0 );
                nrf_csn = high ;
                
                //enable ATIVATE command 
                nrf_csn = low;
                spi( 0x50 );
                spi ( 0x73 );
                nrf_csn = high ;
                
                //enable Dynamic Payload Length (EN_DPL bit) and Payload with ACK (EN_ACK_PAY bit)
                //	in FEATURE register.
                nrf_csn = low;
                spi( 0x1d | 0x20 );
                spi ( 0x06 );
                nrf_csn = high ;
                
                //enable dynamic payload length data pipe0 (DPL_P0 bit ) in DYNPD register
                nrf_csn = low;
                spi( 0x1c | 0x20 );
                spi ( 0x01 );
                nrf_csn = high ;
                
                
                //write Payload ( num 10 ) in TX_FIFO with W_TX_PAYLOAD command
                nrf_csn = low;
                spi( 0xa0 );
                spi ( 10 );
                nrf_csn = high ;
                
                delay_ms(2000);
                
                //transmit data on air
                nrf_ce = high ;
                delay_us ( 20 );
                nrf_ce = low ;
                
                delay_ms(1000);
                
                //read payload that receive from RX madule 
                //read from RX_FIFO with R_RX_PAYLOAD command
                nrf_csn=low;
                spi(0x61);
                get=spi(0);
                nrf_csn=high;
                
                sprintf(buff,"%3u",get);
                lcd_gotoxy(0,0);
                lcd_puts(buff);

                ماژول گیرنده

                کد:
                unsigned char get=0,buff[];
                
                //set  POWER UP  bit in  CONFIG  register
                nrf_csn = low;
                spi( 0x00 | 0x20 );
                spi ( 0xa0 );
                nrf_csn = high ;
                
                //enable ATIVATE command 
                nrf_csn = low;
                spi( 0x50 );
                spi ( 0x73 );
                nrf_csn = high ;
                
                //enable Dynamic Payload Length (EN_DPL bit) and Payload with ACK (EN_ACK_PAY bit)
                //	in FEATURE register.
                nrf_csn = low;
                spi( 0x1d | 0x20 );
                spi ( 0x06 );
                nrf_csn = high ;
                
                //enable dynamic payload length data pipe0 (DPL_P0 bit ) in DYNPD register
                nrf_csn = low;
                spi( 0x1c | 0x20 );
                spi ( 0x01 );
                nrf_csn = high ;
                
                
                //write respond Payload ( num 12 ) in TX_FIFO with W_ACK_PAYLOAD command in pipe0
                nrf_csn = low;
                spi( 0xa8 | 0 );
                spi ( 12 );
                nrf_csn = high ;
                
                delay_ms(2000);
                
                //monitor the air
                nrf_ce = high ;
                while(IRQ==1);
                nrf_ce = low ;
                
                delay_ms(1000);
                
                //read payload that receive from TX madule 
                //read from RX_FIFO with R_RX_PAYLOAD command
                nrf_csn=low;
                spi(0x61);
                get=spi(0);
                nrf_csn=high;
                
                sprintf(buff,"%3u",get);
                lcd_gotoxy(0,0);
                lcd_puts(buff);
                توضیح : به جای nrf_csn و nrf_ce و IRQ اسم پین هایی از میکرو که به این پایه ها وصل شده رو بنویسید. مثلا اول برنامه بنویسید
                کد:
                #define nrf_csn PORTB.0
                #define nrf_ce PORTB.1
                #define IRQ	PORTB.2
                و اینکه توی فرستنده از وقفه استفاده نکردم

                ببخشید وقت نشد تستش کنم ولی 99 درصد کار میکنه اگه نکرد بگید که خودم تست کنم

                دیدگاه


                  پاسخ : راه اندازی ماژول +nRF24L01

                  من با مگا 16 و 32 مشکلی نداشتم و راه افتاد ماژول ولی با مگا 8 راه نمیفته.از همین کتابخونه ای که گذاشتید استفاده کردم.اگه میشه برناممو یه نگاهی بهش بندازیدممنونم از زحماتتون
                  http://s5.picofile.com/file/8117842526/sample2.zip.html

                  دیدگاه


                    پاسخ : راه اندازی ماژول +nRF24L01

                    من با مگا 16 و 32 مشکلی نداشتم و راه افتاد ماژول ولی با مگا 8 راه نمیفته.از همین کتابخونه ای که گذاشتید استفاده کردم.اگه میشه برناممو یه نگاهی بهش بندازیدممنونم از زحماتتون
                    سلام نمی دونم مشکلتون حل شد یا نه ولی اشکال برنامتون این هست که توی برنامه فرستنده داخل کتابخونه "nRF24L01+.h" نوشته شده DDRB=0x3E; ولی توی خود برنامه نوشتید DRB=0x2C;
                    یعنی اون پایه میکرو که به CE وصل میشه رو به ورودی تبدیل کردید توی برناه هم بنویسید 0x3e انشاالله که مشکل دیگخ نداره
                    موفق باشی
                    شما نمی دونی FLUSH TX چیه؟

                    دیدگاه


                      پاسخ : راه اندازی ماژول +nRF24L01

                      کد:
                      سلام نمی دونم مشکلتون حل شد یا نه ولی اشکال برنامتون این هست که توی برنامه فرستنده داخل کتابخونه "nRF24L01+.h" نوشته شده DDRB=0x3E; ولی توی خود برنامه نوشتید DRB=0x2C;
                      یعنی اون پایه میکرو که به CE وصل میشه رو به ورودی تبدیل کردید توی برناه هم بنویسید 0x3e انشاالله که مشکل دیگخ نداره
                      موفق باشی
                      شما نمی دونی FLUSH TX چیه؟
                      ممنونم از پاسختون.تستش میکنم ببینم مشکلم حل میشه یا نه.بازم ممنونم ازتون.
                      من تازه با این کتابخونه آشنا شدم و کار کردم به خدا نمیدونم چیه وگرنه میگفتم.

                      دیدگاه


                        پاسخ : راه اندازی ماژول +nRF24L01

                        با تغیر DDRB هم نشد :angry: :angry: :angry: :angry:

                        دیدگاه


                          پاسخ : راه اندازی ماژول +nRF24L01

                          با تغیر DDRB هم نشد :angry: :angry: :angry:
                          1

                          توی برنامه گیرنده هم این مشکل وجود داشت اون رو هم تصحیح کردید؟

                          دیدگاه


                            پاسخ : راه اندازی ماژول +nRF24L01

                            ممنونم آقا سعیدر دوشو تغیر دادم ولی نشد
                            اما راه افتاد مشکل از برد برد بود.

                            میشه یه خواهش کنم کسی درباره متغیر state توی این کتابخونه چیزی میدونه؟
                            مثلا حالات مختلفتش در ارسال و دریافت موفق و ناموفق و .....
                            میخوام داخل فرستنده چک کنم اگه دیتا در گیرنده دریافت نشد یه بار دیگه بفرسته چون یه جایی که نمیدونم کجا بود خوندم این قابلیتو داره

                            دیدگاه


                              پاسخ : راه اندازی ماژول +nRF24L01

                              چرا وقتی توی برنامه میکرو رو عوض میکنم ارور و هشدار میاد :eek:

                              اضافه شده در تاریخ :
                              پایه irq باید به کجا وصا بشه ؟


                              اضافه شده در تاریخ :
                              با همون برنامه جواب نگرفتم توی مدار نکته خاصی هست ؟
                              مدت هاست نیستم

                              دیدگاه


                                پاسخ : راه اندازی ماژول +nRF24L01

                                سلام
                                irq باید به وقفه 1 وصل بشه
                                کجای برنامه رو عوض کردید؟
                                از تغذیه ماژول مطمئن بشید

                                دیدگاه

                                لطفا صبر کنید...
                                X