Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Re: nrf24L01+

Чт сен 07, 2017 15:50:53

quant001 писал(а):какие вообще возможности данного чипа кроме связи между себеподобными?

в даташите сказано, что nRF24L01+ может работать с новыми версиями (это nRF24L01 с плюсиком +) и со старыми версиями nRF24L01 (это nRF24L01 без плюсика). всё. ))
quant001 писал(а):С какими он протоколами может работать еще из промышленных существующих

Ни с какими. Протокол у всех nRF24L01 один, свой собственный))

Однако, в даташите есть требования к радиосигналу. это значит, что если взять другой модуль и синтезировать требуемый радиосигнал, то nRF24L01 его сможет принять.
quant001 писал(а):передача напрямую в режиме ASK и FSK?

В щататном режиме nRF24L01 работает с FSK. Точнее с GFSK. https://ru.wikipedia.org/wiki/GFSK Там фильтр Гаусса https://ru.wikipedia.org/wiki/Фильтр_Гаусса
quant001 писал(а):напрямую в режиме ASK?

Напрямую в режиме ASK нет. Но! В nRF24L01 есть так называемый тестовый режим. Это когда передатчик передаёт не модулированную несущую. Это значит, что всётаки можно использовать nRF24L01 в режиме ASK. точнее OOK. Короче, можно подключить к nRF24L01 МК или телеграфный ключ и передавать в режиме OOK, обычным телеграфом. https://ru.wikipedia.org/wiki/Телеграф Например Азбкой Морзе))) :))) https://ru.wikipedia.org/wiki/Азбука_Морзе
quant001 писал(а):надо постоянно опрашивать на предмет приёма он сам уведомляет что принял что то?

В nRF24L01 есть три варианта:
Вариант 1 - постоянно опрашивать состояние буфера приёмника nRF24L01 (RX_FIFO), есть ли там непрочитанные данные или нет.
Вариант 2- постоянно опрашивать STATUS nRF24L01 (в STATUS так же есть состояние приёмного буфера - 00001110, где 111 означает что приёмный буфер RX_FIFO пуст).
Вариант 3- Настроить вывод IRQ так, что на выводе IRQ будет низкий уровень (лог 0) каждый раз, когда nRF24L01 принимает новый пакет. Т.е. он сам уведомляет что принял что то. (обычно вывод IRQ соединяют с выводом прерывания - INT0 в МК).

Какой вариант выбрать, зависит от конкретных задач.

Re: nrf24L01+

Чт сен 07, 2017 18:42:17

Зы налепить кучу чипов это еще куда ни шло благо при их размерах даже на домашней плане получится что то вменяемое, а вот кучу антенн тут вменяемость сразу исчезает.
Про прерывание это хорошо ибо с высокой частотой гонять цифровой сигнал на соседний чип это затратит все ресурсы.
Вот и херово что протокол привязан к чипу, бери чип и получи что дают, это как не круто так и не есть гуд что можно легко спокойно слушать и передавать, а ведь неизвестный ни кому протокол докопать еще надо а уж потом до шифрования.
Да меня интересовал ASK с точки и FSK с точки зрения глушилки, например выбить синий зуб или устроить хренвай, тот же 4жжж как там его. А без этого это совсем китайскаяигрушка которая не чего не может.

Да и нет смысла в чужих протоколах кроме доколебаться до чего то/кого то, ASK и FSK можно независимо от схемотехники совместимость иметь, я же не китаец у меня централизованная система.

Re: nrf24L01+

Чт сен 07, 2017 20:35:08

quant001 писал(а):кучу антенн тут вменяемость сразу исчезает.

какая куча антенн?)) 2400 Мгц. Длина волны https://ru.wikipedia.org/wiki/Длина_волны
Длина_волны ~12 саниметров. Антенна получается (1/4 лямбда) 3 сантиметра...)) :))) Пихай сколько хочешь антенн... по три сантиметра каждая))
quant001 писал(а):прерывание это хорошо ибо с высокой частотой гонять цифровой сигнал

ну дополнительные функции всегда хорошо)) кто спорит)) А вот на счёт прерываний вопрос спорный... А что если у меня МК выполняет очень сложные расчёты в реальном времени и при этом все прерывания ЗАПРЕЩЕНЫ (!) Что тогда ? ))
quant001 писал(а):Вот и херово что протокол привязан к чипу

