TR24A
По вашим экспериментам возможна ли бесперебойная связь на расстоянии около 60-70 метров?
- Реклама
по моим - нет, но есть другие результаты. гляди здеть коменты http://bsvi.pp.ua/drajver-modulya-tr24a ... a-em198810
Поработал с TR24A. Результат меня удовлетворяющий получил, хотя полного понимания работы модуля до сих пор нет (очень мало описаний). Для интересующихся выкладываю свой проект. Схема и плата сделаны в P-CAD 2006, программа на ассемблере в AvrStudio. В настоящее время через два таких устройства читаю данные со счетчика эл.энергии в пределах своей квартиры. Для перехода на более дальние расстояния купил два TR24P, буду пробовать. Считаю, что перспектива у TR24 в области домашней автоматизации есть.
- Сообщения: 44
- Зарегистрирован: Пт апр 04, 2008 22:51:33
- Сообщения: 93
- Зарегистрирован: Чт янв 08, 2009 15:50:04
хотел бы узнать получилось ли двух сторонняя связь и если да то выложите схемку в графических файлах
- Реклама
- Сообщения: 1
- Зарегистрирован: Чт авг 26, 2010 10:33:30
Здравствуйте! А никто случайно не пользовал транссиверы из той же сериии TR24F, по распиновке выводов самого модуля немного непонятно.
PIN 1 +VCC
PIN 2 PSB Power saving or power down
PIN 3 NC
PIN 4 SPIEN Digital input
PIN 5 TRSDAT Digital input/output
PIN 6 TRSCLK Digital input
PIN 7 TRRDY Digital input
PIN 8 DRSSI Digital output
PIN 9 TRINT Digital output
PIN 10 GND
SPI же 4-х проводная шина? Я вижу только три(SPIEN,TRSDAT,TRSCLK). Или я чего-то не понимаю и здесь какое-то хитрое управление?
Может подскажете,если есть знающие люди?
PIN 1 +VCC
PIN 2 PSB Power saving or power down
PIN 3 NC
PIN 4 SPIEN Digital input
PIN 5 TRSDAT Digital input/output
PIN 6 TRSCLK Digital input
PIN 7 TRRDY Digital input
PIN 8 DRSSI Digital output
PIN 9 TRINT Digital output
PIN 10 GND
SPI же 4-х проводная шина? Я вижу только три(SPIEN,TRSDAT,TRSCLK). Или я чего-то не понимаю и здесь какое-то хитрое управление?
Может подскажете,если есть знающие люди?
Исходники на C++ для работы с tr24 можно скачать здесь: http://robot-develop.org/archives/984. А здесь есть реализация протокола для tr24, гарантирующая доставку пакета: http://robot-develop.org/archives/1621.
- Сообщения: 2
- Зарегистрирован: Вс мар 06, 2011 16:43:14
Про TR24F.
Данный трансивер не имеет ничего общего с TR24A, разве что название
В его основе микруха ARF2496K (http://www.datasheet4u.net/download.php?id=677356) Даташит вполне внятный. Никакой хитрой инициализации не требуется. У меня сразу пошёл обмен
Однако со странностями
Согласно даташита размер пакета надо задавать до обмена и на стороне передатчика и на стороне приёмника, но засылать в передатчик требуется на байт больше, иначе последний байт теряется
. Приёмник ещё веселей посылка приходит в таком виде: 00+переданные_байты+два_старших_бита_последнего_байта+0000 почему так
? - а Кот его знает.
Но главное работает - а лишние биты отрезать - не вопрос.
Дальность не проверял - мне не надо
Данный трансивер не имеет ничего общего с TR24A, разве что название
В его основе микруха ARF2496K (http://www.datasheet4u.net/download.php?id=677356) Даташит вполне внятный. Никакой хитрой инициализации не требуется. У меня сразу пошёл обмен
Однако со странностями
Согласно даташита размер пакета надо задавать до обмена и на стороне передатчика и на стороне приёмника, но засылать в передатчик требуется на байт больше, иначе последний байт теряется
Но главное работает - а лишние биты отрезать - не вопрос.
Дальность не проверял - мне не надо
- Сообщения: 1
- Зарегистрирован: Сб июн 04, 2011 21:12:21
привет. если не влом напиши инструкцию как использовать TR24F, а то прям совсем что-то не густо с ним.
- Сообщения: 2
- Зарегистрирован: Вс мар 06, 2011 16:43:14
- Сообщения: 1
- Зарегистрирован: Вт июн 07, 2011 21:22:56
Здравствуйте. Использую TR24A в устройстве с питанием от литиевой батарейки на 3В. Проблема в том, что если питать устройство от батарейки напрямую, то ток потребления модуля в режиме приема ~25ма и вобщем-то все работает, но только пока батарейка не разрядится до 2.5В, поэтому собрал step-up конвертер на 3.3В на MAX1674, но при подключении его к модулю ток возростает до 120ма (хотя сам конвертер работает исправно, 3.3В выдает, ток покоя 30мка, запитал от него светодиод - все ок), напряжение просидает до 1В и все отключается. Не пойму что делать. Кондеры на питании есть, lc фильтр по питанию тоже не помогает.
Наверное каждому хочется сделать что нибудь, что действительно изменит этот мир
Радиомодуль TR24A - первый шаг на пути к этому. Давайте делать это вместе! Если у кого то уже есть опыт работы с этой микросхемой, то не остаёмся равнодушными и делимся своими бесценными советами.
Сразу собрал всю документацию, чтобы не отвлекаться по мелочам
Тема дубль.
Сюда перенес.
aen
Сразу собрал всю документацию, чтобы не отвлекаться по мелочам
Тема дубль.
Сюда перенес.
aen
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.
[i]Лорд Кельвин, физик, 1899 г.[/i]
[i]Лорд Кельвин, физик, 1899 г.[/i]
Хочу получить небольшое уточнение: управление этим радиомодулем происходит со стороны сопряженного с ним мк через SPI и заключается в посылке байтов данных?
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.
[i]Лорд Кельвин, физик, 1899 г.[/i]
[i]Лорд Кельвин, физик, 1899 г.[/i]
Здравствуйте! Пытаюсь связать два модуля TR24F - безрезультатно. Написал код(привожу ниже). По SPI регистры параметрируются, но как-то через раз, читаются отлично. Прерывание при отсылке на передатчике происходит, значит пакет с данными прошел, а вот на приемнике глухо. Регистры 0, 9-16 на стороне приемника и передатчика учтены и поставлены правильно. Помогите найти ошибку.
Код: Выделить всё
#define RDY PORTC.4 //27 out
#define SCK PORTC.2 //25 out
#define DAT PORTC.0 // 23 in/out
#define INDAT PINC.0// 23
#define DAT_DDR DDRC.0 // 23
#define EN PORTC.5 //28 out
#define PSB PORTD.1 //3 out
#define INT PIND.2 // 4 in
//#define DRSSI PIND.6
flash unsigned char regs[25]={
0xA8,// 0x28 T/R Channel index
0x03,// Crystal Frequency and RF Power
0x78,// Data Function Control
0x87,// RSSI Function Control
0x20,// RSSI Value
0x0F,// Data format control
0x30,// Multi Burst Packet Repeat Control
0x21,// Power Ramp Control
0x03,// Addres Length
0x02,// Destination Addres 0x34
0x02,// Destination Addres 0x22
0x02,// Destination Addres 0x55
0x00,// Destination Addres
0x00,// Destination Addres
0x01,// Device Addres
0x01,// Device Addres
0x01,// Device Addres
0x00,// Device Addres
0x00,// Device Addres
0x00,// Reserved
0x00,// PLL Pre-Turn-On Time
0xB4,// PLL Lock Time
0x00,// Reserved
0x22,// Option
0x04 // RX Turn On Time
} ;
void spi_access_mode(void)
{
DAT=1;
PSB=1;
EN=1;
RDY=0;
SCK=0;
#asm("nop")
};
void active_mode(void)
{
DAT=1;
PSB=1;
EN=0;
SCK=0;
RDY=1;
#asm("nop")
};
// Output eight-bit value using selected bit-bang pins
void spi_bitbang_out(char value)
{
char x;
for(x=8;x>0;x--){
if(value & 0x80)DAT=1;
else DAT=0;
#asm("nop")
SCK=1;
value<<=1;
#asm("nop")
SCK=0;
#asm("nop")
}
} ;
// Input eight-bit value using selected bit-bang pins
char spi_bitbang_in()
{
unsigned char x=0;
unsigned char y;
x=0;
for(y=8;y>0;y--){
SCK=1;
#asm("nop")
x<<=1;
if(INDAT==1){x|=0b00000001;}
SCK=0;
#asm("nop")
} // Store next bit
return(x);
}
void spi_write_regs(unsigned char addres,unsigned char data)
{
spi_access_mode();
DAT_DDR=1;
spi_bitbang_out(addres|0x80); // Send address
spi_bitbang_out(data); // Send data
EN=0;
} ;
unsigned char spi_read_reg(unsigned char addres)
{ unsigned char data;
spi_access_mode();
DAT_DDR=1;
spi_bitbang_out(addres); // Send address
DAT_DDR=0;
data=spi_bitbang_in(); //read data
EN=0;
return(data);
};
void tr24f_init(void)
{unsigned char y;
for(y=0;y<24;y++)
spi_write_regs(y,regs[y]);
};
unsigned char *fifo_read(unsigned char data_length)
{unsigned char *data, y;
active_mode();
DAT_DDR=0;
for(y=data_length;y>0;y--)
data[y]=spi_bitbang_in();
return(data);
};
void fifo_write(unsigned char *data,unsigned char data_length)
{
unsigned char y;
active_mode();
DAT_DDR=1;
delay_us(20);
spi_bitbang_out(regs[0x09]);
spi_bitbang_out(regs[0x0A]);
spi_bitbang_out(regs[0x0B]);
for(y=data_length;y>0;y--)
spi_bitbang_out(data[y]);
spi_bitbang_out(1);
spi_bitbang_out(1);
spi_bitbang_out(1);
RDY=0;
};


