Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
21.01.2017, 19:24
|
|
Вид на жительство
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Установил, теперь после сброса передатчика один пакет приходит нормально, а потом тишина:
NRF config OK
STATUS = 14 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
CONFIG = 15 MASK_RX_DR=0 MASK_TX_DS=0 MASK_MAX_RT=0 EN_CRC=1 CRCO=1 PWR_UP=1 PRIM_RX=1
RF_SETUP = 14 CONT_WAVE=0 RF_DR_LOW=0 PLL_LOCK=0 RF_DR_HIGH=1 RF_PWR=3 LNA_HCURR=0
FEATURE = 07 EN_DPL=1 EN_ACK_PAY=1 EN_DYN_ACK=1
CD=0
CHANEL=10
L_PAYLOAD=0
|
|
|
|
21.01.2017, 19:27
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 429
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Ну тогда давайте всю программу и с приемника и с передатчика.
|
|
|
|
21.01.2017, 19:34
|
|
Вид на жительство
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от sat_art
|
Ну тогда давайте всю программу и с приемника и с передатчика.
|
Всё так всё. прикрепил.
|
|
|
|
21.01.2017, 22:00
|
|
Вид на жительство
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от TechMike
|
Сделал у обоих:
uint8_t self_addr[] = {0xC2, 0xC2, 0xC2, 0xC2, 0xC2}; // Собственный адрес
uint8_t remote_addr[] = {0xC2, 0xC2, 0xC2, 0xC2, 0xC2}; // Адрес удалённой стороны
|
Напоминаю (в теме уже обсуждалось), что адрес должен начинаться с 0xE...
С другими началами не работало.
Я проверял только E7 и E8.
Также напоминаю, что трансивер подстраивается на канал при приеме, и если на прием передающую часть не переключать - частота постепенно уползет.
ЗЫ. На 256к нормально работает.
Вообще полезно тему перечитать.
Если контроллер не успевает обработать, а пакеты прилетели, то приемный буфер переполняется и эта хрень зависает. Не доработана, блин.
Поэтому я в прерывании с хорошим приоритетом смотрю IRQ, и сразу обрабатываю содержимое.
Последний раз редактировалось krug_vv; 21.01.2017 в 22:11.
|
|
|
|
21.01.2017, 22:02
|
|
Вид на жительство
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от krug_vv
|
Напоминаю (в теме уже обсуждалось), что адрес должен начинаться с 0xE...
С другими началами не работало.
Я проверял только E7 и E8.
Также напоминаю, что трансивер подстраивается на канал при приеме, и если на прием передающую часть не переключать - частота постепенно уползет.
ЗЫ. На 256к нормально работает.
|
Вот так попробовать?:
{0xE, 0xC2, 0xC2, 0xC2, 0xC2}
|
|
|
|
21.01.2017, 23:55
|
|
Вид на жительство
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от TechMike
|
Вот так попробовать?:
{0xE, 0xC2, 0xC2, 0xC2, 0xC2}
|
нет, 0xE - это 0x0E, а надо например 0xE7 или 0xE8
|
|
|
|
22.01.2017, 00:05
|
|
Вид на жительство
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от krug_vv
|
нет, 0xE - это 0x0E, а надо например 0xE7 или 0xE8
|
Поменял на
PHP код:
|
uint8_t self_addr[] = {0xE7, 0xC2, 0xC2, 0xC2, 0xC2}; // Собственный адрес
uint8_t remote_addr[] = {0xE7, 0xC2, 0xC2, 0xC2, 0xC2}; // Адрес удалённой стороны
|
не помогло.
И брешет с TX_DS после передачи, т.к. когда приемник выключить, все равно показывает, что появился TX_DS после передачи.
|
|
|
|
22.01.2017, 01:07
|
|
Вид на жительство
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Я использовал библиотеку EasyRider, немного модифицировав для удобства.
Поэтому терминами этих флагов даже не оперирую.
Зачем, если оно и так работает?
|
|
|
|
22.01.2017, 09:55
|
|
Вид на жительство
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от TechMike
|
//mirf_write_register(RX_PW_P0,*0);
****//mirf_write_register(RX_PW_P1,*32);
****mirf_write_register(DYNPD,*(1*‹‹*DPL_P0)*|*(1* ‹‹*DPL_P1));************************************ *//*включение*произвольной*длины*для*каналов*0*и*1
|
Я не использовал динамическую длину посылки, просто ставил длина 16 для Pipe0.
На скорость сильно не повлияет, но динамическая длина предполагает дополнительные сложности по обработке.
А может еще и глючит.
Ну его наф.
|
|
|
|
22.01.2017, 15:07
|
|
Вид на жительство
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Только заметил, что тема про nRF2401A, а у меня nRF24L01+
Все пропало?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:21.
|
|