Да ничего там не привязано)) обычный стандартны протокол, как и во многих чипах. Ничего особенного в nRF24L01+ нет. Обычная GFSK с NRZ кодированием ... )) https://ru.wikipedia.org/wiki/Физическое_кодирование
quant001 писал(а):а ведь неизвестный ни кому протокол докопать еще надо а уж потом до шифрования

покажите мне неизвесный протокол...)) :))) любой нормальный сканер зломает этот "неизвесный протокол" даже не напрягаясь))

https://www.youtube.com/watch?v=3HMThJkW_O0

Кодирование в nRF24L01+... не смешите меня..)) :)))
quant001 писал(а):с точки зрения глушилки

стандартный nRF24L01+ с усилителем даёт на выходе 0,1 Ватт. Может заглушить только такой же nRF24L01+ рядом стоящий)) А другие системы (тот же Wi-Fi) nRF24L01+ не заглушит)) Там модуляция другая.
Да и вообще... все современные системы многоканальные (про военные я вообще молчу - там шумоподобные сигналы, которые вообще фиг заглушиш))) ну разве что тольк оооооочччееннььь мощьный СВЧ супер клистроном )) https://ru.wikipedia.org/wiki/Клистрон
:)))
Что вы пристали к бедным nRF24L01 ... это простенькие трансиверы, которые передают и принимают по стандартному протоколу (извесным всем). Максимум что может nRF24L01 - это просто передавать и принимать пакеты, с аппаратной проверкой контрольной суммы. Вот и всё)) Кому надо шифрование, тот использует разные протоколы шифрования.. :tea:

Re: nrf24L01+

Чт сен 07, 2017 21:27:47

Имеет смысл добавить, что эти приемо-передатчики поставляются также совмещёнными в одном корпусе с 8051-совместимыми МК в лице nrf24LE1 и nrf24LU1 (с USB портом). Эта парочка используется в беспроводных комплектах клавы и мыши с донглом. Есть также вариант с АРМ микроконтроллером. Короче говоря, на любой вкус.

Re: nrf24L01+

Сб сен 09, 2017 17:16:36

nrf24L01+ работает просто. В есть даже осциллограмма сигнала. Я там битики дорисовал))
1.jpg
(222.33 KiB) Скачиваний: 593

Модуляция GFSK. Простое NRZ кодирование. Формат пакета стандартный. Перехватить и прочитать пакеты nrf24L01 не составляет труда.
Вот собственно и всё))

Re: nrf24L01+

Вс сен 10, 2017 16:52:06

Да отвлёкся но само малость! А как на счёт ДД на сколько боится сильных сигналов? Wi-Fi его не уложит, нормальный Wi-Fi 1Вт антенны тоже нормальный на расстоянии пару метров, я понимаю что совсем не уложит но вот сильно подгадить может?
Наличия МК же тогда позволяет прошивку залить свою и трансивер в полном распоряжении моей программы?

Re: nrf24L01+

Ср сен 27, 2017 16:01:14

Извиняюсь, что поднимаю тему, но вопросы именно по этому модулю.
1. Есть ли эффект от внешней антенны?
2. Поднимал кто-нибудь UDP на этих модулях?
3. Объединение в сеть 5-6 устройств реально ли?
4. Есть ли готовые USB-решения для данных модулей?

Re: nrf24L01+

Ср сен 27, 2017 18:16:29

4. Есть ли готовые USB-решения для данных модулей?

Есть совместимый с ними по радиопротоколу nRF24LU1+. Это такой же радиомодуль, только совмещенный с 8051 МК и имеющий USB. Т.е. ему отдельный контроллер не нужен, все в одном флаконе. То же, но без USB - nRF24LE1. В продаже имеются в виде готовых модулей.

Re: nrf24L01+

Ср сен 27, 2017 22:05:00

Anton.M писал(а):1. Есть ли эффект от внешней антенны?

Непонятый вопрос. Полное отсутствие радиосвязи тоже можно назвать эффектом, который возникает в следствии рассогласования приемопередатчика и антенны. Хотя бы обозначьте, какой "эффект" вас интересует.

