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

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

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

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

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

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

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

Ответ
Опции темы
Непрочитано 17.01.2014, 10:44   #791
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

На 256к дальность раза в 1,5 больше и на максимальной дальности доходит раза в 2...3 больше пакетов чем на 2М

Сообщение от wlad773 Посмотреть сообщение
Зачем? Во всех блоках по умолчанию они установлены.
Так нужно чтобы все приемники одновременно принимали одну команду, или каждому приемнику нужно индивидуально засылать пакет и ждать именно от него подтверждение? В последнем случае адреса у всех приемников на одном канале должны быть разные. Или одинаковые адреса, но сади их на разные каналы
Реклама:
niXto вне форума   Ответить с цитированием
Непрочитано 17.01.2014, 13:18   #792
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Применение:
Код:
#include "nrf24l01.h"
unsigned char Init_NRF24L01 (void)
{
  /*24L01 INIT*/
  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_Pipe0_Ack_Enable  ;
  RF_InitStruct.RF_Enable_Pipe=RF_Pipe0_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=53;
  
  RF_InitStruct.RF_RX_Adress_Pipe0[0]='R';
  RF_InitStruct.RF_RX_Adress_Pipe0[1]='F';
  RF_InitStruct.RF_RX_Adress_Pipe0[2]='K';
  RF_InitStruct.RF_RX_Adress_Pipe0[3]='E';
  RF_InitStruct.RF_RX_Adress_Pipe0[4]='Y';
  
  RF_InitStruct.RF_TX_Adress[0]=RF_InitStruct.RF_RX_Adress_Pipe0[0];
  RF_InitStruct.RF_TX_Adress[1]=RF_InitStruct.RF_RX_Adress_Pipe0[1];
  RF_InitStruct.RF_TX_Adress[2]=RF_InitStruct.RF_RX_Adress_Pipe0[2];
  RF_InitStruct.RF_TX_Adress[3]=RF_InitStruct.RF_RX_Adress_Pipe0[3];
  RF_InitStruct.RF_TX_Adress[4]=RF_InitStruct.RF_RX_Adress_Pipe0[4];
  RF_InitStruct.RF_Payload_Size_Pipe0=16;
  RF_InitStruct.RF_Auto_Retransmit_Count=1;
  RF_InitStruct.RF_Auto_Retransmit_Delay=1;
  return RF_Init(&RF_InitStruct);
}
В main.c читаем функцию Init_NRF24L01()
Код:
NRF24L01_Error = Init_NRF24L01();
После запуска должна вернуть 0x0E если все в порядке.
Далее отправляем данные, при условии, что
Код:
RF_InitStruct.RF_Config=RF_Config_IRQ_RX_Off|RF_Co  nfig_IRQ_TX_On|RF_Confing_IRQ_Max_Rt_On;
RF_InitStruct.RF_Mode=RF_Mode_TX;
Код:
KeyActualFlag=RF_SendPayloadACK("HELLO WORLD!", 16);
Где KeyActualFlag будет равно RF_DATA_SEND_ACK_RECEIVED_OK, если данные получены приемником верно.
А приемник опрашивает функцию
Код:
RF_Receive_Data(inData, sizeof(inData))
Если она отлична от RF_NO_DATA_RECEIVED, значит буфер inData заполнен полученной информацией.
Все, вы передали 16 байт информации. Поздравляю.
Вложения:
Тип файла: rar NRF24L01.rar (3.8 Кб, 111 просмотров)
Easyrider83 вне форума   Ответить с цитированием
Сказали "Спасибо" Easyrider83
true71 (18.03.2022)
Непрочитано 17.01.2014, 17:54   #793
Дмитрий ARM7
Временная регистрация
 
Аватар для Дмитрий ARM7
 
Регистрация: 16.01.2014
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий ARM7 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Вот сегодня еще два модуля пришло. Очень бы хотелось запустить. Как думаете какая мощность у них?
Миниатюры:
Нажмите на изображение для увеличения
Название: фото (2).jpg
Просмотров: 44
Размер:	476.4 Кб
ID:	57563   Нажмите на изображение для увеличения
Название: фото.jpg
Просмотров: 39
Размер:	509.7 Кб
ID:	57564  
Дмитрий ARM7 вне форума   Ответить с цитированием
Непрочитано 17.01.2014, 19:06   #794
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от niXto Посмотреть сообщение
Так нужно чтобы все приемники одновременно принимали одну команду, или каждому приемнику нужно индивидуально засылать пакет и ждать именно от него подтверждение? В последнем случае адреса у всех приемников на одном канале должны быть разные. Или одинаковые адреса, но сади их на разные каналы
Решил сделать так: 1 байт- ИД пульта, 2 байта- ИД приемника, 1 байт- № линии, 1 байт- команда. У всех одинаковые частотные каналы и поток0. Вроде начало получаться. ИД приемников хранятся в пульте, ИД пульта храниться в приемниках. В этом случае чужим пультом свои приемники не включишь и наоборот. Все свои приемники получат пакет, но отреагирует и ответит только один.

