Страница 3 из 5

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пт июн 25, 2010 15:50:44
MiklSh
По крайней мере то, что в глаза бросилось:
*приемник вывод DATA/nFFS иногда на массу сажает - у Вас оно жестко на +Upp подключено - через резистор надо.
*у передатчика задержки тактирования по SCK 16мс - помню бился, сильно мало / сильно много, не хотел передавать, остановился на 1мкс.
*у приемника CE84/CE87: s1=0 s0=1 - при этом приемник цепляется именно за преамбулу, те самые "0xAA 0xAA 0xAA 0x2D 0xD4" передатчика, иначе весь массив битов принимается со сдвигом - в итоге на выходе каша. Если при этом буфер не запоняется - значит что то выше, в приемной части не так.

с полосой приема - не то, у Вас:
на приемнике 8D8A = 134кГц на передатчике 8B81 = 60кГц

у меня
на приемнике 9189 = 200кГц на передатчике 9086 = 210кГц

Ширина передачи должна быть больше чем лимит срабатывания у приемника.

Остальное пока не осилил.

Все это ИМХО, могу ошибаться.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Ср июл 07, 2010 21:38:05
avv
Maxxon,
удалось запустить модули-то?

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пт июл 09, 2010 13:40:49
Муромец
Добрый день, у меня вопрос по дальности работы rfm модулей.
Собраны приемник и передатчик на модулях RFM01, 02 фирмы hope. 433 Мгц. первый вариант был собран на макетной плате с кучей проводов, как на приемнике так и на передатчике, получилось растояние порядка 150 метров с антеннами ANT 433 HETH, но намотанными вручную. далее была собрана вторая версия, которая работала максимум на 70м. после чего развели платы и спаяли все аккуратно на smd компонентах. Вышло расстояние 70м(
купил антенны в магазе и получилось следующее:
ANT 433 PW-LP 100м с натягом
ANT 433 SP примерно 50м
ANT 433 HETH 70м.
http://www.megachip.ru/search.php?searc ... mp;x=0&y=0
а необходимо 150м. какие могут быть варианты для увеличения дальности?
... может есть еще какие-то антенны
... Есть ли усилитель, который можно поставить на выход передатчика, Вот например такой не подойдет:
http://www.terraelectronica.ru/news_postup.php?ID=791 или я не так понял?
... есть ли какието советы по расположению модулей относительно общей платы, относительно батареек питания

хотелось бы оставить эти модули, посколько под них уже все есть. приемник (ручной прибор) должен иметь небольшую антенну, передатчик стационарный, но тоже не хотелось бы антунну вешать 70см.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вс июл 11, 2010 16:47:52
Maxxon
2 avv: сорри, был в отпуске, не мог проверить. Займусь в ближайшие пару дней и отпишусь. Тут поляк один классную документацию прислал на сами чипы модулей и прогу для симуляции передачи между модулями на компе, надо осилить. Поделюсь со всеми.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вс июл 11, 2010 16:52:18
Maxxon
2 Муромец

Может дальность прямо пропорциональна напряжению питания, не пробовали изменять до верхних границ?

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пн июл 12, 2010 08:15:24
Муромец
пробовал, к сожалению питание не вариант.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пн июл 12, 2010 10:27:14
zebrox
Maxxon писал(а):Поделюсь со всеми.
Ждем-с с нетерпением)

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пн июл 12, 2010 16:20:21
Maxxon
Забирайте :)

Выложил сюда: http://depositfiles.com/files/kds6h85ck
И сюда: http://rapidshare.com/files/406524289/r ... sheets.zip

В архиве доки на чипы модулей и конфигуратор с симуляцией.

Буду благодарен модераторам форума, если разместят здесь на сайте, так как ссылки на файлообменники недолговечные.
Также можно было бы выложить конфигураторы от controller-designs.de, так как google их совсем неявно индексирует:

RFM01: http://www.controller-designs.de/index. ... 1_eva&sub=
RFM02: http://www.controller-designs.de/index. ... 2_eva&sub=
RFM12: http://www.controller-designs.de/index. ... sicht&sub= (целый список)

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вт июл 13, 2010 13:40:50
avv
О_о!!! :o
Спасибо!!!

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вт июл 13, 2010 16:33:13
Maxxon
Комментарий: насколько мне известно, для симуляции надо выбирать SI4320 (RFM01) и SI4021 (он же IA4221, RFM02).
На сайте silabs.com доступна версия 3.1 софтины.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вс авг 08, 2010 00:21:15
Maxxon
В очередной раз сел мучать модули. Крышу снесло окончательно... Столько лет занимаюсь электроникой и программированием и тут такой облом. Плюнул, съездил в мегу за новым приемником. Запаял. Завелось с первого раза. Приличных слов просто не осталось...