Re: nrf24L01+

Чт сен 28, 2017 00:15:26

Anton.M писал(а):1. Есть ли эффект от внешней антенны?

Есть. Зависит от антенны.
Anton.M писал(а):2. Поднимал кто-нибудь UDP на этих модулях?

Можно типа такого...
http://we.easyelectronics.ru/electro-an ... 28j60.html
http://narodstream.ru/avr_urok_40_lan_enc28j60-chast-1/
... и т.д.))
Только писать много))
Anton.M писал(а):3. Объединение в сеть 5-6 устройств реально ли?

Обычно количество устройст в сети ограничено диапазоном адресов. Для nrf24L01+ диапазон адресов:
от 0000000000h... до FFFFFFFFFFh или 1.099.511.627.776 адресов)) Думаю достаточно))
Anton.M писал(а):4. Есть ли готовые USB-решения для данных модулей?

Типа адаптер USB-UART или USB-SPI.
http://cxem.net/comp/comp129.php
... и т.д.))
Только писать много))

Re: nrf24L01+

Чт сен 28, 2017 12:24:25

roman.com, отлично, просто есть на руках пара nrf24 с разведенной антенной на плате. Не вдохновило.
Пугание объемом сейчас меня не волнует, главное чтоб не было наложения друг на друга информации от абонентов.
Спасибо!

Re: nrf24L01+

Чт сен 28, 2017 14:49:06

Anton.M писал(а):главное чтоб не было наложения друг на друга информации от абонентов

Для устранения коллизий ( https://ru.wikipedia.org/wiki/Коллизия_кадров ) у nrf24L01+ есть 126 радиочастотный каналов:
2.400GHz...2.525GHz. 00000000b(0)...01111101b(125).

Re: nrf24L01+

Чт сен 28, 2017 17:06:48

у nrf24L01+ есть 126 радиочастотный каналов:
2.400GHz...2.525GHz. 00000000b(0)...01111101b(125).


Ну я правильно понимаю, что 1 канал это один модуль? Получается на компьютере, который принимает информацию с этих 5 модулей, надо ставить 5 nrf'ок, каждая из которых настроена на свой канал?

Re: nrf24L01+

Пт сен 29, 2017 10:33:15

Получается что так. Для полного устранения коллизий надо ставить на компьютере 5 nrf'ок, каждая из которых настроена на свой канал. По аналогии с коммутатором, где для каждого устройства отдельный порт. ( https://ru.wikipedia.org/wiki/Сетевой_коммутатор )
Или же ставить на компьютере 1 nrf'ку и использовать стандартные протоколы/алгоритмы для устранения коллизий.
Что лучше... зависит от конкретных задач.

Наверное надо добавить.. ставить на компьютере 5 nrf'ок имеет смысл только если нужно передавать непрерывный поток данных, чувствительных к задержкам передачи, на большое расстояние.

Хотя на практике чаще используют мультиплексирование с разделением по времени (TDM). ( https://ru.wikipedia.org/wiki/Мультиплексирование ). Но при этом снижается дальность связи, т.к. для этого требуется более широкая полоса пропускания радиоканала.

Re: nrf24L01+

Пт сен 29, 2017 19:19:26

А тут всё зависит от того что вы хотите реализовать, где то может и одной NRFки хватит, а где то может лучше взять что то другое.

Re: nrf24L01+

Пт сен 29, 2017 22:20:44

alex_, задача такова - хронометраж для соревнований. Сейчас все работает на wifi-модулях ESP201 (по сути - ESP8266 с гнездом). Но дальность совсем не устраивает. Два события могут случиться одновременно (например старт участника и финиш другого), поэтому если будет один радиоканал - посылки могут наложиться друг на друга или вообще пропасть.
Блин, а в двухсторонней связи он не работает... =(

Re: nrf24L01+

Сб сен 30, 2017 12:16:36

Если не хватает дальности придётся использовать такой
Изображение
Поскольку у обычного модуля дальность действия несколько не дальше чем у ESP201.

Я думаю сделать можно так: один модуль использовать как сервер и настроить его на приём, остальные настраиваем на передачу на один и тот же канал. Поскольку пакеты передаются довольно быстро при наступлении события модуль передаёт пакет который в себе ID номер передатчика(+ один байт к пакету, порядковый номер передатчика, назначаем сами). Можно конечно раскидать по пайпам, модули поддерживают до 5 шт включительно, но я ими не пользовался, да и с порядковым номером можно передатчиков использовать гораздо больше чем 5, передали пакет и сидим молчим. Поводу коллизий можно сделать так: модуль позволяет промониторить канал на занятость, если канал занят ждём освобождения и после этого передаём. Так же если два модуля решили передать одновременно, абсолютно одновременно у них начать передачу не получиться, а значит, что у одного из них скорее всего передать получиться, а второй передаст чуть попозже, через пару милисекунд, что думаю не критично. :))

Re: nrf24L01+

Сб сен 30, 2017 14:02:22

Anton.M писал(а):задача такова - хронометраж для соревнований.

Для этого нет смысла ставить на компьютере 5 nrf'ок, достаточно и одной.
Anton.M писал(а):дальность совсем не устраивает.

Не знаю какая дальность у ESP8266, а у простой nrf24L01+ (без усилителя) дальность уже проверяли тут. viewtopic.php?f=28&t=108688&start=767
5.jpg
(141.5 KiB) Скачиваний: 680

alex_ писал(а):Поскольку пакеты передаются довольно быстро

"быстро" - это понятие относительное)) Для когото и 1 милисекунда быстро.. а для меня это медленно))
В даташите nrf24L01+ есть даже формула для расчёта скорости передачи пакетов.
alex_ писал(а):Так же если два модуля решили передать одновременно, абсолютно одновременно у них начать передачу не получиться, а значит, что у одного из них скорее всего передать получиться, а второй передаст чуть попозже, через пару милисекунд, что думаю не критично.