Сообщение от niXto Посмотреть сообщение
На 256к дальность раза в 1,5 больше и на максимальной дальности доходит раза в 2...3 больше пакетов чем на 2М
У меня NRF24l01+ Походу у него 2М(по умолчанию) и 1М. Или ошибаюсь?
wlad773 вне форума   Ответить с цитированием
Непрочитано 17.01.2014, 19:18   #795
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Easyrider83. Конечно спасибо , но в СИ я не шарю Но пару вопросов задам. Зачем в режиме приема отключать TX_DS и MAX_PT, а режиме передачи наоборот RX_DR?
Почему именно 53-ий канал?

Сообщение от Easyrider83 Посмотреть сообщение
RF_InitStruct.RF_RX_Adress_Pipe0[0]='R';
RF_InitStruct.RF_RX_Adress_Pipe0[1]='F';
RF_InitStruct.RF_RX_Adress_Pipe0[2]='K';
RF_InitStruct.RF_RX_Adress_Pipe0[3]='E';
RF_InitStruct.RF_RX_Adress_Pipe0[4]='Y';
RF_InitStruct.RF_TX_Adress[0]=RF_InitStruct.RF_RX_Adress_Pipe0[0];
RF_InitStruct.RF_TX_Adress[1]=RF_InitStruct.RF_RX_Adress_Pipe0[1];
RF_InitStruct.RF_TX_Adress[2]=RF_InitStruct.RF_RX_Adress_Pipe0[2];
RF_InitStruct.RF_TX_Adress[3]=RF_InitStruct.RF_RX_Adress_Pipe0[3];
RF_InitStruct.RF_TX_Adress[4]=RF_InitStruct.RF_RX_Adress_Pipe0[4];
Объясните что эти строки значат?
RF_InitStruct.RF_Auto_Retransmit_Count=1;Вы выбрали только одну ретрансляцию?
RF_InitStruct.RF_Auto_Retransmit_Delay=1; и время между ними 500мкС?

Последний раз редактировалось wlad773; 17.01.2014 в 19:27.
wlad773 вне форума   Ответить с цитированием
Непрочитано 17.01.2014, 19:27   #796
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Дмитрий ARM7 . Движемся параллельно. Юзаю NRF24l01+ точно такой же как на фото ранее. Дальность разочаровала. Рассчитывал на 100, ну хотя бы 30 м. А вышла непонятка то на 5м с одной стеной плохо работает, то на 10м хорошо??? Может просто не имею их готовить? Жду такие же как на последней фото, обещают 1000-1100м, а там посмотрим.
wlad773 вне форума   Ответить с цитированием
Непрочитано 17.01.2014, 19:59   #797
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от wlad773 Посмотреть сообщение
Easyrider83. Конечно спасибо , но в СИ я не шарю Но пару вопросов задам. Зачем в режиме приема отключать TX_DS и MAX_PT, а режиме передачи наоборот RX_DR?
Это прерывания. В режиме приема прерывание RX, в режиме передачи MAX RT и TX.
Сообщение от wlad773 Посмотреть сообщение
Объясните что эти строки значат?
Да пропишите вы свои адреса, ради бога. Это так, для примера.
Сообщение от wlad773 Посмотреть сообщение
Почему именно 53-ий канал?
В этом году Сталин умер. Памятная дата.
Сообщение от wlad773 Посмотреть сообщение
Дмитрий ARM7 . Движемся параллельно. Юзаю NRF24l01+ точно такой же как на фото ранее. Дальность разочаровала. Рассчитывал на 100, ну хотя бы 30 м. А вышла непонятка то на 5м с одной стеной плохо работает, то на 10м хорошо??? Может просто не имею их готовить? Жду такие же как на последней фото, обещают 1000-1100м, а там посмотрим.
У меня получается около 30м по всей квартире с антенной из куска провода.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 17.01.2014, 19:59   #798
Дмитрий ARM7
Временная регистрация
 
Аватар для Дмитрий ARM7
 
Регистрация: 16.01.2014
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Дмитрий ARM7 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

А у меня проблема с алгоритмом если бы кто написал на обычном си без структур какие биты куда, то дело пошло а сейчас только писать получается регистры а прочитать нет. просто бы один байт передать хоть и поймать ))) Вот на ассемблере знакомый дал кусок кода

ЗАДАНИЕ РЕЖИМОВ РАДИОКАНАЛА

LDI R16,0b00100000 ;Запись в регистр CONFIG (кн. ESC,Ё,1)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,0b00010011 ;Регистр CONFIG на прием,PWR_UP,INT RX/TX
; LDI R16,0b00110011 ;Регистр CONFIG на прием,PWR_UP,INT RX
LDI R16,0b01110010 ;Нет прерываний. Передача (D0=0)
; LDI R16,0b01110011 ;Регистр CONFIG на прием,PWR_UP,без INT
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Записьна закончена

