Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь.

 
Опции темы
Непрочитано 10.02.2010, 23:38  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

Я использую эту библиотеку с das-labor.org rfm12lib.zip, в ней реализованы програмный и аппаратный SPI, работа с модулем по преріванию и опросу, контроль несущей и др. подробней в доке.
Внутри архива перевод доки к библиотеки и пример файла rfm12_config.h с програмным SPI.
Проверена работа на atmega8, atmega16, atmega128 в связке с RFM12B (Uпит.5В!), RFM12, TRC102 - работает в режиме трансивера без вопросов.
Прерывание в примере сконфигурировано под Atmega128, для atmega 8,16 замени на:

/**** INTERRUPT VECTOR
* define the interrupt vector settings here
*/


//the interrupt vector
#define RFM12_INT_VECT (INT0_vect)

//the interrupt mask register
#define RFM12_INT_MSK GICR

//the interrupt bit in the mask register

#define RFM12_INT_BIT (INT0)

//the interrupt flag register
#define RFM12_INT_FLAG GIFR

//the interrupt bit in the flag register
#define RFM12_FLAG_BIT (INTF0)

//setup the interrupt to trigger on negative edge

#define RFM12_INT_SETUP() MCUCR |= (1‹‹ISC01)


---------------------------------------------------------------------------------------------
Пример работы с библиотекой:

#include ‹stdlib.h›
#include ‹avr/io.h›
#include ‹util/delay.h› /// задержки
#include "lcd.h"
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹util/delay.h›
#include ‹string.h›
#include ‹avr/sleep.h›
#include "rfm12.h"


char buffer[7];
unsigned char das,a,b,tv;
unsigned int ticker;

int main(void)
{
uint8_t tv[] = "Мы принимаем";

uint8_t *bufcontents;
uint8_t i;

_delay_ms(150);
rfm12_init();

sei();

lcd_init(LCD_DISP_ON);
lcd_clrscr();

rfm12_tx (sizeof(tv), 0, tv);
rfm12_tick();
_delay_ms(250);

while (1)
{
ticker++;

if (b›15)
{ b=0;
rfm12_tx (sizeof(df), 0, df);
rfm12_tick();
}

b++;

itoa( rfm12_rx_status(), buffer, 10);
lcd_puts(buffer);

if (rfm12_rx_status() == STATUS_COMPLETE)
{ b=0;
ticker = 0;
bufcontents = rfm12_rx_buffer();
for (i=1;i‹rfm12_rx_len();i++)
{
lcd_putc(bufcontents[i]);
}
rfm12_rx_clear();
rfm12_tx (sizeof(df), 0, df);
rfm12_tick();
}
das++;
if(das==10)das=0;
df[0]=das;
df[1]=0;

rfm12_tick() //Без этого работает не стабильно
}
}


----------------------------------------------------------------------------------------
Библиотека для работы с дисплеем на контроллере hd44780, добавлен символ батарейки и массив для автоматической перекодировки русских символов hd44780lib.zip

Возникнут вопросы пишите в теме.
Реклама:

Последний раз редактировалось harchenko_pavel; 21.02.2010 в 13:53.
harchenko_pavel вне форума  
Сказали "Спасибо" harchenko_pavel
ciscobsci (27.07.2011)
Непрочитано 11.02.2010, 00:42  
Pavel_xx
Частый гость
 
Регистрация: 07.12.2009
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
Pavel_xx на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

harchenko_pavel,
спасибо за библиотеку и пример кода.
Почитал я прилагающуюся документацию - первое что бросилось в глаза - библиотека под AVR-GCC. А я работаю на CV AVR...
Pavel_xx вне форума  
Непрочитано 11.02.2010, 00:44  
Pavel_xx
Частый гость
 
Регистрация: 07.12.2009
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
Pavel_xx на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

Сообщение от Panchiks Посмотреть сообщение
Частотомер или укв-ка есть?
да есть приемник, работающий в диапазоне СВ. Там на шкале можно накрутить на 433 МГц.
Pavel_xx вне форума  
Непрочитано 11.02.2010, 01:00  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

Сообщение от Pavel_xx Посмотреть сообщение
harchenko_pavel,
спасибо за библиотеку и пример кода.
Почитал я прилагающуюся документацию - первое что бросилось в глаза - библиотека под AVR-GCC. А я работаю на CV AVR...
Здесь пример работы с модулями на CV AVR http://www.obersomer.com/furios-powe...d=77&Itemid=69
harchenko_pavel вне форума  
Непрочитано 11.02.2010, 01:12  
Pavel_xx
Частый гость
 
