Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
11.11.2011, 21:04
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от niXto
|
Адреса RX и TX какие?
|
Судя по коду - дефолтные.
Сообщение от niXto
|
Там есть своя особенность - для корректного детектирования Конец преамбулы / Начало адреса, первые 3...4 бита адреса должны быть одного уровня
|
Поясните, пожалуйста.
|
|
|
|
11.11.2011, 22:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от niXto
|
Адреса RX и TX какие
|
Код:
|
char TX_ADDRESS[TX_ADR_WIDTH] = {0xe7,0xe7,0xe7,0xe7,0x11}; |
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
11.11.2011, 22:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Преамбула это 101010... Их может быть (на входе приемника) случайное количество и нужны для синхронизации начала пакета. Адрес должен начинаться с 3...4 одинаковых бит (все равно 0 или 1 - если с 0, то передатчик последний бит преамбулы ставит 1, и наоборот) по которым чип однозначно детектирует начало адреса. Остальные биты адреса и данных могут быть любые. Идеально если первый байт адреса Е7 или 18
|
|
|
|
11.11.2011, 22:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от Easyrider83
|
а чего у вас за модули?
|
http://www.ebay.com/itm/2pcs-NRF24L0...item3a6442945e
Вот такие, один в один.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
11.11.2011, 22:55
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Эх, блин, у меня такие же. Но у меня они работают.
|
|
|
|
12.11.2011, 08:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
уууу... порождение вражеского разума! Ну как можно понять? Регистр статуса говорит, что пришли данные. А status fifo выдает 0x11 (т.е. пусто)?
А насчет СЕ, похоже правда. При 0 оно в standby уходить должно после передачи.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
12.11.2011, 12:11
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Нет, там два режима сна. Первый аппаратный - когда чип крутит генератор, но на прием-передачу не выходит. Это опущенный СЕ. И второй программный - второй бит регистра конфиг. В этом случае чип тормозит генератор и уходит в кому. В этом режиме он почти ничего не потребляет.
Кстати, для лучшего энергосбережения я применял подтяжку СЕ к нулю и CSN к плюсу. Перед сном переводил порт МК в аналоговый вход.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
12.11.2011, 16:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от Easyrider83
|
применял подтяжку СЕ к нулю и CSN к плюсу
|
Блин... Я б до такого не додумался
Кое-что заработало, благодаря Вашим подсказкам. Мусор посыпался. Но так же редко. Порядка 30 пакетов в 1 час. Фигня. Быстренько сваял передатчик на второй демо-плате... Раз в 100 mc шлет 32 байта. Судя по моргающим диодам, работает. А приемник... Вот тут засада Эта вражеская система после приема 2 пакетов (ха, принимается без ошибок 32 байта, правда расстояние 0.5м, но адрес 3 байта, без контрольной суммы и пр., конфиг я приводил выше) больше ничего не хочет принимать. Сброс по питанию - опять 2 пакета. И мертвые с косами стоят... И тишина... Я что-то туплю. Отличается в этих двух пакетах статус FIFO
Код:
|
Status - 0xCB FIFO status - 0x10 Data width - 0x20 0x00 0x00 0x00 0x00 0x00
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
0x00-0x33
0x01-0x00
0x02-0x01
0x03-0x01
0x04-0x00
0x05-0x01
0x06-0x07
0x07-0x40
0x08-0x00
0x09-0x01
0x11-0x20
0x12-0x00
0x13-0x00
0x14-0x00
0x15-0x00
0x16-0x00
0x17-0x12
Status - 0xCB FIFO status - 0x12 Data width - 0x20 0x00 0x00 0x00 0x00 0x00
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
0x00-0x33
0x01-0x00
0x02-0x01
0x03-0x01
0x04-0x00
0x05-0x01
0x06-0x07
0x07-0x00
0x08-0x00
0x09-0x01
0x11-0x20
0x12-0x00
0x13-0x00
0x14-0x00
0x15-0x00
0x16-0x00
0x17-0x12 |
То, что в столбик, это состояние всех регистров.
I need help!!! (это из фильма)
P.S. Наверняка, niXto знает в чем косяк
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
Последний раз редактировалось DK; 12.11.2011 в 16:34.
|
|
|
|
12.11.2011, 16:34
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
DK, во время приема не забываете сбрасывать IRQ записью 0xFF в статус регистр (0х07)?
Еще важно принять весь пакет. На последнем байте FIFO очищается.
Либо дать команду FLUSH RX.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
12.11.2011, 16:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
ну так...
кусочек програмы
Код:
|
SPI_RD_BUF(RD_RX_PLOAD, Buffer, 32); // Read data from RX payload
for(i=0;i‹32;i++)
fprintf(COM,"%x ",Buffer[i]);
SPI_WR_REG(WRITE_REG + _STATUS,0xff);
SPI_RW(FLUSH_RX);
SPI_WR_REG(WRITE_REG + _STATUS,0xff);
SPI_RW(FLUSH_RX);
SPI_WR_REG(WRITE_REG + _STATUS,0xff);
SPI_RW(FLUSH_RX);
fprintf(COM,"\r\n");
for(rrr = 0; rrr ‹ 0x18; rrr++)
{
if((rrr ‹ 10) || (rrr › 16)) |
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:39.
|
|