Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
27.11.2012, 13:12
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Ловите файлы и тестовый проект с их использованием.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
29.11.2012, 18:09
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
В процедурах RF_SendPayloadACK и RF_SendPayload
в моем случае мешается строка:
RF_Flush(SPIx, RF_Flush_TX_CMD);
Без нее передача идет.
|
|
|
|
29.11.2012, 20:39
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Она не обязательная в общем-то. Но с ней у меня все работает. Может чипы разных ревизий?
|
|
|
|
30.11.2012, 05:24
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Как-нибудь куплю цифровой микроскоп - сфотаю, а пока мелковаты для меня надписи на чипе Собственно без нее все работает, пока продолжу писать основную прогу, как натолкнусь на забитость буфера - буду дальше думать.
|
|
|
|
30.11.2012, 07:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от Easyrider83
|
Она не обязательная в общем-то. Но с ней у меня все работает.
|
У старых чипов без Р попытка очистки буфера примерно в 1/1000 случаев приводит к зависанию намертво. До выключения питания. У новых не знаю, у меня сейчас в них адаптированный под старые код
Вначале проверяй заполненность буфера
|
|
|
|
30.11.2012, 10:44
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
У меня на прием идет проверка буфера. Если буфер пуст - сбрасывает IRQ.
|
|
|
|
30.11.2012, 13:19
|
|
Частый гость
Регистрация: 27.08.2008
Адрес: Москва
Сообщений: 29
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Пришёл "мешок" NRF24L01P с алиэкспресса. Делаю тестовый "градусник" - одна макетка передаёт температуру раз в секунду, другая принимает всё, что передадут и выводит в UART.
Заметил проблему,кажется, с IRQ, может кто сталкивался?
У приёмника оставлено апаратное прерывание, заведено на INT0. Через произвольное время - от пары секунд до десятков минут, приёмник перестаёт принималь данные (RX_DR=0, RX_EMPTY=1), SPI работает. Чтение/перезапись конфига, POWEROFF модуля не помогают - только сброс контроллера.
Сейчас убрал аппаратное прерывание и делаю опрос раз в 10мс - уже с час работает и не виснет.
Железо - ATmega162/8Mhz RC - передатчик, ATmega328/16MHz (реально freeduino). Компилятор - avr-gcc
|
|
|
|
30.11.2012, 13:22
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
"Виснет" - понятие растяжимое. Посмотрите тестером, не падает ли IRQ? Может быть это ваш контроллер "пропускает" момент, когда IRQ срабатывает?
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
30.11.2012, 13:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Конфиг выложи
Встречался с таким, но никак не могу вспомнить, может подтолкнет
IRQ пропустить невозможно, он висит до программного сброса прерываний
|
|
|
|
30.11.2012, 13:47
|
|
Частый гость
Регистрация: 27.08.2008
Адрес: Москва
Сообщений: 29
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
По поводу "пропускает". Осциллографом гляну, но... Повесил таймер для проверки - работает, печатает статус и конфиг в UART и, если 30 секунд ничего не получали, делаю из него poweroff и повторный инит всего (SPI, NRF) с очисткой статуса и flush_tx/rx. Изменений конфига нет, инит не спасает.
Конфиг NRF: x3f,x3f,x3f,x03,x4f,x12,x03
Во всех адресах размер пакета 32, адрес приёмника и передатчика "стандартный" e7e7e7e7e7
В INT0:
Код:
|
cli();
has_data = nrf_get_payload(rx_buf); // Result as pipe#+1 if data found, 0 if RX_DR not set
nrf_config(STATUS, (1‹‹RX_DR)|(1‹‹TX_DS)|(1‹‹MAX_RT));
sei(); |
В main() :
Код:
|
//...
while(1) {
if (has_data) {
nrf_config_register(STATUS, (1‹‹RX_DR)|(1‹‹TX_DS)|(1‹‹MAX_RT));
uart_print(rx_buf); // buffered, no delay
has_data = 0;
}
_delay_ms(10);
//...
if (nrf_read(FIFO_STATUS) & (1‹‹RX_FULL)) {
uart_pprint("**CLEAR RX FIFO**);
uart_command(FLUSH_RX);
nrf_config_register(STATUS, (1‹‹RX_DR)|(1‹‹TX_DS)|(1‹‹MAX_RT));
}
} |
PS: А, меж тем, polling версия продоложает нормально работать. IRQ версия уже б повисла...
›› IRQ пропустить невозможно, он висит до программного сброса прерываний
А он, типа, перестаёт приходить, кажется
Последний раз редактировалось av0000; 30.11.2012 в 13:56.
Причина: Крайний конфига поправил (2 на 3)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:21.
|
|