RF модули от HOPERF RFM01 & RFM02
Re: RF модули от HOPERF RFM01 & RFM02
Здравствуйте!
Спасибо за информацию, размещенную в этой теме! В интернете немного информации по этим приемникам и передатчикам.
Мне удалось настроить передачу информации от RFM02 к RFM01. Но есть одна небольшая проблема. Если попробовать начать передачу сразу после включения питания, то передача зависает в тот момент, где нужно ждать перехода от лог.1 к лог.0 на ножке nIRQ. Если потом перезапустить микроконтроллер, то будет тоже самое. А вот если сначала начать передачу(которая тут же зависнет), а потом перезапустить МК, а потом заново начать передачу, то все будет в порядке, RFM02 будет генерировать импульсы на nIRQ, а другой МК успешно примет информацию с RFM01. Передачу я запускаю "вручную", т.е. не с помощью соответствующей команды 0xC6, а как в примере от Hope RF(RF02_code).
Никто не сталкивался с такой проблемой?
Добавлено: ну вообще какая-то ерунда. Только что передача успешно проходила сразу после включения питания, а через нескольких включений-выключений снова приходилось перезапускать микроконтроллер.
Спасибо за информацию, размещенную в этой теме! В интернете немного информации по этим приемникам и передатчикам.
Мне удалось настроить передачу информации от RFM02 к RFM01. Но есть одна небольшая проблема. Если попробовать начать передачу сразу после включения питания, то передача зависает в тот момент, где нужно ждать перехода от лог.1 к лог.0 на ножке nIRQ. Если потом перезапустить микроконтроллер, то будет тоже самое. А вот если сначала начать передачу(которая тут же зависнет), а потом перезапустить МК, а потом заново начать передачу, то все будет в порядке, RFM02 будет генерировать импульсы на nIRQ, а другой МК успешно примет информацию с RFM01. Передачу я запускаю "вручную", т.е. не с помощью соответствующей команды 0xC6, а как в примере от Hope RF(RF02_code).
Никто не сталкивался с такой проблемой?
Добавлено: ну вообще какая-то ерунда. Только что передача успешно проходила сразу после включения питания, а через нескольких включений-выключений снова приходилось перезапускать микроконтроллер.
- Вложения
-
- Transmitter.c
- Код передатчика на Си (WinAVR)
- (4.07 КБ) 368 скачиваний
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: RF модули от HOPERF RFM01 & RFM02
вот и я добрался до модулей(rfm01, rfm02) теперь у меня проблема, а она такова, все вроде сделал, по примерам, с оф.сайта, запустил, все вроде нормуль, тока не работает, а на приемнике valid data indicator постоянно моргает в чем проблема не соображу никак
- zvukovik
- Встал на лапы
- Сообщения: 140
- Зарегистрирован: Вт авг 03, 2010 15:21:20
- Откуда: Екатеринбург
Re: RF12 RFM12 RFM12B HopeRF - кто-то реально разобрался?
купил эти модули, взял код отсюда http://robot-develop.org/archives/2621 , ничего пока не заработало, почему осцил на кварцах показывает синус, частотой около 30кГц?
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: RF модули от HOPERF RFM01 & RFM02
Мучаю два RFM12B методом постоянного мониторинга регистра статуса все работает отлично. Но я хочу сделать по прерываниям вывод FFIT подключил на внешнее прерывание, настроеное по заднему фронту, в обработчике которого выставляю флаг и в основном цикле жду. Так вот в режиме постоянного мониторинга регистра статуса прерывание срабатывает (мигнет светодиод), а вот если ждать флага то прерывание не наступает вообще, я уже и так и этак подскажите куда копать?
P.S. и еще подскажите как его усыплять для понижения потребления энергии?
P.P.S. Разобрался сам, всем спасибо.
P.S. и еще подскажите как его усыплять для понижения потребления энергии?
P.P.S. Разобрался сам, всем спасибо.
«И всё-таки она вертится!»
- don_slavone
- Открыл глаза
- Сообщения: 65
- Зарегистрирован: Ср май 30, 2012 11:02:42
- Откуда: Харьков
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Добрый день! Я пытаюсь разобраться с этими модулями но никак не получается. пробовал код выложенный позже для брелка, но на контроллере mega48, не хочет работать. Есть ли реально рабочий вариант кода для 434 Мгц, хочу разобраться.
электроКот 
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: RF модули от HOPERF RFM01 & RFM02
don_slavone писал(а):Добрый день! Я пытаюсь разобраться с этими модулями но никак не получается. пробовал код выложенный позже для брелка, но на контроллере mega48, не хочет работать. Есть ли реально рабочий вариант кода для 434 Мгц, хочу разобраться.
Во вложении код, который мне помог. А контроллер любой может быть, у меня работает на mega8 и mega88.
- Вложения
-
- rfm12b_and_avr__quick_start.pdf
- (100.59 КБ) 996 скачиваний
«И всё-таки она вертится!»
- don_slavone
- Открыл глаза
- Сообщения: 65
- Зарегистрирован: Ср май 30, 2012 11:02:42
- Откуда: Харьков
- Контактная информация:
-
SergeiSam
- Первый раз сказал Мяу!
- Сообщения: 24
- Зарегистрирован: Вс фев 18, 2007 14:09:34
- Откуда: Воронеж
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Всем доброго времени суток!
Помогите теперь мне, ткните пальцем, носом, только не бейте )))
У меня 2 Атмеги8 и 2 RFM12B-433 хочу сделать между ними передачу.
Хотя бы одностороннюю. Бился бился...
Можете показать 100% рабочий код на прием и передачу с каждой стороны?
Я так понял, что вот этот код рабочий?
Помогите теперь мне, ткните пальцем, носом, только не бейте )))
У меня 2 Атмеги8 и 2 RFM12B-433 хочу сделать между ними передачу.
Хотя бы одностороннюю. Бился бился...
Можете показать 100% рабочий код на прием и передачу с каждой стороны?
Код: Выделить всё
Код для работы с RFM12. Проверено с мегой32, тини24, тини2313.
Приём:
Код:
#define DDR_SS DDRD
#define DDR_SCK DDRC
#define DDR_MOSI DDRD
#define PORT_SS PORTD
#define PORT_SCK PORTC
#define PORT_MOSI PORTD
#define PIN_MISO PINC
#define PIN_IRQ PIND
#define SS 6
#define SCK 0
#define MOSI 7
#define MISO 1
#define IRQ 2
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
unsigned int RFXX_WRT_CMD(unsigned int aCmd) //Отправить команду
{
unsigned char i;
unsigned int temp=0;
PORT_SCK&=~(1<<SCK);
PORT_SS&=~(1<<SS);
for(i=0;i<16;i++)
{
if(aCmd&0x8000) PORT_MOSI|=(1<<MOSI);
else PORT_MOSI&=~(1<<MOSI);
PORT_SCK|=(1<<SCK);
temp<<=1;
if(PIN_MISO&(1<<MISO)) temp|=0x0001;
PORT_SCK&=~(1<<SCK);
aCmd<<=1;
}
PORT_SS|=(1<<SS);
return(temp);
}
void RF12_INIT(void) //Инициализация
{
DDR_SS|=(1<<SS);
DDR_SCK|=(1<<SCK);
DDR_MOSI|=(1<<MOSI);
PORT_SS|=(1<<SS);
RFXX_WRT_CMD(0x80D8);//EL,EF,433band,12.5pF
RFXX_WRT_CMD(0x82D9);//!er,!ebb,ET,ES,EX,!eb,!ew,DC
RFXX_WRT_CMD(0xA640);//A140=430.8MHz
RFXX_WRT_CMD(0xC647);//4.8kbps
RFXX_WRT_CMD(0x94A0);//VDI,FAST,134kHz,0dBm,-103dBm
RFXX_WRT_CMD(0xC2AC);//AL,!ml,DIG,DQD4
RFXX_WRT_CMD(0xCA81);//FIFO8,SYNC,!ff,DR
RFXX_WRT_CMD(0xC483);//@PWR,NO RSTRIC,!st,!fi,OE,EN
RFXX_WRT_CMD(0x9850);//!mp,9810=30kHz,MAX OUT
RFXX_WRT_CMD(0xE000);//NOT USE
RFXX_WRT_CMD(0xC800);//NOT USE
RFXX_WRT_CMD(0xC040);//1.66MHz,2.2V
}
int main ()
{
//Внешнее прерывание от INT0, к которому цепляем nIRQ
MCUCR|=(1<<ISC01);
GICR|=(1<<INT0);
sei();
//Инициализация FRM12
RF12_INIT();
//Включаем fifo буфер и читаем статус регистр
RFXX_WRT_CMD(0xCA83);
RFXX_WRT_CMD(0x0000);
}
ISR(INT0_vect) //обработчик внешнего прерывания
{
//тут хаваем данные с RFM12
data=((RFXX_WRT_CMD(0xB000))&0x00FF);
}
Передача:
Код:
void RF12_SEND(unsigned char aByte)
{
while(!(RFXX_WRT_CMD(0x0000)&0x8000));
RFXX_WRT_CMD(0xB800+aByte);
}
int main ()
{
//Инициализация FRM12
RF12_INIT();
RFXX_WRT_CMD(0xCA81);
RFXX_WRT_CMD(0x0000);//read status register
RFXX_WRT_CMD(0x8239);//!er,!ebb,ET,ES,EX,!eb,!ew,DC
RF12_SEND(0xAA);//PREAMBLE
RF12_SEND(0xAA);//PREAMBLE
RF12_SEND(0xAA);//PREAMBLE
RF12_SEND(0x2D);//SYNC HI BYTE
RF12_SEND(0xD4);//SYNC LOW BYTE
RF12_SEND(data); //тут передаём что хотим
RF12_SEND(0xAA);//DUMMY BYTE
RF12_SEND(0xAA);//DUMMY BYTE
RF12_SEND(0xAA);//DUMMY BYTE
}
В данном случаи подключения контролера к трансиверу следующее?
контрол Трансивер
SS (PD6) -> SS
SCK (PC0) -> SCK
MOSI (PD7) -> SDI ???
MISO (PC1) -> SDO???
PD2 -> iRQЯ так понял, что вот этот код рабочий?
Re: RF модули от HOPERF RFM01 & RFM02
Я тоже купил пару модулей rfm12bs, решил питать и модуль и МК от 3,3 в тогда вопрос- а если я хочу перепрошить МК мне сделать перемычку на линии питания модуля и этого хватит?
По схеме подключения: В документе rfm12b_and_avr__quick_start.pdf для attiny2313 схема верна?
Существует вообще библиотека на этот модуль я тут нашёл немного примеров...http://robot-develop.org/archives/2621
Я конечно сейчас до позднего вечера разберусь только не хотелось бы убить модуль.
А к ant значит можно ~170мм провод припаять?
По схеме подключения: В документе rfm12b_and_avr__quick_start.pdf для attiny2313 схема верна?
Существует вообще библиотека на этот модуль я тут нашёл немного примеров...http://robot-develop.org/archives/2621
Я конечно сейчас до позднего вечера разберусь только не хотелось бы убить модуль.
А к ant значит можно ~170мм провод припаять?
-
Мишаня86
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Чт окт 20, 2011 13:28:56
- Откуда: Санкт-Петербург
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Добрый день!
Вот уже неделю пытаюсь соединить между собой RFM12B-433S1. Код передалал из Меги8 на PIC16F873 и PIC16F887, то что под рукой есть. Запускаю передатчик, в COM- порт в цикле выдает "sende..." светодиод мерцает, ток потребления всей штуковины прыгает до 60мА при 5В. Все линии SPI шевелятся.
Запускаю приемник, SPI виснет. Один раз моргает светодиод, в СОМ-порту тишина.
Оба проекта прилагаю в архивчиках. Помогите разобраться, ткните пальцем, все ж я больше железячник нежели программер...
Вот уже неделю пытаюсь соединить между собой RFM12B-433S1. Код передалал из Меги8 на PIC16F873 и PIC16F887, то что под рукой есть. Запускаю передатчик, в COM- порт в цикле выдает "sende..." светодиод мерцает, ток потребления всей штуковины прыгает до 60мА при 5В. Все линии SPI шевелятся.
Запускаю приемник, SPI виснет. Один раз моргает светодиод, в СОМ-порту тишина.
Оба проекта прилагаю в архивчиках. Помогите разобраться, ткните пальцем, все ж я больше железячник нежели программер...
- Вложения
-
- progect2.rar
- (106.62 КБ) 216 скачиваний
-
- progect1.rar
- (133.41 КБ) 198 скачиваний
-
Мишаня86
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Чт окт 20, 2011 13:28:56
- Откуда: Санкт-Петербург
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Немного посидев и детально поразмыслив, понял, что один модуль все же мертв. Либо я его засадил, либо уже с магазина пришел такой..в общем заказал новый, буду биться дальше! 
- RoboC
- Мудрый кот
- Сообщения: 1795
- Зарегистрирован: Ср апр 04, 2012 09:55:53
- Откуда: Северодонецк
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
Регистр статуса можно считывать без инициализации RFM01?
1.Опустил SDI
2.Опустил nSEL
3.Поднял SCK жду нажатия кнопки
4.Смотрю осциллографом SDO
5.наж кнопку опустил SCK и в п. 3
После 4 SCK на SDO появляется мусор или меандр(логически объяснить почему так - не могу).
Извратился с кнопкой, потому что Регистр статуса читается все время по разному.
Кто нить сталкивался?
RFM02 взлетел сразу.
1.Опустил SDI
2.Опустил nSEL
3.Поднял SCK жду нажатия кнопки
4.Смотрю осциллографом SDO
5.наж кнопку опустил SCK и в п. 3
После 4 SCK на SDO появляется мусор или меандр(логически объяснить почему так - не могу).
Извратился с кнопкой, потому что Регистр статуса читается все время по разному.
Кто нить сталкивался?
RFM02 взлетел сразу.
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
-
Мишаня86
- Первый раз сказал Мяу!
- Сообщения: 21
- Зарегистрирован: Чт окт 20, 2011 13:28:56
- Откуда: Санкт-Петербург
- Контактная информация:
Re: RF модули от HOPERF RFM01 & RFM02
RoboC писал(а):Регистр статуса можно считывать без инициализации RFM01?
1.Опустил SDI
2.Опустил nSEL
3.Поднял SCK жду нажатия кнопки
4.Смотрю осциллографом SDO
5.наж кнопку опустил SCK и в п. 3
После 4 SCK на SDO появляется мусор или меандр(логически объяснить почему так - не могу).
Извратился с кнопкой, потому что Регистр статуса читается все время по разному.
Кто нить сталкивался?
Бился с похожей темой, статус считывается по-разному! но в большинстве значения повторяются! По идее, после старта и считывания статуса должен быть только бит Power-on-reset. Но у меня иногда стоял бит высокий RSSI, а после инициализации еще ездили биты ACF регистра.