Если вротой передатчик начнёт передавать раньше чем закончит передавать первый передатчик, то получим коллизию.

Тут есть один момент)) На самом деле тут всё зависит от того, у какого передатчика больше мощность, и сможет ли второй передатчик заглушить первый. Но это уже мелкие детали..))

Вообще... весь вопрос в точности измерения события. Какая допускается погрешность? секунды / милисекунды / микросекунды ?

Для точного измерения события нужно посчитать все "тайминги" (временна́я задержка сигнала). Например тут viewtopic.php?f=28&t=148087 делали радиоуправление на nrf24L01+ и смотрели/считали задержку сигнала, с точностью до микросекунд. ))
PCM-256.jpg
(150.85 KiB) Скачиваний: 686

Anton.M писал(а):Два события могут случиться одновременно (например старт участника и финиш другого), поэтому если будет один радиоканал - посылки могут наложиться друг на друга или вообще пропасть.

Пропасть - это не проблема. )) Передатчик может отправит пакет повторно или много раз. Какой-нибудь один пакет дойдёт)).

Простой пример:
- Допустим каждый пакет имеет свой порядковый номер (ID = 0...255).
- Пауза между передачей пакетов извесно. Это величина постоянная. Допустим 3 милисекунды (настраивается программно).
- Время передачи одного пакета извесно. Это величина постоянная. Допустим 1 милисекунда (настраивается программно).

По номеру пакета определяем задержку передачи пакета:

Первый пакет (ID=1) получим через 4 милисекунды. - пакет пропал..
Второй пакет (ID=2) получим через 8 милисекунд. - пакет пропал..
...
Десятый пакет (ID=10) получим через 40 милисекунд. - пакет принят.

По номеру пакета (ID=10) компьютер автоматически вносит поправку таймера на 40 милисекунд.

А что бы пакеты не накладывались друг на друга от разных передатчиков постоянно (постоянная коллизия), каждый передатчик может например передавать пакеты со своей задержкой (паузой) между пакетами: 4 милисекунды, 5 милисекунд, 6 милисекунд...

Наверное надо добавить... Вообщее протокол в nrf24L01+ не гарантирует доставку пакета с первого раза . На практике пакеты у nrf24L01+ проходят с первого раза с вероятностью ~99,9 %. Это при хорошем сигнале.)) Поэтому в любой случае нужно предусмотреть повторную передачу пакетов. Иначе мы можем не узнать, что какое то событие вообще случилось))

