اطلاعیه

Collapse
No announcement yet.

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

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

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

    پایه های ماژول ایرانیه با تایوانیه یکی هستش. pcb مدارمو طراحی کردم فعلا کارا دیگشو انجام می دم اخرش دیگه بردش درست نشد یدونه از همین ایرانی هاشو می خرم که شما ازش جواب گرفتین.
    با این کارت اسکوپ TNM نمیشه انالیزش کرد، بازم FFT مثه همون شکلی هست که گذاشته بودم. این کارت ماکسیمم فرکانسی که اندازه میگیره 20 مگاهرتز هست، فرکانس کری که که ماژول باهاش کار می کنه 2.4 گیگا هرتز هست :sad: که فقط یه کوچولو از ماکسیمم فرکانس کارت اسکوپم بیشتره :mrgreen:
    یه جفت دیگه از ماژولای بدون انتنش هم دارم اونم تست کردم شبیه همین بود شکلش و اندازه ی توانش.یه چیزی این وسط درست نیست یا کارت اسکوپم نمی تونه خوب توانو نشون بده یا اینکه قسمت تقویت کننده ی این ماژول خرابه که شکلای بدونه انتنو با انتش شبیه هم هستش

    بازم خیلی خیلی ممنون بابت راهنمایی هایی که کردین

    دیدگاه


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

      نوشته اصلی توسط h_farzandi2009
      پایه های ماژول ایرانیه با تایوانیه یکی هستش. pcb مدارمو طراحی کردم فعلا کارا دیگشو انجام می دم اخرش دیگه بردش درست نشد یدونه از همین ایرانی هاشو می خرم که شما ازش جواب گرفتین.
      با این کارت اسکوپ TNM نمیشه انالیزش کرد، بازم FFT مثه همون شکلی هست که گذاشته بودم. این کارت ماکسیمم فرکانسی که اندازه میگیره 20 مگاهرتز هست، فرکانس کری که که ماژول باهاش کار می کنه 2.4 گیگا هرتز هست :sad: که فقط یه کوچولو از ماکسیمم فرکانس کارت اسکوپم بیشتره :mrgreen:
      یه جفت دیگه از ماژولای بدون انتنش هم دارم اونم تست کردم شبیه همین بود شکلش و اندازه ی توانش.یه چیزی این وسط درست نیست یا کارت اسکوپم نمی تونه خوب توانو نشون بده یا اینکه قسمت تقویت کننده ی این ماژول خرابه که شکلای بدونه انتنو با انتش شبیه هم هستش

      بازم خیلی خیلی ممنون بابت راهنمایی هایی که کردین
      ببین حتما اسپکتروم باید باشه تا بشه چک کرد. شاید ماژولها درست باشن، البته میدونم که ماژولها با هم تفاوتهایی از نظر تقویت کننده دارن و مدل 30تومنی سایت تقویت کنندش خیلی بهتره.
      باز هر سوالی بود در خدمتم.

      دیدگاه


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

        درود دوستان ،
        شاید خیلی ها این سوال رو داشته باشند که فاصله زمانی تغییر مد از فرستنده به گیرنده حداقل چقدر میتونه باشه که با تست های که گرفتم ، در عرض کمتر از 500 میکرو (بله میکرو) ثانیه میشه بین مد فرستنده و گیرنده سویچ کرد .

        دیدگاه


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

          نوشته اصلی توسط tofan8
          درود دوستان ،
          شاید خیلی ها این سوال رو داشته باشند که فاصله زمانی تغییر مد از فرستنده به گیرنده حداقل چقدر میتونه باشه که با تست های که گرفتم ، در عرض کمتر از 500 میکرو (بله میکرو) ثانیه میشه بین مد فرستنده و گیرنده سویچ کرد .
          با سلام به دوستان
          اقا کسی هست یا پستی داریم که درباره الگوریتم کاری nrf توضیح بده چون من با میکروavrکار نکردم ,با pic کار میکنم زبانم هم خیلی خوب نیست که متن را ترجمه کنم فقط یه توضیحی درباره رجیستر ها بده کمک خیلی بزرگی کرده
          دوربین مدار بسته و دزد گیر و رفع مشکلات
          بانک اطلاعاتی سنسورها
          ساخت رقص نور برای شیشه سکوریت مغازه ها
          تعمیر لوازم خانگی را اینجا مطرح کنید
          [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

          دیدگاه


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

            فایل بسکامش روون بود،میشه فهمید یه چیزایی
            انحصار طلبی علمی در دنیای امروز جایگاهی ندارد،بیایید تا دانسته های خود را هرچند اندک؛با دیگران به اشتراک بگذاریم...
            فرهنگ و تمدن بی همتای ایرانیان به سبب حمله ی وحشیانه مغولان نابود شد،امروز نوبت من و توست که با انتشار دانسته های خود ایران را به جایگاه بی همتای گذشته باز گردانیم.

            پیامبر اکرم(ص)فرمودند بهترین مردم کسانی هستند که خیرشان به دیگران برسد.

            دیدگاه


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

              با سلام به دوستان نا اینجا اینا را فهمیدم
              واسه انتخاب مد های کاری باید از رجیستر های ce ,PRIM_rx,PWRUP استفاده کرد که به ترتیب زیر است

              برای سوئیچ از حالتی به حلت دیگر هم از جدول زیر میتونیم استفاده کنیم

              برای تنظیم دیتا ریت هم از دو رجیستر RF-DR,RF_SETUP استفاده مکنند که در این رابطه دیتا شیت گفته که اگه از دیتا ریت 1mbps به جای 2mbps استفاده بشه قدرت 3dbm بیشتر میشود
              کانال های فرکانسی هم توسط رجیستر RF_ch قابل تنظیم و از رابطه زیر بدست میاد
              FO=2400+RF_ch[mhz]
              قدرت خروجی هم توسط رجیستر rf _pwr قابل تنظیم که تو جدول زیر اومده

              حلا میمونه اینکه چطوری باید اطلاعات را به ماژول داد وترتیب ارسال اطلاعات برای کانفیگ کردن ماژول به چطور باید باشه اگه کسی از دوستان اینا را اضافه کنه با کمک هم میتونیم یه فایل واسش درست کنیم که دیگه هر کس با هر میکرویی که خواست اون را برنامه نویسی کنه
              خواهشا تجربه تون را در کنار این فایل ها بزارید ^^ ^^ ^^ ^^ ^^ ^^
              .

              اضافه شده در تاریخ :
              نوشته اصلی توسط شریف شریف زاده
              فایل بسکامش روون بود،میشه فهمید یه چیزایی
              اقا این فایل که میگید کجا هست میشه ادرس بدید
              دوربین مدار بسته و دزد گیر و رفع مشکلات
              بانک اطلاعاتی سنسورها
              ساخت رقص نور برای شیشه سکوریت مغازه ها
              تعمیر لوازم خانگی را اینجا مطرح کنید
              [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

              دیدگاه


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

                نوشته اصلی توسط حمید رضا ریاحی
                با سلام به دوستان نا اینجا اینا را فهمیدم
                واسه انتخاب مد های کاری باید از رجیستر های ce ,PRIM_rx,PWRUP استفاده کرد که به ترتیب زیر است

                برای سوئیچ از حالتی به حلت دیگر هم از جدول زیر میتونیم استفاده کنیم

                برای تنظیم دیتا ریت هم از دو رجیستر RF-DR,RF_SETUP استفاده مکنند که در این رابطه دیتا شیت گفته که اگه از دیتا ریت 1mbps به جای 2mbps استفاده بشه قدرت 3dbm بیشتر میشود
                کانال های فرکانسی هم توسط رجیستر RF_ch قابل تنظیم و از رابطه زیر بدست میاد
                FO=2400+RF_ch[mhz]
                قدرت خروجی هم توسط رجیستر rf _pwr قابل تنظیم که تو جدول زیر اومده

                حلا میمونه اینکه چطوری باید اطلاعات را به ماژول داد وترتیب ارسال اطلاعات برای کانفیگ کردن ماژول به چطور باید باشه اگه کسی از دوستان اینا را اضافه کنه با کمک هم میتونیم یه فایل واسش درست کنیم که دیگه هر کس با هر میکرویی که خواست اون را برنامه نویسی کنه
                خواهشا تجربه تون را در کنار این فایل ها بزارید ^^ ^^ ^^ ^^ ^^ ^^
                .
                درود دوست گرامی ،
                حتما حتما دیتاشیت رو مطالعه کنید ، دو ساعت زمان بگزارید در عوض خیلی از چیزها براتون روشن میشه و کاملا دستتون میاد چه خبره . بعدش راه اندازیش براتون راحت میشه .

                دیدگاه


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

                  نوشته اصلی توسط حمید رضا ریاحی
                  اقا این فایل که میگید کجا هست میشه ادرس بدید
                  بفرمایید
                  [move]برنامه NRF24L01+ نسخه بسکام به همراه توضیحات هر سطر برنامه[/move]
                  http://mcselec.com/index.php?option=...&Itemid=57
                  انحصار طلبی علمی در دنیای امروز جایگاهی ندارد،بیایید تا دانسته های خود را هرچند اندک؛با دیگران به اشتراک بگذاریم...
                  فرهنگ و تمدن بی همتای ایرانیان به سبب حمله ی وحشیانه مغولان نابود شد،امروز نوبت من و توست که با انتشار دانسته های خود ایران را به جایگاه بی همتای گذشته باز گردانیم.

                  پیامبر اکرم(ص)فرمودند بهترین مردم کسانی هستند که خیرشان به دیگران برسد.

                  دیدگاه


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

                    نوشته اصلی توسط tofan8
                    درود دوست گرامی ،
                    حتما حتما دیتاشیت رو مطالعه کنید ، دو ساعت زمان بگزارید در عوض خیلی از چیزها براتون روشن میشه و کاملا دستتون میاد چه خبره . بعدش راه اندازیش براتون راحت میشه .
                    با سلام
                    دوست گرامی حرف شما کاملا درست ولی من میخام فایلی اماده کنم که دیگه طرف نیازی نداشته باشه 70 ص دیتا شیت را بخونه این مازول خیلی کاربردی ولی تو هیچ انجمنی درباره کانفیگش توضیح ندادن چرا ما اولیش نباشیم وکمکی به دیگران نکنیم خود بنده با ماژول درجی کار میکنم که قیمتش 7 برابر این مازول و خیلی عالی و صنعتی چون تا حالا بیش 100 تا از محصولاتمون تو صنعت بفروش رفته هر کس هم بخواهد از سیر تا پیازش براش میگم میتونه تست کنه من میخام فایل امادهبا همکاری شما درست کنم وگرنه به قول شما 2 ساعت وقت بزاری حل ولی فایلش زمان بر که هرکس یه تیکش را درست کنه همه چی دیگه حل میشه
                    دوربین مدار بسته و دزد گیر و رفع مشکلات
                    بانک اطلاعاتی سنسورها
                    ساخت رقص نور برای شیشه سکوریت مغازه ها
                    تعمیر لوازم خانگی را اینجا مطرح کنید
                    [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

                    دیدگاه


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

                      سلام من ربات باهاش راه انداختم , دیتایی که ارسال میکنه عدده مثلا فرستنه عدد یک رو ارسال میکنه و گیرنده کاری رو انجام میده با ید کد های که ارسال میکنه متفاوت باشه تا تداخلی صورت نگیره .

                      دیدگاه


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

                        سلام به همگی
                        به نظر دوستان از این ماژول میشه برای درست کردن رادیو کنترل هواپیما مدل استفاده کرد
                        میدونید که درصد خطا ارسال باید صفر باشه
                        ذکات علم یاد دادنه ....

                        دیدگاه


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

                          نوشته اصلی توسط Shapour-Ardebil
                          گیـــرنده:

                          کد:
                          '-------------------------------------------------------------------------------
                          '
                          '            IN THE NAME OF GOD
                          '
                          '-------------------------------------------------------------------------------
                          
                          '===============================================================================
                          'Project     : Recive nRF24L01
                          'Version     : 1.0.0
                          'copyright    : (c) 2013
                          'Date       : 1392/08/20
                          
                          'Chip type    : ATmega8
                          'Clock frequency : 11,059,200 Hz
                          '===============================================================================
                          
                          $regfile = "m8Adef.dat"
                          '$crystal = 11059200
                          $crystal = 8000000
                          $romstart = &H0
                          $baud = 19200                        ' use baud rate
                          $hwstack = 40                        ' default use 32 for the hardware stack
                          $swstack = 20                        ' default use 10 for the SW stack
                          
                          '-------------------------------------------------------------------------------
                          'Config LCD 16 * 2
                          '-------------------------------------------------------------------------------
                          Config Lcd = 16 * 2
                          Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , _
                           Db7 = Portb.1 , E = Portd.3 , Rs = Portd.2
                          
                          Cursor Off
                          Cursor Noblink
                          Cls
                          
                          '-------------------------------------------------------------------------------
                          ' Declare Sub Directory
                          '-------------------------------------------------------------------------------
                          Declare Sub R_register(byval Command As Byte , Byval C_bytes As Byte)
                          Declare Sub W_register(byval C_bytes As Byte)
                          
                          
                          '-------------------------------------------------------------------------------
                          'SPI (nRF24L01) team
                          '-------------------------------------------------------------------------------
                          Const Write_reg = &H20                   ' Define command entry in the register
                          Const Rd_rx_pload = &H61                  ' Define Rx Payload Address Register
                          
                          
                          '-------------------------------------------------------------------------------
                          'SPI (nRF24L01) registers (address)
                          '-------------------------------------------------------------------------------
                          Const Config_nrf = &H00                   ' Config register address
                          Const En_aa = &H01                     ' Enable Automatic confirmation email address
                          Const En_rxaddr = &H02                   ' Rx Enabled address " address"
                          Const Rf_ch = &H05                     ' RF channel' register address
                          Const Rf_setup = &H06                    ' RF Setup "(Settings) address"
                          Const Status = &H07                     ' Status " address"
                          Const Rx_addr_p0 = &H0A                   ' rx address Pipe0 " address register "
                          Const Rx_pw_p0 = &H11                    ' rx payload width , Pipe0 " address register "
                          Const Fifo_status = &H17                  ' fifo - Register Status " check address"
                          
                          Dim D_bytes(6) As Byte , B_bytes(5) As Byte
                          
                          '-------------------------------------------------------------------------------
                          'Config equipment
                          '-------------------------------------------------------------------------------
                          Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , _
                                    Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1
                          
                          
                          '===============================================================================
                          ' Software SPI does not work with nRF24L01, SPI only use the equipment
                          ' but the SS pin- code should be managed by our function
                          '===============================================================================
                          Config Portc.5 = Output : Ce Alias Portc.5         'CE pin is output
                          Config Portb.2 = Output : Ss Alias Portb.2         'SS pin is output
                          Config Pinc.4 = Input : Irq Alias Pinc.4          'IRQ pin is input
                          
                          '-------------------------------------------------------------------------------
                          ' connection Global Pines
                          '-------------------------------------------------------------------------------
                          Config Pind.5 = Output : Backlight Alias Portd.5      ' Backlight pin is output
                          Set Backlight
                          
                          Config Portc.1 = Output : Read_led Alias Portc.1
                          
                          '-------------------------------------------------------------------------------
                          
                          Spiinit
                          
                          '--------------------
                          
                          Set Ce
                          Waitms 10
                          Reset Ce
                          Reset Ss
                          
                          Call R_register(status , 1)                 ' Read the status register
                          Reset Ce                          ' Set CE is low, access to the registers
                          
                          Gosub Setup_rx                       ' Setting nRF24L01 for RX
                          Waitms 2
                          Set Ce                           ' Set nRF20L01 in receive mode
                          
                          
                          '-------------------------------------------------------------------------------
                          
                          Cls
                          Locate 1 , 1 : Lcd " RX_device "
                          Wait 2
                          
                          
                          '===============================================================================
                          ' Wait for IRQ occurs , pin- code becomes low interrupt
                          '===============================================================================
                          Do
                          
                            If Irq = 0 Then
                          
                             Set Read_led
                             Reset Ce                        ' The receiver must be enabled to read pload
                             Call R_register(rd_rx_pload , 5)            ' Read 5 bytes RX pload registration
                             '--------------------------------------------------------------------------
                             ' Show Recived Data
                             '--------------------------------------------------------------------------
                          '   Locate 1 , 1 : Lcd Hex(b_bytes(1)) ; "_" ; Hex(b_bytes(2)) ; "_" ; Hex(b_bytes(3)) ; " "
                          '   Locate 2 , 1 : Lcd Hex(b_bytes(4)) ; "_" ; Hex(b_bytes(5)) ; " "
                             Locate 1 , 1 : Lcd B_bytes(1) ; " _ " ; B_bytes(2) ; " _ " ; B_bytes(3) ; " "
                             Locate 2 , 1 : Lcd B_bytes(4) ; " _ " ; B_bytes(5) ; "   "
                          
                             D_bytes(1) = Write_reg + Status            ' Reset status bit RX_DR
                             D_bytes(2) = &B01000000                ' Write 1 to RX_DR bit to reset IRQ
                             Call W_register(2)
                             Set Ce                         ' Enable receiver again
                          
                             Reset Read_led
                             Waitms 100
                          
                            End If
                          
                          Loop
                          
                          
                          
                          'Sub routines
                          
                          '===============================================================================
                          ' Write to register with SPI
                          '===============================================================================
                          Sub W_register(byval C_bytes As Byte)
                           Reset Ss                         ' Guide CC control contact, use SS low to offset bytes
                           Spiout D_bytes(1) , C_bytes                ' Shiftout data bytes SPI trough , C_bytes is the number of bytes to be written
                           Set Ss                          ' Set SS high
                          End Sub
                          
                          
                          '===============================================================================
                          'C_bytes = Count_bytes, the number of bytes to read off
                          '===============================================================================
                          Sub R_register(byval Command As Byte , Byval C_bytes As Byte) As Byte
                            Reset Ss                         ' Manual control SS contact, set at a low level until the transition to / from Byte
                            Spiout Command , 1                    ' First shiftout in the register , which will be read
                            Spiin B_bytes(1) , C_bytes                ' read back bytes from SPI sent to nRF20L01
                            Set Ss                          ' Set SS back at a high level
                          End Sub
                          
                          
                          '===============================================================================
                          ' Preparing for the RX
                          '===============================================================================
                          Setup_rx:
                            D_bytes(1) = Write_reg + Rx_addr_p0           ' RX address pipe0
                            D_bytes(2) = &H34
                            D_bytes(3) = &H43
                            D_bytes(4) = &H10
                            D_bytes(5) = &H10
                            D_bytes(6) = &H01
                            Call W_register(6)                    ' Send 6 bytes for SPI
                            D_bytes(1) = Write_reg + En_aa              ' Enable auto ACK on pipe0
                            D_bytes(2) = &H01
                            Call W_register(2)
                            D_bytes(1) = Write_reg + En_rxaddr            ' Enable RX address pipe0
                            D_bytes(2) = &H01
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Rf_ch              ' Channel Setup
                            D_bytes(2) = 40                     ' frequency 2440 MHz
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Rx_pw_p0            ' Set RX pload width for pipe0
                            D_bytes(2) = 5
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Rf_setup            ' Setting the RF -> output power of 0 dBm , datarate 2 Mbit / s and the LNA gain on
                            D_bytes(2) = &H0F
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Config_nrf           ' Setting CONFIG -> I = 1 (RX_device), PWR_UP = 1 , CRC 2bytes, Enable CRC
                            D_bytes(2) = &H0F
                            Call W_register(2)
                          Return
                          فرستنــده:

                          کد:
                          '-------------------------------------------------------------------------------
                          '
                          '            IN THE NAME OF GOD
                          '
                          '-------------------------------------------------------------------------------
                          
                          '===============================================================================
                          'Project     : Send nRF24L01
                          'Version     : 1.0.0
                          'copyright    : (c) 2013
                          'Date       : 1392/08/20
                          
                          'Chip type    : ATmega8
                          'Clock frequency : 11,059,200 Hz
                          '===============================================================================
                          
                          $regfile = "m8Adef.dat"
                          $crystal = 11059200
                          '$crystal = 8000000
                          $romstart = &H0
                          $baud = 19200                        ' use baud rate
                          $hwstack = 40                        ' default use 32 for the hardware stack
                          $swstack = 10                        ' default use 10 for the SW stack
                          
                          '-------------------------------------------------------------------------------
                          'Config LCD 16 * 2
                          '-------------------------------------------------------------------------------
                          Config Lcd = 16 * 2
                          Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.7 , Db6 = Portb.0 , _
                           Db7 = Portb.1 , E = Portd.3 , Rs = Portd.2
                          
                          Cursor Off
                          Cursor Noblink
                          Cls
                          
                          '-------------------------------------------------------------------------------
                          ' Declare Sub Directory
                          '-------------------------------------------------------------------------------
                          Declare Sub W_register(byval C_bytes As Byte)
                          
                          '-------------------------------------------------------------------------------
                          'SPI (nRF24L01) team
                          '-------------------------------------------------------------------------------
                          Const Write_reg = &H20                   ' Define command entry in the register
                          Const Wr_tx_pload = &HA0                  ' Define Tx Payload Address Register
                          Const Flush_tx = &HE1                    ' Detect Flash Tx Command Register
                          
                          '-------------------------------------------------------------------------------
                          'SPI (nRF24L01) registers (address)
                          '-------------------------------------------------------------------------------
                          Const Config_nrf = &H00                   ' Config register address
                          Const En_aa = &H01                     ' Enable Automatic confirmation email address
                          Const En_rxaddr = &H02                   ' Rx Enabled address " address"
                          Const Rf_ch = &H05                     ' RF channel' register address
                          Const Rf_setup = &H06                    ' RF Setup "( Settings) address"
                          Const Status = &H07                     ' Status " address"
                          Const Rx_addr_p0 = &H0A                   ' rx address Pipe0 " address register "
                          Const Tx_addr = &H10                    ' TX address ( address)
                          
                          Dim D_bytes(6) As Byte , W As Byte
                          
                          '-------------------------------------------------------------------------------
                          'Config equipment
                          '-------------------------------------------------------------------------------
                          Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1
                          
                          '-------------------------------------------------------------------------------
                          ' Software SPI does not work with nRF24L01, SPI only use the equipment
                          ' but the SS pin- code should be managed by our function
                          '-------------------------------------------------------------------------------
                          Config Portc.5 = Output : Ce Alias Portc.5         'CE pin is output
                          Config Portb.2 = Output : Ss Alias Portb.2         'SS pin is output
                          Config Pinc.4 = Input : Irq Alias Pinc.4          'IRQ pin is input
                          
                          '-------------------------------------------------------------------------------
                          ' connection Global Pines
                          '-------------------------------------------------------------------------------
                          Config Pind.5 = Output : Backlight Alias Portd.5      ' Backlight pin is output
                          Set Backlight
                          
                          Config Portc.1 = Output : Send_led Alias Portc.1
                          
                          '-------------------------------------------------------------------------------
                          
                          Spiinit
                          
                          Cls
                          Locate 1 , 1 : Lcd " TX_device "
                          Wait 2
                          
                          '===============================================================================
                          '
                          '===============================================================================
                          Do
                          
                            Incr W
                            If W = 250 Then W = 0
                          
                            Set Ce
                            Waitms 10
                            Reset Ce
                            Reset Ss
                          
                            Send_led = 1
                          
                            D_bytes(1) = Flush_tx                  ' Flush the TX_fifo buffer
                            Call W_register(1)
                            D_bytes(1) = Write_reg + Status             ' Reset IRQ bit
                            D_bytes(2) = &B00110000
                            Call W_register(2)
                          
                            Gosub Setup_tx                      ' Setting nrf240l01 for TX
                            D_bytes(1) = Wr_tx_pload                 ' Put 5 bytes in TX pload buffer
                            D_bytes(2) = &HAA                    ' Byte 1
                            D_bytes(3) = &HBB                    ' Byte 2
                            D_bytes(4) = &HCC                    ' Byte 3
                            D_bytes(5) = &H11                    ' Byte 4
                            D_bytes(6) = W                      ' Byte 5 will increase every cycle
                            Call W_register(6)                    ' Record 6 Bytes For Registration
                          
                            Waitms 2
                            Set Ce                          ' Set CE for a brief moment to transmit buffer fifo
                            Waitms 1
                            Reset Ce
                          
                            Send_led = 0
                            '--------------------------------------------------------------------------
                            ' Show Sended Data
                            '--------------------------------------------------------------------------
                          '  Locate 1 , 1 : Lcd Hex(d_bytes(1)) ; " _ " ; Hex(d_bytes(2)) ; " _ " ; Hex(d_bytes(3)) ; " "
                          '  Locate 2 , 1 : Lcd Hex(d_bytes(4)) ; " _ " ; Hex(d_bytes(5)) ; " _ " ; Hex(d_bytes(6)) ; " "
                          
                            Locate 1 , 1 : Lcd D_bytes(1) ; " _ " ; D_bytes(2) ; " _ " ; D_bytes(3) ; " "
                            Locate 2 , 1 : Lcd D_bytes(4) ; " _ " ; D_bytes(5) ; " _ " ; D_bytes(6) ; " "
                          
                          
                            Wait 1
                          
                          Loop
                          
                          
                          
                          'Sub routines
                          
                          
                          '===============================================================================
                          ' Write to register with SPI
                          '===============================================================================
                          Sub W_register(byval C_bytes As Byte)
                            Reset Ss                         ' Guide CC control contact, use SS low to offset bytes
                            Spiout D_bytes(1) , C_bytes               ' Shiftout data bytes SPI trough , C_bytes is the number of bytes to be written
                            Set Ss                          ' Set SS high
                          End Sub
                          
                          
                          '===============================================================================
                          ' Preparing for TX
                          '===============================================================================
                          Setup_tx:
                            D_bytes(1) = Write_reg + Tx_addr             'TX address
                            D_bytes(2) = &H34
                            D_bytes(3) = &H43
                            D_bytes(4) = &H10
                            D_bytes(5) = &H10
                            D_bytes(6) = &H01
                            Call W_register(6)
                            D_bytes(1) = Write_reg + Rx_addr_p0           'RX address pipe0
                            D_bytes(2) = &H34
                            D_bytes(3) = &H43
                            D_bytes(4) = &H10
                            D_bytes(5) = &H10
                            D_bytes(6) = &H01
                            Call W_register(6)
                            D_bytes(1) = Write_reg + En_aa              'Enable auto ACK on pipe0
                            D_bytes(2) = &H01
                            Call W_register(2)
                            D_bytes(1) = Write_reg + En_rxaddr            ' Enable RX address pipe0
                            D_bytes(2) = &H01
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Rf_ch              ' Channel Setup
                            D_bytes(2) = 40                     ' frequency 2440 MHz
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Rf_setup            ' Setting the RF -> output power of 0 dBm , datarate 2 Mbit / s and the LNA gain on
                            D_bytes(2) = &H0F
                            Call W_register(2)
                            D_bytes(1) = Write_reg + Config_nrf           ' Setting CONFIG -> I = 0 (TX_device), PWR_UP = 1 , CRC 2bytes, Enable CRC
                            D_bytes(2) = &H0E
                            Call W_register(2)
                          Return
                          من با این کد راه انداختم ولی برد آن خیلی کم است با تحقیق به این نتیجه رسیدم که بایستی دیتاریت را به پایین ترین حد آن بیاورم تا برد بیشتر شود
                          توجه نمایید که دیتاریت در فرستنده و گیرنده بایستی یک مقدار باشد

                          کد:
                          Const Rf_setup = &H06                   ' RF Setup "( Settings) address"
                          D_bytes(1) = Write_reg + Rf_setup            ' Setting the RF -> output power of 0 dBm , datarate 2 Mbit / s and the LNA gain on
                          چون خیلی سرم شلوغ بود نتوانستم بیشتر روی آن کار بکنم فقط اگه اینکار را بکنید حرف ندارد
                          سلام
                          چرا فرکانس ها فرق میکنه یکیش 8000000 و دیگری هم 11,059,200 مشکلی به وجود نمی یاد کریستال بیرون که نمی خواد :question:
                          اگه من بخوام با atmega16 راه بندازم تو برنامه باید کدون موارد رو رعایت کنم
                          :applause: :applause: :applause: @};- @};-
                          ممنون


                          اضافه شده در تاریخ :
                          سلام
                          اگر بخوام بیشتر از یک بایت بفرستم باید چه کدهای اضافه کنم... :applause: :applause:
                          ممنون @};- @};-

                          اضافه شده در تاریخ :
                          سلام
                          برای چی وقتی از این دستور itoa(a,str3); استفاده می کنم گیرنده کار نمی کنه ولی فرستده روشنه و اطلاعات رو می فرسته... :eek: :eek: :eek: :eek:

                          دیدگاه


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

                            با تشکر از آقای ایمانی فر این هدر خیلی کار راه انداز بود.
                            ولی من میخواستم یه تغییراتی تو ماژول بدم اما با خوندن دیتاشیت یه مقداری گیج شدم.
                            کد:
                            8.3.1 SPI commands
                            The SPI commands are shown in Table 20. Every new command must be started by a high to low transition
                            on CSN.
                            The STATUS register is serially shifted out on the MISO pin simultaneously to the SPI command word shifting
                            to the MOSI pin.
                            The serial shifting SPI commands is in the following format:
                            <Command word: MSBit to LSBit (one byte)>
                            <Data bytes: LSByte to MSByte, MSBit in each byte first>
                            ظاهرا قبل از ارسال دستور باید پایه CSN صفر و بعدش دوباره یک بشه.
                            اما در مورد command word و data bytes واقعا خیلی برام گنگه.
                            ممکنه یه مثال بزنید که چطور باید تنظیم بشه.
                            مثلا من میخوام تو قسمت rf_setup دیتاریت رو روی 1Mbps و با بیشترین گین تعیین کنم که فکر کنم باید همه ی بیت ها رو صفر قرار بدم(00000000) درسته؟ اگه درسته حالا این دستور رو چطور بهش بدم؟

                            اضافه شده در تاریخ :
                            نوشته اصلی توسط redown
                            با تشکر از آقای ایمانی فر این هدر خیلی کار راه انداز بود.
                            ولی من میخواستم یه تغییراتی تو ماژول بدم اما با خوندن دیتاشیت یه مقداری گیج شدم.
                            کد:
                            8.3.1 SPI commands
                            The SPI commands are shown in Table 20. Every new command must be started by a high to low transition
                            on CSN.
                            The STATUS register is serially shifted out on the MISO pin simultaneously to the SPI command word shifting
                            to the MOSI pin.
                            The serial shifting SPI commands is in the following format:
                            <Command word: MSBit to LSBit (one byte)>
                            <Data bytes: LSByte to MSByte, MSBit in each byte first>
                            ظاهرا قبل از ارسال دستور باید پایه CSN صفر و بعدش دوباره یک بشه.
                            اما در مورد command word و data bytes واقعا خیلی برام گنگه.
                            ممکنه یه مثال بزنید که چطور باید تنظیم بشه.
                            مثلا من میخوام تو قسمت rf_setup دیتاریت رو روی 1Mbps و با بیشترین گین تعیین کنم که فکر کنم باید همه ی بیت ها رو صفر قرار بدم(00000000) درسته؟ اگه درسته حالا این دستور رو چطور بهش بدم؟
                            کسی نبود مرا یاری کند؟

                            دیدگاه


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

                              سلام دوستان من نتونستم کل صفحات رو بخونم، یک سوال داشتم
                              آیا این ماژول توانایی این رو داره که در مد دریافت باشه و با رسیدن اطلاعات به مد ارسال بره؟؟
                              آیا این تغییر مد زمان زیادی میبره و اصلا آیا عملی هست؟

                              دیدگاه


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

                                سلام
                                من به یه مشکل برخوردم.
                                من کد پست اول تاپیک رو گرفتم و مدارها رو بستم و پروگرم کردم.
                                الان یک مسئله ای هست.
                                در گیرنده فقط Data = 0 نوشته میشه و هیچ تغییری نمیکنه.
                                عملا این یعنی اینکه گیرنده داره داره یک اطلاعاتی میگیره .. اما چرا این عدد تغییر نمیکنه نمیدونم.
                                وقتی فرستنده رو قطع میکنم و فقط گیرنده رو وصل میکنم همین جمله هم دیده نمیشه.
                                خازن هم گذاشتم. دیتا شیت به انضمام 30 و خورده ای صفحه این تاپیک هم خوندم.
                                از دوستان کسی به این مشکل بر نخورده؟
                                توصیه ای برای دیباگ کردن ندارید؟

                                دیدگاه

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