Перейти к содержанию
    

Настройка скорости RFM23BP

Коллеги, работал ли кто-нибудь с RFM23BP на скоростиях отличных от стандартных?

С настройкой скорости передачи вроде разобрался, а вот с приёмной скоростью никак не получается добится приёма данных.

В общем если я оставляю дефолтные 40кбит/с, то всё работатет. Если пытаюсь выставить 250кбит/с, то пакеты отпраляются, но не принимаются :(

Вот код инициализации RFM23BP:

// init_RFM23BP.cpp

#include "AVR_CPU.h"
#include "main.h"
#include "system.h"
#include "control_rfm.h"

#include "init_RFM23BP.h"

#define RFM_ID		0x08

//---------------------------------------------------------------------------
void init_RFM23BP (void)
{
__delay_cycles (const20ms) ;

// Reset ALL registers
wr_rfm_byte (0x07, 0x81) ;
__delay_cycles (const1ms) ;

// Check DEVICE_TYPE
if (rd_rfm_byte(0) != RFM_ID) 
	LED_PORT |= (1<<LED1) ;

// FREQ = 868.95MHz
wr_rfm_byte (0x75, 0x73) ;          // sbsel=1, hbsel=1, fb=19
wr_rfm_byte (0x76, HIBYTE(28640)) ; // fc=28640 (868.95MHz)
wr_rfm_byte (0x77, LOBYTE(28640)) ; //
wr_rfm_byte (0x74, HIBYTE(0)) ;     // fo=0
wr_rfm_byte (0x73, LOBYTE(0)) ;     //
wr_rfm_byte (0x79, 0x00) ;          // fhch=0
wr_rfm_byte (0x7A, 0x00) ;          // fhs=0

// Modulation
wr_rfm_byte (0x70, 0xC0) ;          // txdtrtscale=0, enphpwdn=0, manppol=1, enmaninv=1, enmanch=0, enwhite=0
wr_rfm_byte (0x71, 0x23) ;          // dtmod=FIFO, modtyp=GFSK, fd=160 (100kHz)
//wr_rfm_byte (0x72, 0xA0) ;          //

wr_rfm_byte (0x34, 64) ;

/*
// TX data rate
wr_rfm_byte (0x58, 0xC0) ;          // if >100kbps 0xC0, else 0x80
wr_rfm_byte (0x6E, HIBYTE(16384)) ; // txdr=16384 (250kbps)
wr_rfm_byte (0x6F, LOBYTE(16384)) ; //
*/

// TX power = 10dBm
wr_rfm_byte (0x6D, 0x1B) ;

/*
// RX
wr_rfm_byte (0x1C, 0x8B) ;          // dwn3_bypass=1, ndec_exp=0, filset=11
wr_rfm_byte (0x20, 48) ;
wr_rfm_byte (0x21, HIWORD(LOBYTE(174763))) ;
wr_rfm_byte (0x22, LOWORD(HIBYTE(174763))) ;
wr_rfm_byte (0x23, LOWORD(LOBYTE(174763))) ;
wr_rfm_byte (0x24, 0x0E) ;          // rxncocomp=1, cgainx2=1, crgain=1708
wr_rfm_byte (0x25, 0xAC) ;          //
*/

// PLL ON
wr_rfm_byte (0x07, 0x03) ;
__delay_cycles (const1ms) ;
}
//---------------------------------------------------------------------------

Если убрать комментарии, то данные перестают приниматься.

Подскажите, как правильно настраивать приёмную скорость для данного модуля.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы видели такой полезный файлик?

RF22B_23B_31B_42B_43B_Register_Settings_RevB1_v5.xls.zip

И то, что у меня получалось - нужно манчестер отключать на высоких скоростях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы видели такой полезный файлик?

RF22B_23B_31B_42B_43B_Register_Settings_RevB1_v5.xls.zip

И то, что у меня получалось - нужно манчестер отключать на высоких скоростях.

По нему как раз и считал.

Дело было не в настройках.

Покупные антенны оказались бракованные плюс я поставил слишком маленький конденсатор по цепи питания.

Конденсатор заменил на 100мкФ электролит, а вместо покупных антенн поставил самодельные GP антенны.

Теперь связь стабильная на 250кбит/с :).

Дальность пока не тестировал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...