Для гарантированной доставки пакетов у nrf24L01+ есть функция - автоматическая повторня передача пакетов. Лично я этой функцией не пользуюсь.
модуль позволяет промониторить канал на занятость

Надо уточнить: каким образом? В nrf24L01+ есть детектор сигнала (типа S-метр). Только (если верить даташиту) он работает при достаточно сильном сигнале, значит он работает только на маленькое расстояние. А нам нужно большое расстояние.
(этот впрос надо уточнить, а лучше проверить на практике).
модуль позволяет промониторить канал на занятость, если канал занят ждём освобождения и после этого передаём.

Так получим дополнительную задержку... грубо ~до 1 милисекунды )) (Можно посчитать точно).

P.S. Есть ещё один вариант, более сложный. Можно все события измерять по хронометрам в самих передатчиках. При этом все хронометры синхронизировать по одному, главному хронометру. И передавать (используя мультиплексирование с разделением по времени (TDM)) не сам момент события, а показания хронометров, которые в свою очередь будут зафиксировать события. (Например в любом нормальной МК есть таймер с режимом захвата по внешнему событию). В этом случае задержки передачи вообще не критичны)).

Я так понял все данные надо выводить на компьютер. А главный таймер где ? В самом компьютере? А как будете подключать nrf24L01+ к компьютеру? Через SPI или UART адаптер? А задержку передачи пакетов через адаптер учли? ))

И т.д. и т.п....))

Re: nrf24L01+

Сб сен 30, 2017 17:01:27

Не знаю какая дальность у ESP8266, а у простой nrf24L01+ (без усилителя) дальность уже проверяли тут. viewtopic.php?f=28&t=108688&start=767
Ну там же при условии точной направленности антенн и отсутствии помех. У меня в квартире пакеты частенько недоходят, хотя может соседский WI-FI забивает.
"быстро" - это понятие относительное)) Для когото и 1 милисекунда быстро.. а для меня это медленно))
В даташите nrf24L01+ есть даже формула для расчёта скорости передачи пакетов.

Я полагаю что в не совсем профессиональных соревнованиях даже 10мс погоды не сделают, поэтому было сделано такое упрощение. Формула есть но опять же зачем заморачиваться ради "копеек" которые роли не сыграют.
Если второй передатчик начнёт передавать раньше чем закончит передавать первый передатчик, то получим коллизию.
Я почему то подумал про автоповтор передачи который по умолчанию стоит 3 попытки передачи через 250мкс.
Надо уточнить: каким образом? В nrf24L01+ есть детектор сигнала (типа S-метр).

Да так и есть, мониторит несущую на текущем канале, не идеальный вариант но лучше чем ничего.
А ещё можно все события измерять по хронометрам в самих передатчиках.

У меня с самого начала была такая идея. Поставить к каждому передатчику RTC, поскольку сигнал от передатчика может дойти с первой попытки или из за помех придти с N-ной задержкой. А с RTC произошло событие, контроллер считал данные и потом можно хоть через полчаса передать.

Re: nrf24L01+

Вс окт 01, 2017 10:44:39

Для этого нет смысла ставить на компьютере 5 nrf'ок, достаточно и одной.

Ну почему же, а как насчет однонаправленности связи?

Не знаю какая дальность у ESP8266, а у простой nrf24L01+ (без усилителя) дальность уже проверяли тут.

Вот это и вывело меня на эти модули. Но увы похоже не подойдут....
Вообще... весь вопрос в точности измерения события. Какая допускается погрешность? секунды / милисекунды / микросекунды ?
Я так понял все данные надо выводить на компьютер. А главный таймер где ? В самом компьютере? А как будете подключать nrf24L01+ к компьютеру? Через SPI или UART адаптер? А задержку передачи пакетов через адаптер учли? ))

У меня в каждом из модулей GPS-Glonass модули стоят, которые дают эталонное время. Поэтому это не проблема. Компьютер - это средство сбора информации и мониторинга. Поэтому временные задержки на передачу каналов тут можно и не учитывать.

По поводу 10 мс - на прошлых соревнованиях (16 сентября проводил по wifi-каналу) разница в полуфинале между 2 и 3 местом была 0,013 сек! Поэтому точность наше все =)
Ответить