Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
19.10.2012, 09:34
|
#371
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Чуть менее 3см получается по моим рассчетам.
У меня на плате ровно 3 см от конденсатора прямая антенна.
Т.е. проблема не в антенне. И не в настройках, похоже.
Не логично выходит - модуль запросто работает в пределах всей квартиры. А потверждение только на 10см долетает.
При посылке 16 байт максимальная скорость передачи около 24кб/с получается (1мбит/с)
Последний раз редактировалось Easyrider83; 19.10.2012 в 09:55.
|
|
|
|
19.10.2012, 11:18
|
#372
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Меняй кварц
|
|
|
|
19.10.2012, 11:20
|
#373
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Интересное решение. Попробую.
|
|
|
|
19.10.2012, 13:34
|
#374
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Выкладываю обновленные библиотеки под STM32 и STM8.
Пример использования:
Код:
|
unsigned char Init_RF (SPI_TypeDef* SPIx)
{
RF_InitTypeDef RF_InitStruct;
RF_InitStruct.RF_Power_State=RF_Power_On;
RF_InitStruct.RF_Config=RF_Config_IRQ_RX_On|RF_Con fig_IRQ_TX_Off|RF_Confing_IRQ_Max_Rt_Off;
RF_InitStruct.RF_CRC_Mode=RF_CRC16_On;
RF_InitStruct.RF_Mode=RF_Mode_RX;
RF_InitStruct.RF_Pipe_Auto_Ack=RF_Pipe1_Ack_Enable ;
RF_InitStruct.RF_Enable_Pipe=RF_Pipe0_Enable|RF_Pi pe1_Enable;
RF_InitStruct.RF_Setup=RF_Setup_5_Byte_Adress;
RF_InitStruct.RF_TX_Power=RF_TX_Power_High;
RF_InitStruct.RF_Data_Rate=RF_Data_Rate_1Mbs;
RF_InitStruct.RF_Channel=0x35;
RF_InitStruct.RF_RX_Adress_Pipe0[0]='S';
RF_InitStruct.RF_RX_Adress_Pipe0[1]='A';
RF_InitStruct.RF_RX_Adress_Pipe0[2]='P';
RF_InitStruct.RF_RX_Adress_Pipe0[3]='O';
RF_InitStruct.RF_RX_Adress_Pipe0[4]='G';
RF_InitStruct.RF_RX_Adress_Pipe1[0]='V';
RF_InitStruct.RF_RX_Adress_Pipe1[1]='A';
RF_InitStruct.RF_RX_Adress_Pipe1[2]='G';
RF_InitStruct.RF_RX_Adress_Pipe1[3]='O';
RF_InitStruct.RF_RX_Adress_Pipe1[4]='N';
RF_InitStruct.RF_Payload_Size_Pipe0=16;
RF_InitStruct.RF_Payload_Size_Pipe1=16;
RF_InitStruct.RF_Auto_Retransmit_Count=2;
RF_InitStruct.RF_Auto_Retransmit_Delay=3;
return RF_Init(SPIx, &RF_InitStruct);
} |
Для STM8 последняя строка выклядит так:
Код:
|
return RF_Init(&RF_InitStruct); |
В данном примере модуль настраивается на прием 16 байт с двух источников с именами "сапог" и "вагон" на скорости 1Мбит по каналу 0х35 с подтверждением передачи для "вагона".
Далее пример отправки пакета:
Код:
|
KeyActualFlag=RF_SendPayloadACK("TEST MESSAGE", 16); |
Переменная unsigned char KeyActualFlag принимает значение 0xFF если чип не отвечает в следствии проблем с железом или неправильной настройки, или 0 - если данные отправлены, подтверждение не получено и 1 если получено подтверждение передачи.
Функция приема возвращает номер потока или 0xFF, если данных нет.
Пример приема данных:
Код:
|
u8 Data[16];
u8 pipeN=0;
while(1)
{
pipeN=RF_Receive_Data(SPI1, Data, 16);
if (pipeN!=0xFF)
{
lcd_print_string("DATA! Pipe: ");
lcd_print_value(pipeN);
lcd_print_string(Data);
}
} |
Последний раз редактировалось Easyrider83; 25.11.2012 в 14:42.
|
|
|
|
19.10.2012, 18:21
|
#375
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Easyrider83,
Код:
|
void SPI_SendByte(SPI_TypeDef* SPIx,u8 byte)
{
u8 tmp=SPI_ReadByte(SPIx,byte);
} |
Что-то не догоняю логику работы... Зачем читать байт после записи ? Просто записать, не читая после этого нельзя ?
|
|
|
|
19.10.2012, 18:23
|
#376
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от BolshoyK
|
Что-то не догоняю логику работы... Зачем читать байт после записи ? Просто записать, не читая после этого нельзя ?
|
Да, но нет (с)
|
|
|
|
07.11.2012, 05:05
|
#377
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от Easyrider83
|
Да, но нет (с)
|
можно расшифровать для непонятливых ?
|
|
|
|
07.11.2012, 06:54
|
#378
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Считались регистры. Следующий этап - надо второй девайс делать, чтобы было откуда и что передавать.
http://serg22.sibgtu.ru/radio/mini-s...4L01_Stm32.rar
|
|
|
|
08.11.2012, 19:01
|
#379
|
Прохожий
Регистрация: 30.08.2010
Сообщений: 9
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Модули nrf24l01+ (с ebay)
Инициализирую дефолтными (как в даташите в таблице) значениями
нулевой байт - PowerUp, Rx/Tx в зависимости от режима, остальное по дефолту
Адрес:
Pipe 0 0xE7, 0xE7, 0xE7, 0xE5, 0xE2
Pipe 1 0xE7, 0xE7, 0xE7, 0xE5, 0xE3
tx 0xE7, 0xE7, 0xE7, 0xE5, 0xE2
Не хочет работать, на передатчике прерывание Max Rt
на приемнике вообще никаких. По потреблению приемник вроде работает, сигнал CE поднимается после инициализации в приемнике, в передатчике после записи данных в буфер. При чтении/записи регистров опускается, потом поднимается (в приемнике)
На приемнике глухо. Попробовал отключить CRC, тоже ничего. Может что то упустил в инициаизации и прерывание не генерируется или с настройками приемника какая то хитрость есть?
Последний раз редактировалось Mek_ph; 08.11.2012 в 19:25.
|
|
|
|
08.11.2012, 19:52
|
#380
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Приемник сидит с поднятым СЕ все время приема.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:46.
|
|