реклама на сайте
подробности

 
 
> RFM01-RFM02 от Hope Microelectronics Есть несколько вопросов..., Кто нибудь включал?
Григорий2000
сообщение Feb 21 2009, 22:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Включил передатчик, заставил передавать периодически пакет. Пакет передается(TV -Tuner принимает что-то). С приемника снимаю сигнал RSSI в нужном виде(огибающая длительности пакета) - то есть уже близко))).
Но не могу заставить принять именно данные - не формирует сигнал прерывания по заполнению буфера. Возможно неправильно настроил параметры передатчика/приемника. Делал как в примере за исключением команд передатчика 0xD040 (так как ненашел на нее описания ) вместо нее 0xD240, и скорость взял еще ниже(0xC88F). и соответственно только скорость в приемнике.
итак RX
SendWordRF(0x0000);
SendWordRF(0x898A);//433BAND,134kHz
SendWordRF(0xA640);//434MHz
SendWordRF(0xC8С7);//2.4kbps
SendWordRF(0xC69B);//AFC setting
SendWordRF(0xC42A);//Clock recovery manual control,Digital filter,DQD=4
SendWordRF(0xC260);//output 2MHz
SendWordRF(0xC080);
SendWordRF(0xCE84);//use FIFO
SendWordRF(0xCE87);
SendWordRF(0xC081);//OPEN RX


TX
SendWordRF(0xCC00);//Status Register read command - clear last service interrupt...
SendWordRF(0x8B61);//433BAND,+-60kHz, 2MHzOut
SendWordRF(0xA640);//434MHz
SendWordRF(0xD240);//(DRate/2)-было0xD040 - max DataRate 19.2
SendWordRF(0xC88F);//2.4kbps
SendWordRF(0xC220);//enable bit sync //
SendWordRF(0xC001);//CLOSE ALL
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Mad-man
сообщение Jun 27 2010, 11:43
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Блин, пропали все ((( Зат**ся с этим RF01 ничего не выходит, перепаял антенку,

теперь командой SendWordRF(0x0000);
вычитываются нолики (( молчит, гадюка, как партизан...
похоже что даже инициализация не проходит..

У меня еще 2 вороса

1. Обязательно ли использовать кристал на 10Мгц на avr? У мня кристал на 3.57Мгц. Как я понял чип работает в слейв режиме и ему должно быть фиолетово с какой частотой приходит SCK?
2. Нужно ли использовать ногу DATA? Она на схеме подтянута к VCC, а в коде поднимается
командой DDRB |=(1<<RFXX_DATA); сразу после инициализации чипа!

Сообщение отредактировал Mad-man - Jun 27 2010, 11:45
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jun 28 2010, 09:12
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Mad-man @ Jun 27 2010, 15:43) *
Блин, пропали все ((( Зат**ся с этим RF01 ничего не выходит, перепаял антенку,

Не расстраивайтесь раньше времени, сейчас разберемся.

Цитата(Mad-man @ Jun 27 2010, 15:43) *
1. Обязательно ли использовать кристал на 10Мгц на avr?

Нет конечно. Я вообще с внутренними RC использовал.

Цитата(Mad-man @ Jun 27 2010, 15:43) *
2. Нужно ли использовать ногу DATA? Она на схеме подтянута к VCC, а в коде поднимается
командой DDRB |=(1<<RFXX_DATA); сразу после инициализации чипа!

Нет, если используется FIFO. В этом режиме все управление/обмен данными идет через SPI.
В коде либо не используется FIFO, либо под RFXX_DATA подразумевается MOSI.
Я с RFM01 не закончил, появились более приоритетные дела. Но связь с RFM02 была.
Инициализация RFM01 была такая
Код
#define        RFM01_BAUD_2400        ((uint8_t)((344827.58/2400)+0.5)-1)
#define        RFM01_BAUD_4800        ((uint8_t)((344827.58/4800)+0.5)-1)
#define        RFM01_BAUD_9600        ((uint8_t)((344827.58/9600)+0.5)-1)
#define        RFM01_BAUD_19200    ((uint8_t)((344827.58/19200)+0.5)-1)
#define        RFM01_BAUD_38400    ((uint8_t)((344827.58/38400)+0.5)-1)
#define        RFM01_BAUD_115200    ((uint8_t)((344827.58/115200)+0.5)-1)

#define RFM01FREQ(freq)    ((uint16_t)((freq-430.0)/0.0025))

#define        RFM01_CONFIG        0x8000
    #define    RFM01_BANDWIDTH_400KHZ            (0x01<<1)
    #define    RFM01_BANDWIDTH_340KHZ            (0x02<<1)
    #define    RFM01_BANDWIDTH_270KHZ            (0x03<<1)
    #define    RFM01_BANDWIDTH_200KHZ            (0x04<<1)
    #define    RFM01_BANDWIDTH_134KHZ            (0x05<<1)
    #define    RFM01_BANDWIDTH_67KHZ            (0x06<<1)

    #define    RFM01_BAND_315MHZ                (0x00<<11)
    #define    RFM01_BAND_433MHZ                (0x01<<11)
    #define    RFM01_BAND_868MHZ                (0x02<<11)
    #define    RFM01_BAND_915MHZ                (0x03<<11)

    #define    RFM01_CONFIG_DC                    (0x01<<0)
    #define    RFM01_CONFIG_EX                    (0x01<<8)

#define        RFM01_SET_FREQ        0xA000
#define        RFM01_RX_SETTING    0xC000
#define        RFM01_SET_BAUDRATE    0xC800
#define        RFM01_FIFO_MODE        0xCE00
    
#define        RFM01_DATA_FILTER    0xC400
#define        RFM01_AFC_SETTING    0xC600


Код
RFM01_WrCommand(0x0000);
RFM01_WrCommand(RFM01_CONFIG | RFM01_BAND_433MHZ | RFM01_BANDWIDTH_134KHZ | RFM01_CONFIG_EX);
RFM01_WrCommand(RFM01_SET_FREQ | RFM01FREQ(434.00));    // 434
RFM01_WrCommand(RFM01_SET_BAUDRATE | RFM01_BAUD_4800);                        // 4800
RFM01_WrCommand(RFM01_AFC_SETTING | 0x0097);                        // AFC // 0xC69B
RFM01_WrCommand(RFM01_DATA_FILTER | 0x002A);                        // filter
RFM01_WrCommand(0xC240);                        // 2Мгц, просто для контроля
RFM01_WrCommand(RFM01_RX_SETTING | 0x0080);
RFM01_WrCommand(RFM01_FIFO_MODE | 0x0084);                        //  FIFO Off
RFM01_WrCommand(RFM01_FIFO_MODE | 0x0087);                        //  FIFO On

Потом в коде включение приема
Код
    RFM01_WrCommand(RFM01_RX_SETTING | 0x0081);                        //
    RFM01_WrCommand(RFM01_FIFO_MODE | 0x0088);                        //
    RFM01_WrCommand(RFM01_FIFO_MODE | 0x008B);                        //  

    cli();
    MCUCR  &= ~((1<<ISC11)|(1<<ISC10));    // INT1 - low level interrupt
    GICR |= (1<<INT1);                    // INT1 interrupt enable
    GIFR = (1<<INT1);                    // clear interrupt flag INT1
    sei();

nIRQ подключен к INT1 8-ой меги. Тут есть перекрытие инициализации, но это рабочая версия, не законченная и не причесанная. Так что - как есть smile.gif
Go to the top of the page
 
+Quote Post
Mad-man
сообщение Jun 28 2010, 10:38
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Цитата(Qwertty @ Jun 28 2010, 13:12) *
Не расстраивайтесь раньше времени, сейчас разберемся.



Спасибо, я сегодня ночью копался с RF01 3 раза перепроверил все выходы и входы, спаял второй приемник
на каком-то форуме нашел что нужно ожидать POR около 1-2 сек и задержки перед инициализацией

сделал гиганские задержки начали сыпаться данные в режиме полинга rolleyes.gif НУ ХОТЬ УЖЕ ЧТО-ТО!!

кстати оказалось что купленный пульт KEYFOB на 433 (на базе HCS301) вообще не шлет данных! maniac.gif
я его разобрал и если прижимать пальцем землю и клеммы (к которым нужно резисторы/конденсаторв подпаивать что-ли?? в мануале на него написано что серийный номер - программируется или "подпаивается"? rolleyes.gif )
и одновременно жать кнопку - отправляется данные. короче с пультом разбираться нужно

nIRQ пока не дергается но думаю получится - эта тема уже обсуждалась и здесь и на радиокоте.


Кстати нашел библиотечку для RF01 (FR12b даже есть) может кому будет полезна

http://myfablab.wordpress.com/2010/06/22/r...18-version-0-1/


сейчас данные бьются видимо из-за больших задержек - но все равно я доволен как мытый слон biggrin.gif

Сообщение отредактировал Mad-man - Jun 28 2010, 10:44
Go to the top of the page
 
+Quote Post
ZyBEX
сообщение Jun 29 2010, 22:56
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279



Цитата(Mad-man @ Jun 28 2010, 14:38) *
на каком-то форуме нашел что нужно ожидать POR около 1-2 сек и задержки перед инициализацией

Это не только на RFM01/02. Буквально неделю назад точно также обжегся на модулях RFM31/43. По незнанию пренебрег задержками после включения модуля и половина команд инициализации улетало в пустоту.
Go to the top of the page
 
+Quote Post
Mad-man
сообщение Jun 29 2010, 23:09
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Цитата(ZyBEX @ Jun 30 2010, 02:56) *
Это не только на RFM01/02. Буквально неделю назад точно также обжегся на модулях RFM31/43. По незнанию пренебрег задержками после включения модуля и половина команд инициализации улетало в пустоту.


Да, засада еще та)) Убрал задержки, сделал POR 500ms, включил прерывания, пока дышит)

Ща только перешил eeprom на брелке с hcs301 (прошился 4в VCC хотя в даташите говорят VCC должно быть 5в +- 10%), завтра буду вечером пробовать их подружить...массив с верификацией сошелся с записываемым rolleyes.gif вроде массив обнулил перед верификацией laughing.gif что-то отдельно вычитать eeprom c hcs301 не выходит...может это для защиты сделано.

смущает только что брелок (hcs301) кажется работает на 5кбод, а баудрейт, который можно выставить на RF01
4,8кбод
RFXX_WRT_CMD(0xC800 | 0b10010000); // BR = 10000000/ ((8+1)*29*(1+cs*7)) = 4,789 kbps

или 5,3кбод
RFXX_WRT_CMD(0xC800 | 0b10010000); // BR = 10000000/ ((9+1)*29*(1+cs*7)) = 5,3ххх kbps

cranky.gif

Сообщение отредактировал Mad-man - Jun 29 2010, 23:16
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jun 30 2010, 10:33
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Mad-man @ Jun 30 2010, 03:09) *
Да, засада еще та)) Убрал задержки, сделал POR 500ms, включил прерывания, пока дышит)

У меня 100мС и все работает стабильно. Причем задержку специально не делал, просто индикатор инициализируется первым, вот на время его инициализации задержка и получилась.
Цитата(Mad-man @ Jun 30 2010, 03:09) *
Ща только перешил eeprom на брелке с hcs301 (прошился 4в VCC хотя в даташите говорят VCC должно быть 5в +- 10%), завтра буду вечером пробовать их подружить...

А зачем hcs301? Они с RFM01/RFM02 дружить не будут, так как рассчитаны на амплитудную модуляцию. Да и кодируют посылку не битовым потоком, а импульсами разной ширины. Если в системе есть микроконтроллер, а для инициализации RFM он все равно нужен, то Keeloq можно прямо в нем закодировать, hcs301 это пятое колесо к телеге. Или задача принимать на RFM01 сигнал от брелка с hcs301? Тогда ничего не получится, амплитудная модуляция с частотной не дружат. А в брелке именно амплитудная.
Go to the top of the page
 
+Quote Post
Mad-man
сообщение Jun 30 2010, 11:45
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 5-11-06
Пользователь №: 21 995



Цитата(Qwertty @ Jun 30 2010, 14:33) *
У меня 100мС и все работает стабильно. Причем задержку специально не делал, просто индикатор инициализируется первым, вот на время его инициализации задержка и получилась.

