Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройка скорости RFM23BP
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Wireless/Optic
BSACPLD
Коллеги, работал ли кто-нибудь с RFM23BP на скоростиях отличных от стандартных?
С настройкой скорости передачи вроде разобрался, а вот с приёмной скоростью никак не получается добится приёма данных.
В общем если я оставляю дефолтные 40кбит/с, то всё работатет. Если пытаюсь выставить 250кбит/с, то пакеты отпраляются, но не принимаются sad.gif
Вот код инициализации RFM23BP:
CODE
// 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) ;
}
//---------------------------------------------------------------------------

Если убрать комментарии, то данные перестают приниматься.
Подскажите, как правильно настраивать приёмную скорость для данного модуля.
Alex11
А Вы видели такой полезный файлик?
Нажмите для просмотра прикрепленного файла
И то, что у меня получалось - нужно манчестер отключать на высоких скоростях.
BSACPLD
Цитата(Alex11 @ Aug 1 2016, 03:14) *
А Вы видели такой полезный файлик?
Нажмите для просмотра прикрепленного файла
И то, что у меня получалось - нужно манчестер отключать на высоких скоростях.

По нему как раз и считал.
Дело было не в настройках.
Покупные антенны оказались бракованные плюс я поставил слишком маленький конденсатор по цепи питания.
Конденсатор заменил на 100мкФ электролит, а вместо покупных антенн поставил самодельные GP антенны.
Теперь связь стабильная на 250кбит/с sm.gif.
Дальность пока не тестировал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.