LDI R16,0b00100001 ;Запись в регистр EN_AA (кн. 2)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$00 ;Выключение автоопознавания
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00100010 ;Запись в регистр EN_RXADDR (кн. 3)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$01 ;Вкл.адр.приема ТОЛЬКО канала 0
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00100011 ;Запись в регистр SETUP_AW (кн. 4)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$01 ;Длина адреса 3 байта
; LDI R16,$03 ;Длина адреса 5 байта
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00100100 ;Запись в регистр SETUP_RETR (кн. 5 и 6)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$00 ;Мин.вр.зад.ретр. Выкл.ретрансмит
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00100101 ;Запись в регистр RF_CH (кн. 7)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$02 ;По умолчанию 2 канал
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00100110 ;Запись в регистр RF_SETUP (кн.
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$0F ;2 Мб/c,Макс.мощн,Преамп вкл(?)
LDI R16,$07 ;1 Мб/c,Макс.мощн,Преамп вкл(?)
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00100111 ;Запись в регистр STATUS (кн. 9)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
LDI R16,$70 ;Сброс прерываний
RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

; LDI R16,0b00101010 ;Запись в регистр RX_ADDR_P0 (кн. +)
; CBI PORTD,6 ;Сбросим строб CSN
; RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$A5 ;Адрес 0
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A6 ;Адрес 1
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A7 ;Адрес 2
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A8 ;Адрес 3
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A9 ;Адрес 4
; RCALL TX_SPI ;Передадим через SPI
; SBI PORTD,6 ;Установим строб CSN Запись закончена
;
; LDI R16,0b00110000 ;Запись в регистр TX_ADDR (кн. R)
; CBI PORTD,6 ;Сбросим строб CSN
; RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$A5 ;Адрес 0
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A6 ;Адрес 1
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A7 ;Адрес 2
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A8 ;Адрес 3
; RCALL TX_SPI ;Передадим через SPI
; LDI R16,$A9 ;Адрес 4
; RCALL TX_SPI ;Передадим через SPI
; SBI PORTD,6 ;Установим строб CSN Запись закончена

LDI R16,0b00110001 ;Запись в регистр RX_PW_P0 (кн. T)
CBI PORTD,6 ;Сбросим строб CSN
RCALL TX_SPI ;Передадим КОМАНДУ через SPI
; LDI R16,$01 ;Принимаем один байт
; LDI R16,$04 ;Принимаем четыре байта
LDI R16,$20 ;Принимаем 32 байта

RCALL TX_SPI ;Передадим через SPI
SBI PORTD,6 ;Установим строб CSN Запись закончена

CBI PORTD,5 ;Отрицательный строб на CE ›10 мкс
RCALL ZAD_10MKS ;Задержка ›10 мкс
SBI PORTD,5 ;



Если его на си переделать код рабочий?

Последний раз редактировалось Дмитрий ARM7; 17.01.2014 в 20:06.
Дмитрий ARM7 вне форума   Ответить с цитированием
Непрочитано 18.01.2014, 09:11   #799
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от wlad773 Посмотреть сообщение
У меня NRF24l01+ Походу у него 2М(по умолчанию) и 1М.
Качай даташит на нрф24л01р - это она

Сообщение от wlad773 Посмотреть сообщение
Все свои приемники получат пакет, но отреагирует и ответит только один.
Зачем лишний расход энергии? Сделай аппаратно, чтобы чужой приемник даже не получал чужой пакет. Тем более если чужой получит и отправит автоподтверждение, а свой - не получит и не отправит - передатчик этого никогда не узнает, т.к. подтверждение он получил
niXto вне форума   Ответить с цитированием
Непрочитано 18.01.2014, 09:27   #800
Den05
Прописка
 
Регистрация: 09.08.2006
Адрес: Нижний Новгород
Сообщений: 148
Сказал спасибо: 98
Сказали Спасибо 48 раз(а) в 27 сообщении(ях)
Den05 на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от wlad773
У меня NRF24l01+ Походу у него 2М(по умолчанию) и 1М.

Есть ещё и 256К - там самая большая дальность!
Den05 вне форума   Ответить с цитированием
Ответ

Закладки


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто работал с драйвером DM132? sdsrem Микроконтроллеры, АЦП, память и т.д 0 06.07.2010 21:37
Кто нибудь имеет описание, как обращаться к KEELOQовскому регистру в PIC12F635/PIC16F636? Make_Pic Микроконтроллеры, АЦП, память и т.д 1 07.05.2010 12:53
Кто нибудь работал с MUST II System ? trilobit Производственное оборудование 0 28.04.2010 11:51
Кто нибудь имел дело со шрифтами? Djakovskij Микроконтроллеры, АЦП, память и т.д 8 18.02.2010 20:35
Кто работал с Ad7714? ALEKSEY188 Микроконтроллеры, АЦП, память и т.д 18 11.02.2010 03:54


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


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