P.S.: его пример - другим наука (с)...

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вс авг 08, 2010 10:29:52
clawham
Maxxon, не могли бы вы выслать Вашу тех документацию мне на электронку чтоб я её разместил на своём сервере - домашний 5 мегабит отдача и всегда живой :)
ато эти рапиды и депозиты....блин ну такое фуфло

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пн авг 09, 2010 21:01:05
bsresident
Maxxon, можешь выложить свою рабочую версию...Две недели уже мучаюсь, а эффекта никакого: RFM01 не получает посылку (не дергает nIRQ, в статусе не горит FFIT) , если включено обнаружение Sync word, если выключено - поток бессмысленный байтов

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Ср авг 11, 2010 14:24:43
Maxxon
Выложу чуть попозже, когда все тесты пройдут :) Скорее всего, в виде отдельной статьи :)

На самом деле, огромная благодарность тов. MiklSh. Когда я уже отчаялся, вспомнил что он выложил несколько постов назад рабочий код, собственно отсюда и стал плясать. Собрал схемку согласно комментам, увидел что при работающем коде приемник не реагирует адекватно и заменил его. После замены все действительно заработало :) Рекомендую тоже пойти этим путем.
Пара нюансов:
1. По коду передатчика на SPI инициализируются единички, это, например, мешает моему программатору (а-ля AVR910 USB), который перестает видеть тиньку после прошивки. В случае программатора типа uniprof, полагаю, все будет работать без косяков.
2. Дребезг контактов на передатчике. Если нажать кнопку очень быстро, отрабатывает. Если хоть на долю секунды дольше, то нет (для моей конструкции, конечно, это минус, так как мне наоборот дребезг необходим :) подлечим как-нибудь...)

P.S.: повесьте светодиод на VDI до земли и включите его в фифо, для отладки очень удобно.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Ср ноя 03, 2010 19:07:29
grjgrj
Люди помогите! Работаю с RFM01 и RFM02 + две Atmega8.
Использую примеры выложенные в этой теме: не идет поллинг nIRQ, программа на нем зависает и работать не хочет.
В чем может быть проблема? Вот код:

Код: Выделить всё

//Команда работает проверл с помоoью CLK
void WriteCMD  (unsigned int Cmd)
{


 unsigned char u;

   nSEL=0; delay_us(10);
   SCK=0; delay_us(10);
   for(u=0;u<16;u++)
   {
       SCK=0; delay_us(10);
       if(Cmd&0x8000)
       {
          SDI=1;
       }
       else
       {
          SDI=0;
       }
       delay_us(10);
       SCK=1;
       delay_us(10);
       Cmd<<=1;
   };
   SCK=0; delay_us(10);
   nSEL=1;delay_us(10);

}


void rf02_shiftout(unsigned short wert)
{
   unsigned char j;
   for (j=0; j<8; j++)
   {
       UART1_Write_Text("Sn1");
       while(nIRQ==1);                                                          //вот здесь виснит
       UART1_Write_Text("Send2");
       while(!(nIRQ==1));                                                             
       UART1_Write_Text("Send3");
       delay_us(3);                                                             
       if (wert&128)                                                            
          {SDI=1;}                                                              
  //        {FSK=1;}                                                              
       else
          {SDI=0;}                                                              
   //       {FSK=0;}                                                              
       wert<<=1;                                                                
    }
}

//Отправка
void rf02_txdata(unsigned char date[8])
{
   unsigned char k,wert,temp;

   wert=0xC6;
   nSEL=0;
   for (k=0; k<8; k++)
   {
     if (wert&128)
         {SDI=1;}
     else
         {SDI=0;}
     SCK=1;
     delay_us(1);
     wert<<=1;
     SCK=0;
     delay_us(1);
   }

   rf02_shiftout(0xAA);
   rf02_shiftout(0xAA);
   rf02_shiftout(0xAA);
   rf02_shiftout(0x2D);
   rf02_shiftout(0xD4);
   for (k=0; k<8; k++)
    {
     temp=date[k];
     rf02_shiftout(temp);
    }
   rf02_shiftout(0xAA);
   rf02_shiftout(0x00); // áåç ýòîãî îòðåçàåòññÿ ïîñëåäíèé áèò ïðè ïåðåäà÷å
   while(nIRQ==1);
   delay_us(10);                                                               
   nSEL=1;
   delay_us(10);                                                                
     UART1_Write_Text("SendFin");

}

