Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
04.12.2015, 11:59
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 146
Сказал спасибо: 18
Сказали Спасибо 49 раз(а) в 28 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Выкинул я со своих модулей с усилителем керамическую антенну, и подпаял проводок от витой пары = 78мм. И "настроение улучшилось". Покупал у китайцев GSM WIFI роутер, заменил и у него керамику на проводок. И, о чудо! фая, есть вайфая! по всему дому.
?8 мм - 5/8. С роутером экспериментировал, откусывая по чуть чуть. Ну совсем по чуть чуть. +-2мм.
|
|
|
|
11.01.2016, 09:50
|
|
Прохожий
Регистрация: 07.02.2011
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Дабы не забивать тему большим постом, гляньте, пожалуйста, эту тему
http://www.microchip.su/showthread.php?t=17489
высказывать мысли можно здесь.
|
|
|
|
11.01.2016, 11:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
В ЕН-АА ничего не пиши
Никто не зависнет
ЦРЦ включи
|
|
|
|
11.01.2016, 12:13
|
|
Прохожий
Регистрация: 07.02.2011
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Спасибо, вечером попробую.
А почему не зависнет? Если он ...надцать раз не получил подтверждения от приёмника, он разве не затыкает передачу до сброса всего?
|
|
|
|
11.01.2016, 12:15
|
|
Прохожий
Регистрация: 07.02.2011
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
И почему сейчас зависает приёмная сторона? Чем её можно сбросить программно, не передёргивая питание?
|
|
|
|
11.01.2016, 12:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Если передатчик не получил подтверждения от приёмника, он всего лишь выставит бит и успокоится
Приёмная может "зависать" только из-за переполнения буфера - когда следующему пакету банально некуда записываться. Читай флаги состояния буфера, и если он не пуст, то вычитывай или подавай flush rx.
|
|
|
|
11.01.2016, 15:22
|
|
Прохожий
Регистрация: 07.02.2011
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от niXto
|
Если передатчик не получил подтверждения от приёмника, он всего лишь выставит бит и успокоится
Приёмная может "зависать" только из-за переполнения буфера - когда следующему пакету банально некуда записываться. Читай флаги состояния буфера, и если он не пуст, то вычитывай или подавай flush rx.
|
В том-то и дело, что флаги все чистые: ни признака наличия чего-то в буфере, ни ошибок.
|
|
|
|
11.01.2016, 22:10
|
|
Прохожий
Регистрация: 07.02.2011
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
niXto, расшифруйте, пожалуйста, значение флага TX_FULL в статусе.
Убрал в инициализации модуля выключение autoack. FIFO передатчика имеет 32 байта, заталкиваю в него по 4 байта и на каждом прерывании печатаю STATUS. Получаю 2 раза 0х1E - MAX_RT и RX_FIFO_EMPTY - всё верно, но начиная с третьего раза приходит 0x1F - т.е. добавляется переполнение буфера. Почему так рано? При выключенном autoack получаю стабильно 0x2E = TX_DS+RX_FIFO_EMPTY.
Хм. Если в передатчике в EN_AA оставить значение по-умолчанию, то приёмник честно ловит 4 правильных байта. Спасибо.
Но. Мне в передающей части нужно максимальное энергосбережение, поэтому очень не хочется там включать приёмник даже на время получения ack. Должна же эта микрушка и без подтверждения приёма работать.
|
|
|
|
12.01.2016, 09:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Трансивер имеет фифо на 3 пакета длиной от 1 до 32 байта данных, поэтому по приёму 3-го пакета буфер переполняется
Для максимального энергосбережения и придумали автоматические подтверждения. Факт приёма подтверждения говорит передатчику, что данные дошли и можно успокоиться. Без подтверждений для гарантированной доставки данных нужно передавать их раз 10 в течении секунды, т.к. связь у нрф24 100%-ная только на расстоянии пары метров, дальше с провалами
Порядка 1000 посылок в сутки нрф24 живёт 3 года от cr2032
|
|
|
|
12.01.2016, 09:45
|
|
Прохожий
Регистрация: 07.02.2011
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Понятно.
И небольшая консультация по логике приёма.
Случай 1. Все настройки остались штатными. На передающей стороне адрес передатчика равен адресу пайпа0 = 0xe7e7e7e7e7. На приёмной аналогично. Тут, вроде, всё понятно: передатчик отправил приёмнику с аналогичным адресом и получил ACK.
Случай 2. Все настройки остались штатными, но принять хочу в пайп1 со штатным адресом 0xc2c2c2c2c2. Что для этого нужно сделать? На передающей стороне передатчику ставлю адрес также 0xc2c2c2c2c2, и всё? Передатчик на приёмной стороне сам сообразит, куда ACK отправлять?
Теперь сам приём. Если к моменту обработки прерывания о приёме придут полноценные пакеты одновременно в два и более пайпов, в каком порядке они вылезут через RX_PAYLOAD? Или, если очередная посылка в любой пайп приходит до считывания предыдущего содержимого буфера, мы получим флаг переполнения?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:20.
|
|