Регистрация: 07.12.2009
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
Pavel_xx на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

Сообщение от harchenko_pavel Посмотреть сообщение
Здесь пример работы с модулями на CV AVR
вот это то, что я искал!! огромнейшее спасибо!!
Pavel_xx вне форума  
Непрочитано 26.04.2010, 16:59  
TVN66
Прохожий
 
Регистрация: 13.10.2009
Сообщений: 6
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
TVN66 на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

Всем привет! На днях тоже решил подключиться к сообществу пользователей TRC-101, TRC-102. Одного не могу понять: обязательно ли выключать приемник при передаче и передатчик при приеме. Тогда где же тут декларируемый дуплекс? Я думал - сделаю прием на одном канале, а передачу на другом - и вот оно - полный дуплекс! А во всех имеющихся у меня примерах TRC переключаются на прием или передачу. Если кто знает, ответьте, пожалуйста!
TVN66 вне форума  
Непрочитано 26.04.2010, 17:09  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

А где там дуплекс "задекларирован" ?
В подобных трансиверах дуплекс в принципе невозможен, т.к. для этого нужны две независимые радиочасти и два синтезатора, кроме того их еще и развязать друг от друга надо, что в однокристальных решениях весьма затруднительно.
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 26.04.2010, 19:38  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

TVN66, модуль TRC102 не поддерживает дуплексный режим. Какая стоит перед Вами задача, может и симплекса хватит?
harchenko_pavel вне форума  
Непрочитано 26.04.2010, 20:03  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
Сообщение Re: Однокристальные трансиверы TRC101 от RFM...

Пример работы с библиотекой:

Модуль работающий "Мастером"

#include ‹stdlib.h›
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹inttypes.h›
#include "rfm12.h"
#include "lcd.h"


char buffer[7];

int main(void)
{
uint8_t tv[] = "Мы принимаем";

uint8_t *bufcontents;
uint8_t i, cnt;

rfm12_init();

sei();

lcd_init(LCD_DISP_ON);
lcd_clrscr();

while (rfm12_rx_status() != STATUS_COMPLETE) //Синхронизация с ведомым модулем
{
if (!cnt++)
{
rfm12_tx (sizeof(tv), 0, tv);
rfm12_tick();
}
}

while (1)
{
if (!cnt++)
{
rfm12_tx (sizeof(tv), 0, tv);
rfm12_tick();
}
itoa( rfm12_rx_status(), buffer, 10);
lcd_puts(buffer);
if (rfm12_rx_status() == STATUS_COMPLETE)
{
cnt = 0;
bufcontents = rfm12_rx_buffer();
for (i=1;i‹rfm12_rx_len();i++) lcd_putc(bufcontents[i]);
}
}




Модуль работающий "Второстепенным"

#include ‹stdlib.h›
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹inttypes.h›
#include "rfm12.h"
#include "lcd.h"


char buffer[7];

int main(void)
{
uint8_t tv[] = "Мы принимаем";

uint8_t *bufcontents;
uint8_t i;

rfm12_init();

sei();

lcd_init(LCD_DISP_ON);
lcd_clrscr();

while (1)
{
itoa( rfm12_rx_status(), buffer, 10);
lcd_puts(buffer);
if (rfm12_rx_status() == STATUS_COMPLETE)
{
bufcontents = rfm12_rx_buffer();
for (i=1;i‹rfm12_rx_len();i++) lcd_putc(bufcontents[i]);
rfm12_tx (sizeof(tv), 0, tv);
rfm12_tick();
}
}

На скорости 38400 получил уверенную двустороннюю связь на расстоянии 250м, дополнительно проверял контрольную сумму

Последний раз редактировалось harchenko_pavel; 26.04.2010 в 22:12.
harchenko_pavel вне форума  
Непрочитано 25.08.2010, 16:34  
phantom2010
Прохожий
 
Регистрация: 03.03.2009
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
phantom2010 на пути к лучшему
По умолчанию Re: Однокристальные трансиверы TRC101 от RFM...

люди можете рассказать как подключить trc101 к mrc40 и как реализовать приём-передачу программно на mrc40?
phantom2010 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однокристальные трансиверы CC2500 (СС1100) kassiopay Микроконтроллеры, АЦП, память и т.д 2 07.06.2009 19:08


Часовой пояс GMT +4, время: 20:15.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot