اطلاعیه

Collapse
No announcement yet.

کانفیگ nrf24l01 برای حداکثر برد

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

    کانفیگ nrf24l01 برای حداکثر برد

    سلام، من چند تا ماژول nrf با برد یک کیلومتر گرفتم که بیشتر از 40 متر جواب نمیده، فقط هم دو تا دیوار بین فرستنده و گیرنده هست. خیلی جا ها نوشتن که میشه با تنظیم گین و ... برد رو افزایش داد ولی هیچ کدوم ننوشتن چطوری!! ممنون میشم بگین که در برنامه فرستنده زیر کدوم رجیستر رو باید تغییر بدم تا حداکثر برد رو داشته باشم
    کد:
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    
    Const Write_reg = &H20
    Const Wr_tx_pload = &HA0
    Const Flush_tx = &HE1
    Const Config_nrf = &H00
    Const En_aa = &H01
    Const En_rxaddr = &H02
    Const Rf_ch = &H05
    Const Rf_setup = &H06
    Const Status = &H07
    Const Rx_addr_p0 = &H0A
    Const Tx_addr = &H10
    
    
    Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1
    
    
    Config Portb.1 = Output : Ce Alias Portb.1
    Config Portb.2 = Output : Ss Alias Portb.2
    Config Pinb.0 = Input : Irq Alias Pinb.0
    Config Portc.1 = Output : Led Alias Portc.1
    Config Portd.0 = Input : Sw Alias Pind.0
    
    
    Dim D_bytes(6) As Byte
    Dim Dat As Byte
    Dim A As Byte
    Dim B As Byte
    Dim C As Byte
    
    
    Declare Sub W_register(byval C_bytes As Byte)
    
    
    Spiinit
    
    
    Set Portd.0
    
    
    Do
    
    
    If Sw = 0 Then
    [FONT=Yekan]      Set Led[/FONT]
          Dat = 10
          Set Ce
          Waitms 10
          Reset Ce
          Reset Ss
          D_bytes(1) = Flush_tx
          Call W_register(1)
          D_bytes(1) = Write_reg + Status
          D_bytes(2) = &B00110000
          Call W_register(2)
          Gosub Setup_tx
          D_bytes(1) = Wr_tx_pload
          D_bytes(2) = &HAA
          D_bytes(3) = &HBB
          D_bytes(4) = &HCC
          D_bytes(5) = &HDD
          D_bytes(6) = Dat
          Call W_register(6)
          Waitms 2
          Set Ce
          Waitms 1
          Reset Ce
          Waitms 20[FONT=Yekan]  [/FONT]
    End If
    
    
    Loop
    
    
    Sub W_register(byval C_bytes As Byte)
       Reset Ss
       Spiout D_bytes(1) , C_bytes
       Set Ss
    End Sub
    
    
    Setup_tx:
       D_bytes(1) = Write_reg + Tx_addr
       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
       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
       D_bytes(2) = &H01
       Call W_register(2)
       D_bytes(1) = Write_reg + En_rxaddr
       D_bytes(2) = &H01
       Call W_register(2)
       D_bytes(1) = Write_reg + Rf_ch
       D_bytes(2) = 40
       Call W_register(2)
       D_bytes(1) = Write_reg + Rf_setup
       D_bytes(2) = &H0F
       Call W_register(2)
       D_bytes(1) = Write_reg + Config_nrf
       D_bytes(2) = &H0E
       Call W_register(2)
    Return
    دلیل: ادغام دو پست برای جلوگیری از اسپم

    طبق چیزی که بنده متوجه شدم، با تغییر رجیستر 6 میشه برد رو افزایش داد، ولی نمیدونم چطوری اینکار رو بکنم.
    این هم یک لینک از کلیه کد های این ماژول https://www.mcselec.com/?option=com_content&task=view&id=212&Itemid=57

    #2
    پاسخ : کانفیگ nrf24l01 برای حداکثر برد

    دوستان من حاظر به پرداخت هزینه برای دریافت آموزش هستم آخه به اسم یک کیلومتر گرفتم ولی 50 متر هم جواب نمیده :(

    دیدگاه


      #3
      پاسخ : کانفیگ nrf24l01 برای حداکثر برد

      دوست عزیز تنظیمات برای حداکثر برد در برنامه ایکه گذاشتی بصورت زیر (
      D_bytes(1) = Write_reg + Rf_setup
      D_bytes(2) = &H0F
      )
      که شامل بیت ریت 256 kb/s و توان 0dbاعمال شده.دیگه بردش حداکثر همینه از نظر تنظیمات نمیشه کاری کرد.

      دیدگاه


        #4
        پاسخ : کانفیگ nrf24l01 برای حداکثر برد

        نوشته اصلی توسط soheyl_60 نمایش پست ها
        دوست عزیز تنظیمات برای حداکثر برد در برنامه ایکه گذاشتی بصورت زیر (
        D_bytes(1) = Write_reg + Rf_setup
        D_bytes(2) = &H0F
        )
        که شامل بیت ریت 256 kb/s و توان 0dbاعمال شده.دیگه بردش حداکثر همینه از نظر تنظیمات نمیشه کاری کرد.
        ممنون از پاسختون، میشه یکم بیشتر و به صورت دقیق توضیح بدین، مثلا بیت ریت 256 کدوم هستش؟ آخه ff نداریم
        و صفر سدی بل کدوم قسمته؟
        حالا من چیکار کنم برد 40 متر کجا برد یک کیلو متر کجا، البته یک کیلومتر پیشکش 300 متر هم جواب بده خوبه

        دیدگاه


          #5
          پاسخ : کانفیگ nrf24l01 برای حداکثر برد

          عکس ماژولتو بذار ببینم از کدوماست.
          برای اطلاعات بیشتر این فایلو ترجمه دیتاشیت nrf هست چند سال پیش خودم ترجمش کردم و لینکش در زیر هست رو مطالعه کن.
          اما برای ریجیستر Rf_setup صفحه 34 همین فایلو نگاه کن.اونجا بیت به بیت این ریجیسترو توضیح داده.اگه سوالی داشتی در حد سوادم پاسخگو هستم.
          دانلود کنید.

          دیدگاه


            #6
            پاسخ : کانفیگ nrf24l01 برای حداکثر برد

            نوشته اصلی توسط soheyl_60 نمایش پست ها
            عکس ماژولتو بذار ببینم از کدوماست.
            برای اطلاعات بیشتر این فایلو ترجمه دیتاشیت nrf هست چند سال پیش خودم ترجمش کردم و لینکش در زیر هست رو مطالعه کن.
            اما برای ریجیستر Rf_setup صفحه 34 همین فایلو نگاه کن.اونجا بیت به بیت این ریجیسترو توضیح داده.اگه سوالی داشتی در حد سوادم پاسخگو هستم.
            دانلود کنید.
            سلام، ممنون از زحمتی که کشیدید، من فایل رو مطالعه کردم و برام چند تا سوال پیش اومده، در برنامه پست اول ما میایم هگز 26 رو برای کانفیگ توان به ماژول میدیم که برابر 00100110 هستش، بیت 0 و 4 و 6 و 7 رو باهاش کاری نداریم. بیت یک و دو طبق توضیحات شما و دیتاشیت ماژول یعنی توان صفر دسی بل و بیت 3 و بیت 5 با همدیگه یعنی بیت ریت 250 که حداقل بیت ریت هستش. آیا تنظیمات دیگه ای برای این ماژول وجود نداره؟ توان 18 دسی بل چطوره؟؟ در آفتاب رایانه در بخش نظرات ماژول به packet lost=15 اشاره شده، این کجای تنظیماته؟ ممنون

            دیدگاه


              #7
              پاسخ : کانفیگ nrf24l01 برای حداکثر برد

              نوشته اصلی توسط pedram0032 نمایش پست ها
              سلام، ممنون از زحمتی که کشیدید، من فایل رو مطالعه کردم و برام چند تا سوال پیش اومده، در برنامه پست اول ما میایم هگز 26 رو برای کانفیگ توان به ماژول میدیم که برابر 00100110 هستش، بیت 0 و 4 و 6 و 7 رو باهاش کاری نداریم. بیت یک و دو طبق توضیحات شما و دیتاشیت ماژول یعنی توان صفر دسی بل و بیت 3 و بیت 5 با همدیگه یعنی بیت ریت 250 که حداقل بیت ریت هستش. آیا تنظیمات دیگه ای برای این ماژول وجود نداره؟ توان 18 دسی بل چطوره؟؟ در آفتاب رایانه در بخش نظرات ماژول به packet lost=15 اشاره شده، این کجای تنظیماته؟ ممنون
              عددش 18db- هست که مقدارش از صفر کمتره.
              اما درموردpacket اون مربوط به ریجستر 04 SETUP_RETR است.که تعداد دفعات ارسال مجدد رو حداکثر 15 بار میتونی تنظیم کنی .
              این بخاطر انه اگه یه بار اطلاعات فرستاده شد و گیرنده نتونست دریافت کنه فرستنده مجددا میفرسته.

              دیدگاه


                #8
                پاسخ : کانفیگ nrf24l01 برای حداکثر برد

                نوشته اصلی توسط soheyl_60 نمایش پست ها
                عددش 18db- هست که مقدارش از صفر کمتره.
                اما درموردpacket اون مربوط به ریجستر 04 SETUP_RETR است.که تعداد دفعات ارسال مجدد رو حداکثر 15 بار میتونی تنظیم کنی .
                این بخاطر انه اگه یه بار اطلاعات فرستاده شد و گیرنده نتونست دریافت کنه فرستنده مجددا میفرسته.
                خیلی ممنون،
                مقدار packet هر چقدر کمتر باشه بردش افزایش پیدا میکنه؟ آخه در اون سایت نوشته بودکه برای یک ماژول یک کیلومتری به ازای paket=15 برد 50 متر میشه.
                با تشکر

                دیدگاه

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