//Инициализция
void Inti_RFM_02()
{
   UART1_Write_Text("Init");
   Delay_ms(500);
   nSEL=0;delay_us(10);
  // WriteCMD(0xC001);
  // WriteCMD(0xCC00);   //×òåíèå ñòàòóñ áàéòà (ìîæåò è íå íàäî)
   WriteCMD(0x9086);   //868 MHz band, 1 MHz CLK, 12.5 pF   ms : FSK sign = 0   df(fsk) = 150 kHz
   WriteCMD(0xA840);   //RFM02 - Frequency Command      //Set center frequency to 867.84 MHz
   WriteCMD(0xC811);   //RFM02 - Datarate Command       //Set datarate to 19.15708 kbps
   WriteCMD(0xB400);   //RFM02 - Power Setting Command  //Set output power to -12 dB
   WriteCMD(0xC2A0);   //RFM02 - LB Det./TX Sync. Command //âêëþ÷åíà ñèíõðîíèçàöèÿ óðîâåíü áàòðàåå 2,2Â, êàëèáðîâêà WathDog âûêëþ÷åíà
   WriteCMD(0xD2C0);   //RFM02 - PLL Command              //38,4 ìàêñ áèòðåéò, -107 dbc/hz 33% òîêà
   WriteCMD(0xC0E0);   //RFM02 - Power Management Command

   UART1_Write_Text("InitFin");

}

//Отправка
void RFM_Send()
{
  unsigned short date[8];

  date[0]=0xA0; date[1]=0xA1; date[2]=0xA2; date[3]=0xA3; date[4]=0xA4; date[5]=0xA5; date[6]=0xA6; date[7]=0xA7;
 Inti_RFM_02();
  rf02_txdata(date);
  VD=1; delay_ms(10); VD=0;
  rf02_txdata(date); delay_ms(1);
  rf02_txdata(date); delay_ms(1);
  rf02_txdata(date); delay_ms(1);
  rf02_txdata(date); delay_ms(1);
  rf02_txdata(date); delay_ms(1);
  rf02_txdata(date); delay_ms(1);
  rf02_txdata(date); delay_ms(1);
  WriteCMD(0xC001);                                                             //CLOSE TX çàâðåøåíèå ïåðåäà÷è!, à ãäå íà÷àëàñü?
  UART1_Write_Text("SendFin");
  InputBytes[0]=0;                                                             //Ñáðîñ êîìàíäû
  i=0;
}
Проблеме найдена, код рабочий, проблема была в кривых лапах. Удалось запустить прием-передачу, проблем нет!
Но есть еще вопрос, подскажите как правильно организовать прием данных одним RFM01 он нескольких RFM02, да так чтобы коллизии не было и данные не терялись, передача 11 байт раз в день или реже.

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пт ноя 05, 2010 21:52:19
Stepan
grjgrj вам надо rfm12 и проверки чек сумм и высылание подтвержения о том что пакет принят правильно и опрос... т.к. вероятность неприема пакета всегда есть, а вам ещё и несколько передатчиков надо принимать

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Вс янв 23, 2011 21:58:42
TechMike
Разбираюсь с RFM02+tiny2313, пытаюсь ее заставить передавать на нужной частоте, но не получается.
Использую исходники немца, вот отсюда http://myfablab.wordpress.com/2010/06/2 ... rsion-0-1/
Подключил так:
FSK - на +5в или "в воздухе"
CLS - "в воздухе"
VDD-+5в
nIRQ - PB4
SDI - PB0
SCK - PB1
VSS - GND
nSEL - PB2
и светодиоды на PD4 и PD2 для отладки.
МК заведен от внутреннего RC генератора 8Мгц.
tiny2313 видит RFM02, успешно проходит ее инициализация и начинает раз в секунду слать "0000001111100000888888888\n" но на частоте 434.0мгц ничего не происходит, тишина. Отсканировал все вплоть до 450.0мгц, иногда на пару кубиков слышно передачу модуля, но это явно промежуточная частота или гармоники самого RFM02.
Сканирую с помощью yaesu vr6
Исходники ниже.
Что я делаю не так?

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Пт янв 28, 2011 17:31:31
TechMike
Заработал RFM02 на передачу. пришлось в исходнике немного задержки в SPI подкорректировать, самое главное сконфигурировать входы-выходы МК. Для моего включения вот так:

Код: Выделить всё

DDRB=0b11101111; // делаем выходами все порты PINB, кроме PB4(IRQ).
PINB=0b00000000; // выводим на все выходы PORTB 0
PORTB=0b00000000; // и НЕ подягиваем на +питания.

DDRD=0b11111111; // делаем выходами все порты PIND.
PIND=0b00000000; // выводим на все выходы PORTD 0
PORTD=0b00000000; // и НЕ подягиваем на +питания.
Теперь вопрос в том, почему у меня модуль не включает несущую когда конфигурю Power Management Command, а приходится играться Configuration Setting Command
Пример, инициализирую модуль вот так:

Код: Выделить всё

// init rfm02, see datasheet
rf02_trans(0b1100110000000000); // read status

// Configuration Setting Command: band[MHz]=433,CLK frequency[MHz]=2,Load capacitor [pF]=10,ms=0,frequency deviation[kHz]=60
rf02_trans(0b1000101110000001); 

// Power Management Command: close all ,the module will get into the sleep state.
//rf02_trans(0b1100000000000001);

// Frequency Setting Command: 433band: Fc=430+1600*0.0025= MHz
rf02_trans(0b1010011001000000);

// Data Rate Command: data rate=4.8k bps 
rf02_trans(0b1100100001000111);

// Low Battery Detector and Tx bit Synchronization Command: 
// dwc: Disable wake-up timer periodical calibration
// ebs: Enable TX bit synchronization function
// Disable Low battery detector
rf02_trans(0b1100001000100000);

// PLL Setting and Reset Mode Command: 
// PLL bandwidth: Max datarate [kbps]=19.2, Phase Noise at 1MHz offset [dBc/Hz](typical)=-112,Charage pump current=25%
rf02_trans(0b1101001001000000);

// Power Management Command:
// ea:Enable power amplifier
// ex:Enable crystal oscillator
// es:Enable synthesizer
rf02_trans(0b1100000000111000);

// Power Setting Command: set relative output power:=MAX
rf02_trans(0b10110000);
Потом перед началом передачи приходится давай команду

Код: Выделить всё

rf02_trans(0b1000101111100000); // TX on (Configuration Setting Command)
А "выключать" несущую только вот так:

Код: Выделить всё

rf02_trans(0b100010111000 0001); // TX off (Configuration Setting Command)
Хотя по примеру обмена с модулем в датащите, нужно для этого использоваться последние два байта Power Management Command
Почему так?

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Чт апр 07, 2011 12:04:33
newbart
А у меня виснет и при ожидании nIRQ и SDO.
Сделал вариант считки статуса - выдает все время разные числа 1276, 1218, 1091 и т.д.

Код: Выделить всё

#define Set_SDI()    (PORTB |=  (1 << 6))
#define Clr_SDI()    (PORTB &= ~(1 << 6))
#define Set_SCK()    (PORTB |=  (1 << 5))
#define Clr_SCK()    (PORTB &= ~(1 << 5))
#define Set_nSEL()    (PORTB |=  (1 << 4))
#define Clr_nSEL()    (PORTB &= ~(1 << 4))

unsigned int rf01_read_status(void) 
{
  unsigned char i;
  unsigned int temp = 0;
  
  Clr_SCK();
  Clr_nSEL();
  Clr_SDI();
  for (i=0; i<16; i++)
  {
    Clr_SCK(); delay_us(10);  
    temp <<= 1;
    if (PINA & (1<<1)) temp |= 0x0001;
    Set_SCK(); delay_us(10);
  };
  Clr_SCK();
  delay_us(10);
  Set_nSEL();
  return(temp);
}

void main(void)
{
  lcd_init();
  __delay_cycles(1000000);
  DDRB |= (1 << 4)|(1 << 5)|(1 << 6);
  Set_nSEL();
  DDRA = 0x00;
  __delay_cycles(1000000);

  for (;;)
  {
    temp = rf01_read_status();
    lcd_show_uint(temp);
    __delay_cycles(9000000);
  }
}

Re: RF модули от HOPERF RFM01 & RFM02

Добавлено: Чт апр 07, 2011 14:22:53
TechMike
newbart писал(а):А у меня виснет и при ожидании nIRQ и SDO.
Сделал вариант считки статуса - выдает все время разные числа 1276, 1218, 1091 и т.д.
Порт для nIRQ сконфигурирован как вход?