Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
11.09.2010, 21:38
|
#31
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от Easyrider83
|
Как можно объединять MISO и MOSI? Будет замыкание в логике
|
Почитайте даташит. Там все предельно понятно по подключению
Когда идет запись в чип, данные с МОСИ дублируются на МИСО - нам это до лампочки. Сопротивление 1 кОм можно не учитывать на паре МГц - входная емкость ничтожна, сопротивление бесконечно. Когда идет чтение трансивера - его выход замыкает резистор и на МИСО приходят истинные данные с трансивера.
Если в программаторе на выходе стоят буферы - 1 кОм совершенно не мешает. Трансивер тоже в 3-м состоянии
|
|
|
|
11.09.2010, 21:53
|
#32
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от sasareccer
|
а что-куда соединить, если рассматривать варианты nRF2401+СС2590
или лучше nRF24L01+СС2590
|
Как-то так
Не пробовал, не было надобности
|
|
|
|
11.09.2010, 23:50
|
#33
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
niXto, Ну я так примерно и предполагал. Правильно я ли понял идею?
|
|
|
|
12.09.2010, 01:35
|
#34
|
Частый гость
Регистрация: 27.01.2007
Сообщений: 41
Сказал спасибо: 15
Сказали Спасибо 15 раз(а) в 15 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
niXto а где вы их используете, если не секрет
|
|
|
|
20.09.2010, 18:38
|
#35
|
Частый гость
Регистрация: 20.09.2010
Сообщений: 33
Сказал спасибо: 26
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Доброго времени суток. Прошу прощения, что пишу в этой теме, но думаю создавать новую, когда есть старая моветон. В общем имею две китайские платки с трансиверами nRF21L01+. Вроде бы программируются, но непонятное в работе. Передатчик после отправки пакета, вызывает прерывание, в статусе 1E. Приемник в это время все время выдает 0E, что логично, буфер пуст. Расскажите, пожалуйста, о типовых граблях конфигурирования трансиверов? Могу выложить оба проекта, приемник на мега32 (базовая плата) и передатчик на мега88 (будет пульт). Связался с этим трансивером из-за возможности работы одного приемника с 6ю передатчиками.
Спасибо.
|
|
|
|
20.09.2010, 20:47
|
#36
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
1Е - значит что он отправил, но никто не получил (MAX_RT - превышение максимума кол-ва попыток передачи). При успешной передаче в статусе будет 2Е. После каждой передачи нужно обнулять статус (записывая 7Е) - иначе при установленном бите MAX_RT дальнейшая передача невозможна
Типовые грабли - нужно конфигурировать АБСОЛЮТНО все влияющие на работу регистры, то есть 21...26, 2A, 30, 31, 3С, 3D. Потому-то периодически настройки сбиваются - от помех и пульсаций. Скорее всего у вас в приемнике и передатчике разные частота или канал или кол-во байт... Выложите что и в какие регистры пишете, ткну пальцем
|
|
|
|
20.09.2010, 21:02
|
#37
|
Частый гость
Регистрация: 20.09.2010
Сообщений: 33
Сказал спасибо: 26
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Заранее благодарю за помощь.
Инициализация трансивера:
Цитата:
|
mirf_config_register(SETUP_AW, (TX_AW-2)); // Setup RX/TX address width
mirf_write_register(TX_ADDR,TX_ADDRESS,TX_AW); // Writes TX_Addr
mirf_write_register(RX_ADDR_P0,RX_ADDRESS,RX_AW);// Writes RX_Addr, Pipe0 for auto.ack
mirf_write_register(W_TX_PAYLOAD,TX_PAYLOAD,TX_PL_ W); // Writes TX payload
mirf_config_register(STATUS, 0x70); // Read status & clear IRQ flag's
mirf_config_register(EN_AA, 0x01); // Enable auto ack pipe0
mirf_config_register(EN_RXADDR, 0x01); // Enable pipe0
mirf_config_register(SETUP_RETR,0x0f); // 250µs+86µs, 10 retrans...
mirf_config_register(RF_CH, 40); // Channel 40
mirf_config_register(RF_SETUP, 0x0e);
mirf_config_register(CONFIG, 0x0e); // PWR_UP, CRC(2bytes) & Prim:TX.
|
Инициализация ресивера:
Цитата:
|
mirf_config_register(SETUP_AW, (TX_AW-2)); // Setup RX/TX address width
mirf_write_register(TX_ADDR,TX_ADDRESS_,TX_AW); // Writes TX_Addr
mirf_write_register(RX_ADDR_P0, RX_ADDRESS_,RX_AW); // Writes RX_Addr
mirf_config_register(RX_PW_P0, TX_PL_W); // Pipe0 payload width
mirf_config_register(STATUS, 0x70); // read status & clear IRQ flag's
mirf_config_register(EN_AA, 0x01); // Enable auto ack pipe0
mirf_config_register(EN_RXADDR, 0x01); // Enable pipe0
mirf_config_register(SETUP_RETR,0x0f); // 250µs+86µs, 10 retrans...
mirf_config_register(RF_CH, 40); // Channel 40
mirf_config_register(CONFIG, 0x0f); // PWR_UP, CRC(2bytes) & Prim:RX.
|
Передатчик после инициализации уходит в Stanby, т.е CE поднимаю непосредственно на передаче, заново переписываю CONFIG. Приемник сразу уходит в режим ожидания приема.
И, чтобы не было разночтений, адреса. Передатчик:
Цитата:
|
uint8_t TX_ADDRESS[TX_AW] = {0x40,0x50,0x60,0x70,0x80}; // Predefined TX_Address
uint8_t RX_ADDRESS[RX_AW] = {1,2,3,4,5}; // Predefined RX_Address
|
Приемник:
Цитата:
|
uint8_t TX_ADDRESS_[TX_AW] = {1,2,3,4,5}; // Predefined TX_Address
uint8_t RX_ADDRESS_[RX_AW] = {0x40,0x50,0x60,0x70,0x80}; // Predefined RX_Address
|
Изначально на приемнике отключал прерывание по приему, но в целях отладки включил.
В передатчике программа ловит прерывание и отключает передатчик, опуская CE. При этом в дебаг выводится состояние регистра STATUS, чтобы определить что стало причиной прерывания.
__________________
DCC и разные чудеса с ним.
XpressNet оказалась не такая страшная штука, если сравнивать с трансиверами. Но и трансиверы ничего страшного.
|
|
|
|
20.09.2010, 22:44
|
#38
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Адрес должен начинаться с Е7 а лучше Е7 Е7 - это необходимо для правильного детектирования чипом преамбулы. Для настройки попробуйте забить все 5 Е7
Все 3 прерывания у меня всегда включены. Так удобней и проц больше спит
pipe и EN_AA у меня включены все (дефолт) но сконфигурировано и используется только pipe0
В RF_SETUP включите LNA. Ток увеличивается чуть-чуть, а дальность выше
Если чип выключен (бит POWER_UP регистра CONFIG) - вначале включаем чип, потом ждем 2 мс и только потом кидаем остальные данные
Трансмиттер передает ровно то кол-во байт, которое указано в RX_PW_P0?
После неудачной отправки попробуйте очищать буфер передатчика (FLUSH_TX). НО!!! Если буфер передатчика пустой (TX_EMPTY в FIFO_STATUS) - попытка очистить буфер иногда вызывает зависание трансивера до выкл/вкл питания
Ну и надеюсь обвязка чипа цела, кварц жив, флюсом не залит
|
|
|
|
21.09.2010, 00:21
|
#39
|
Частый гость
Регистрация: 20.09.2010
Сообщений: 33
Сказал спасибо: 26
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Спасибо за советы. Завтра еще попробую "послушать" эфир. В трансивере есть детектор несущей. Обвязка целая, кварц тоже. Платы заводские, с керамической антенной. Я еще предположил, что трансиверы из-за близкого расположения глохнут.
__________________
DCC и разные чудеса с ним.
XpressNet оказалась не такая страшная штука, если сравнивать с трансиверами. Но и трансиверы ничего страшного.
|
|
|
|
21.09.2010, 07:00
|
#40
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
нет, чем ближе тем лучше. Детектор в л01 работает как-то коряво, когда игрался, единицу ни разу не словил, у вас л01+ - я так понимаю л01Р, у них детектор поприличней
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:25.
|
|