RF модули от HOPERF RFM01 & RFM02
- MiklSh
- Потрогал лапой паяльник
- Сообщения: 361
- Зарегистрирован: Чт дек 28, 2006 12:46:58
- Откуда: Хлынов
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
По крайней мере то, что в глаза бросилось:
*приемник вывод 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кГц
Ширина передачи должна быть больше чем лимит срабатывания у приемника.
Остальное пока не осилил.
Все это ИМХО, могу ошибаться.
*приемник вывод 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
Maxxon,
удалось запустить модули-то?
удалось запустить модули-то?
Re: RF модули от HOPERF RFM01 & RFM02
Добрый день, у меня вопрос по дальности работы 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см.
Собраны приемник и передатчик на модулях 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
2 avv: сорри, был в отпуске, не мог проверить. Займусь в ближайшие пару дней и отпишусь. Тут поляк один классную документацию прислал на сами чипы модулей и прогу для симуляции передачи между модулями на компе, надо осилить. Поделюсь со всеми.
Re: RF модули от HOPERF RFM01 & RFM02
2 Муромец
Может дальность прямо пропорциональна напряжению питания, не пробовали изменять до верхних границ?
Может дальность прямо пропорциональна напряжению питания, не пробовали изменять до верхних границ?
Re: RF модули от HOPERF RFM01 & RFM02
пробовал, к сожалению питание не вариант.
Re: RF модули от HOPERF RFM01 & RFM02
Maxxon писал(а):Поделюсь со всеми.
Ждем-с с нетерпением)
Re: RF модули от HOPERF RFM01 & RFM02
Забирайте 
Выложил сюда: http://depositfiles.com/files/kds6h85ck
И сюда: http://rapidshare.com/files/406524289/rfm0102_datasheets.zip
В архиве доки на чипы модулей и конфигуратор с симуляцией.
Буду благодарен модераторам форума, если разместят здесь на сайте, так как ссылки на файлообменники недолговечные.
Также можно было бы выложить конфигураторы от controller-designs.de, так как google их совсем неявно индексирует:
RFM01: http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=rfm01_eva&sub=
RFM02: http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=rfm02_eva&sub=
RFM12: http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=uebersicht&sub= (целый список)
Выложил сюда: http://depositfiles.com/files/kds6h85ck
И сюда: http://rapidshare.com/files/406524289/rfm0102_datasheets.zip
В архиве доки на чипы модулей и конфигуратор с симуляцией.
Буду благодарен модераторам форума, если разместят здесь на сайте, так как ссылки на файлообменники недолговечные.
Также можно было бы выложить конфигураторы от controller-designs.de, так как google их совсем неявно индексирует:
RFM01: http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=rfm01_eva&sub=
RFM02: http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=rfm02_eva&sub=
RFM12: http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=uebersicht&sub= (целый список)
Re: RF модули от HOPERF RFM01 & RFM02
О_о!!!
Спасибо!!!
Спасибо!!!
Re: RF модули от HOPERF RFM01 & RFM02
Комментарий: насколько мне известно, для симуляции надо выбирать SI4320 (RFM01) и SI4021 (он же IA4221, RFM02).
На сайте silabs.com доступна версия 3.1 софтины.
На сайте silabs.com доступна версия 3.1 софтины.
Re: RF модули от HOPERF RFM01 & RFM02
В очередной раз сел мучать модули. Крышу снесло окончательно... Столько лет занимаюсь электроникой и программированием и тут такой облом. Плюнул, съездил в мегу за новым приемником. Запаял. Завелось с первого раза. Приличных слов просто не осталось...
P.S.: его пример - другим наука (с)...
P.S.: его пример - другим наука (с)...
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Maxxon, не могли бы вы выслать Вашу тех документацию мне на электронку чтоб я её разместил на своём сервере - домашний 5 мегабит отдача и всегда живой 
ато эти рапиды и депозиты....блин ну такое фуфло
ато эти рапиды и депозиты....блин ну такое фуфло
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
-
bsresident
- Родился
- Сообщения: 1
- Зарегистрирован: Пн авг 09, 2010 09:41:01
Re: RF модули от HOPERF RFM01 & RFM02
Maxxon, можешь выложить свою рабочую версию...Две недели уже мучаюсь, а эффекта никакого: RFM01 не получает посылку (не дергает nIRQ, в статусе не горит FFIT) , если включено обнаружение Sync word, если выключено - поток бессмысленный байтов
Re: RF модули от HOPERF RFM01 & RFM02
Выложу чуть попозже, когда все тесты пройдут
Скорее всего, в виде отдельной статьи 
На самом деле, огромная благодарность тов. MiklSh. Когда я уже отчаялся, вспомнил что он выложил несколько постов назад рабочий код, собственно отсюда и стал плясать. Собрал схемку согласно комментам, увидел что при работающем коде приемник не реагирует адекватно и заменил его. После замены все действительно заработало
Рекомендую тоже пойти этим путем.
Пара нюансов:
1. По коду передатчика на SPI инициализируются единички, это, например, мешает моему программатору (а-ля AVR910 USB), который перестает видеть тиньку после прошивки. В случае программатора типа uniprof, полагаю, все будет работать без косяков.
2. Дребезг контактов на передатчике. Если нажать кнопку очень быстро, отрабатывает. Если хоть на долю секунды дольше, то нет (для моей конструкции, конечно, это минус, так как мне наоборот дребезг необходим
подлечим как-нибудь...)
P.S.: повесьте светодиод на VDI до земли и включите его в фифо, для отладки очень удобно.
На самом деле, огромная благодарность тов. MiklSh. Когда я уже отчаялся, вспомнил что он выложил несколько постов назад рабочий код, собственно отсюда и стал плясать. Собрал схемку согласно комментам, увидел что при работающем коде приемник не реагирует адекватно и заменил его. После замены все действительно заработало
Пара нюансов:
1. По коду передатчика на SPI инициализируются единички, это, например, мешает моему программатору (а-ля AVR910 USB), который перестает видеть тиньку после прошивки. В случае программатора типа uniprof, полагаю, все будет работать без косяков.
2. Дребезг контактов на передатчике. Если нажать кнопку очень быстро, отрабатывает. Если хоть на долю секунды дольше, то нет (для моей конструкции, конечно, это минус, так как мне наоборот дребезг необходим
P.S.: повесьте светодиод на VDI до земли и включите его в фифо, для отладки очень удобно.
Re: RF модули от HOPERF RFM01 & RFM02
Люди помогите! Работаю с RFM01 и RFM02 + две Atmega8.
Использую примеры выложенные в этой теме: не идет поллинг nIRQ, программа на нем зависает и работать не хочет.
В чем может быть проблема? Вот код:
Проблеме найдена, код рабочий, проблема была в кривых лапах. Удалось запустить прием-передачу, проблем нет!
Но есть еще вопрос, подскажите как правильно организовать прием данных одним RFM01 он нескольких RFM02, да так чтобы коллизии не было и данные не терялись, передача 11 байт раз в день или реже.
Использую примеры выложенные в этой теме: не идет поллинг 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
grjgrj вам надо rfm12 и проверки чек сумм и высылание подтвержения о том что пакет принят правильно и опрос... т.к. вероятность неприема пакета всегда есть, а вам ещё и несколько передатчиков надо принимать
меньше слов - больше дела
-
TechMike
- Прорезались зубы
- Сообщения: 247
- Зарегистрирован: Сб дек 15, 2007 23:00:54
- Откуда: Moscow
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Разбираюсь с RFM02+tiny2313, пытаюсь ее заставить передавать на нужной частоте, но не получается.
Использую исходники немца, вот отсюда http://myfablab.wordpress.com/2010/06/22/rfm01-and-rfm02-libraries-for-arduino-18-version-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
Исходники ниже.
Что я делаю не так?
Использую исходники немца, вот отсюда http://myfablab.wordpress.com/2010/06/22/rfm01-and-rfm02-libraries-for-arduino-18-version-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
Исходники ниже.
Что я делаю не так?
-
TechMike
- Прорезались зубы
- Сообщения: 247
- Зарегистрирован: Сб дек 15, 2007 23:00:54
- Откуда: Moscow
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Заработал RFM02 на передачу. пришлось в исходнике немного задержки в SPI подкорректировать, самое главное сконфигурировать входы-выходы МК. Для моего включения вот так:
Теперь вопрос в том, почему у меня модуль не включает несущую когда конфигурю Power Management Command, а приходится играться Configuration Setting Command
Пример, инициализирую модуль вот так:
Потом перед началом передачи приходится давай команду
А "выключать" несущую только вот так:
Хотя по примеру обмена с модулем в датащите, нужно для этого использоваться последние два байта Power Management Command
Почему так?
Код: Выделить всё
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
А у меня виснет и при ожидании nIRQ и SDO.
Сделал вариант считки статуса - выдает все время разные числа 1276, 1218, 1091 и т.д.
Сделал вариант считки статуса - выдает все время разные числа 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);
}
}
-
TechMike
- Прорезались зубы
- Сообщения: 247
- Зарегистрирован: Сб дек 15, 2007 23:00:54
- Откуда: Moscow
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
newbart писал(а):А у меня виснет и при ожидании nIRQ и SDO.
Сделал вариант считки статуса - выдает все время разные числа 1276, 1218, 1091 и т.д.
Порт для nIRQ сконфигурирован как вход?