А зачем hcs301? Они с RFM01/RFM02 дружить не будут, так как рассчитаны на амплитудную модуляцию. Да и кодируют посылку не битовым потоком, а импульсами разной ширины. Если в системе есть микроконтроллер, а для инициализации RFM он все равно нужен, то Keeloq можно прямо в нем закодировать, hcs301 это пятое колесо к телеге. Или задача принимать на RFM01 сигнал от брелка с hcs301? Тогда ничего не получится, амплитудная модуляция с частотной не дружат. А в брелке именно амплитудная.


брелок мне нужен не для контроллера. брелок сам по себе
я хочу принимать от него посылку на RF01 и по этой посылке включать/отключать реле
kelog по сути тоже не нужен - из его пакета мне хватит фиксированной части (где серийный номер)
просто брелков со статическим кодом не удалось купить

а какие брелки можно подружить с RF01?


вот этот подойдет?

http://www.aktivsb.ru/prod-2456.html

Сообщение отредактировал Mad-man - Jun 30 2010, 12:08
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jun 30 2010, 12:37
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Mad-man @ Jun 30 2010, 15:45) *
я хочу принимать от него посылку на RF01 и по этой посылке включать/отключать реле

Тогда Вам нужен другой приемник. Сверхрегенератор - по типу как в старых автосигнализациях.

Цитата(Mad-man @ Jun 30 2010, 15:45) *
а какие брелки можно подружить с RF01?
вот этот подойдет?

Скорее всего никакие. Обычно брелок стараются сделать дешевле в ущерб качеству. В таких брелках передатчик - всего один транзистор и хорошо если частота стабилизирована резонатором на ПАВ. Часто вообще LC контур. Ну и модуляция сделана амплитудная 100% - либо излучает либо нет. RFM01 куда более качественная система и возможностей у нее намного больше.
Но Вам это все не надо - берите что то типа RR8-433 - http://www.terraelectronica.ru/pdf/TELC/RR8-433.pdf или http://www.terraelectronica.ru/pdf/TELC/RR3-433.pdf
Они смогут работать с брелком на hcs301 и программировать их не нужно. Там из интерфейса один выход. smile.gif
Можете вообще самостоятельно приемник собрать - http://vrtp.ru/index.php?act=categories&am...mp;article=1129
или - http://vrtp.ru/index.php?act=categories&am...mp;article=1418 , но надо немного перестроить по частоте.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Григорий2000   RFM01-RFM02 от Hope Microelectronics Есть несколько вопросов...   Feb 21 2009, 22:27
- - Григорий2000   Вопрос снят)) Дело было не в бобине...   Feb 24 2009, 11:36
|- - Qwertty   Цитата(Григорий2000 @ Feb 24 2009, 14:36)...   Mar 5 2009, 21:54
- - Григорий2000   У меня по невнимательности осталось две подпрограм...   Mar 5 2009, 22:03
- - Qwertty   Спасибо! У меня правда уже задышало. Обновил п...   Mar 6 2009, 00:08
- - Григорий2000   Нет непроверял еще, а антенна - кусок провода(окол...   Mar 6 2009, 05:38
- - Qwertty   Четвертьволновой штырь имеет куда большую эффектив...   Mar 6 2009, 14:00
|- - Mad-man   Всем привет, инициализирую чип RFM01 как китайско...   Jun 26 2010, 17:13
|- - Mad-man   Цитата(Qwertty @ Jun 30 2010, 16:37) Тогд...   Jun 30 2010, 13:51
|- - Qwertty   Цитата(Mad-man @ Jun 30 2010, 17:51)...   Jun 30 2010, 15:35
- - Олежик   Тогда может передатчик тоже самому сделать ? Сразу...   Jun 30 2010, 16:23
|- - Mad-man   Цитата(Олежик @ Jun 30 2010, 20:23) Тогда...   Jun 30 2010, 16:56
|- - Qwertty   Цитата(Mad-man @ Jun 30 2010, 20:56)...   Jun 30 2010, 17:45
- - нечитатель   Из восьми приёмников RFM01 один "плохо ловит...   Jul 2 2011, 06:19
- - Михаил86   Добрый день! Вот уже неделю пытаюсь соединить...   Nov 29 2012, 11:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 15:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016