Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь.

 
Опции темы
Непрочитано 17.01.2017, 23:16  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 428
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

TechMike, EN_ACK_PAY - это не подтверждение, а включение полезной нагрузки с АСК. Т.е. с приемника в момент передачи АСК могут передаваться и данные в этом же пакете.
Реклама:
sat_art вне форума  
Непрочитано 17.01.2017, 23:20  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 428
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

При конфигурировании надо все регистры записывать.
Приведите весь конфиг.
sat_art вне форума  
Непрочитано 17.01.2017, 23:26  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от sat_art Посмотреть сообщение
При конфигурировании надо все регистры записывать.
Приведите весь конфиг.
Вся функция конфигурирования NRF:
PHP код:
#define mirf_CH                10 //transmission channel
#define mirf_PAYLOAD        0 //payload lenght
#define mirf_setTX mirf_write_register(CONFIG, mirf_CONFIG|((1‹‹PWR_UP)|(0‹‹PRIM_RX)))
#define mirf_setRX mirf_write_register(CONFIG, mirf_CONFIG|((1‹‹PWR_UP)|(1‹‹PRIM_RX)))
#define mirf_CSN_hi PORTB |=  (1‹‹CSN);
#define mirf_CSN_lo PORTB &= ~(1‹‹CSN);
#define mirf_CE_hi PORTB |=  (1‹‹CE);
#define mirf_CE_lo PORTB &= ~(1‹‹CE);

//config mirf
uint8_t mirf_config()
{

      for(
uint8_t cnt 100;;) {
          
mirf_write_register(CONFIG, (‹‹ EN_CRC) | (‹‹ CRCO) | (‹‹ PRIM_RX)); // Выключение питания
        
if (mirf_read_register(CONFIG) == ((‹‹ EN_CRC) | (‹‹ CRCO) | (‹‹ PRIM_RX)))
          break;
        
// Если прочитано не то что записано, то значит либо радио-чип ещё инициализируется, либо не работает.
        
if (!cnt--)
          return 
0// Если после 100 попыток не удалось записать что нужно, то выходим с ошибкой
        
_delay_ms(1);
      }

    
mirf_write_register(CONFIG,0);    
    
_delay_ms(50);
    
mirf_write_register(EN_RXADDR, (‹‹ ERX_P0) | (‹‹ ERX_P1)); // включение каналов 0 и 1
    
mirf_write_register(RF_CHmirf_CH);            //set RF channel

    
if (mirf_PAYLOAD!=0){
        
// настраиваем отправку данных фиксированной длинны
        
mirf_write_register(RX_PW_P0mirf_PAYLOAD); //length of incoming payload
        
mirf_write_register(FEATURE, (mirf_read_register(FEATURE) & ~0x01)); // включаем автоповтор отправки с контролем приема
    
}else{
    
// настраиваем отправку данных произвольной длинны с автоподтверждением
        
mirf_write_register(FEATURE,(‹‹ EN_DPL) | (1‹‹EN_ACK_PAY) | (1‹‹EN_DYN_ACK));
        
mirf_write_register(DYNPD, (‹‹ DPL_P0));     // включение произвольной длины для канала 0
        
mirf_write_register(EN_AA,(1‹‹ENAA_P0));    // включение автоподтверждения только по каналу 0
    
}

    
mirf_send_cmd(FLUSH_TX);    // очищаем буфер на передачу
    
mirf_send_cmd(FLUSH_RX);    // очищаем буфер на прием

    
mirf_setRX// rx mode
    
_delay_us(135);
    
mirf_CE_hi;
    return 
1;

TechMike вне форума  
Непрочитано 17.01.2017, 23:28  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Симптомы дублирования:
Отправляю число 1, на приемнике получаю 1.
Отправляю число 2, на приемнике получаю число 1.
Отправляю число 3, на приемнике получаю число 2.
и т.д.
TechMike вне форума  
Непрочитано 17.01.2017, 23:45  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 428
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от TechMike Посмотреть сообщение
PHP код:
mirf_write_register(CONFIG,0); 
Это зачем?

Сообщение от TechMike Посмотреть сообщение
if*(mirf_PAYLOAD!=0){
//*настраиваем*отправку*данных*фиксированной*длинны
mirf_write_register(RX_PW_P0,*mirf_PAYLOAD);*//length*of*incoming*payload
mirf_write_register(FEATURE,*(mirf_read_register(F EATURE)*&*~0x01));*//*включаем*автоповтор*отправки*с*контролем*приема
}else{
//*настраиваем*отправку*данных*произвольной*длинны*с *автоподтверждением
mirf_write_register(FEATURE,(1*‹‹*EN_DPL)*|*(1‹‹EN _ACK_PAY)*|*(1‹‹EN_DYN_ACK));
mirf_write_register(DYNPD,*(1*‹‹*DPL_P0));*****//*включение*произвольной*длины*для*канала*0
mirf_write_register(EN_AA,(1‹‹ENAA_P0));****//*включение*автоподтверждения*только*по*каналу*0
}
[/PHP]
Зачем здесь условие?
Повторю - прописывайте все регистры при конфигурировании.
sat_art вне форума  
Непрочитано 17.01.2017, 23:51  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от sat_art Посмотреть сообщение
Это зачем?
С отладки осталось.
TechMike вне форума  
Непрочитано 17.01.2017, 23:53  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от sat_art Посмотреть сообщение
Зачем здесь условие?
Разные настройки для фиксированного и произвольного PAYLOAD. Долго с этим мучался, пока нашел рабочий вариант.
TechMike вне форума  
Непрочитано 17.01.2017, 23:54  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от sat_art Посмотреть сообщение
Повторю - прописывайте все регистры при конфигурировании.
Есть пример, чтобы ничего не забыть?
TechMike вне форума  
Непрочитано 17.01.2017, 23:57  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 428
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

Сообщение от TechMike Посмотреть сообщение
С отладки осталось.
Ну так Вы сбрасываете в ноль регистр конфига. т.е. crc отключается полностью.

mirf_PAYLOAD - что за переменная?
Это условие некорректно работает.
sat_art вне форума  
Непрочитано 17.01.2017, 23:57  
sat_art
Вид на жительство
 
Регистрация: 27.11.2007
Сообщений: 428
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
sat_art на пути к лучшему
По умолчанию Re: Кто-нибудь работал с RF модулями nRF2401A?

TechMike, выше я выкладывал свою библиотеку, посмотрите как там конфигурируется.
sat_art вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто работал с драйвером DM132? sdsrem Микроконтроллеры, АЦП, память и т.д 0 06.07.2010 21:37
Кто нибудь имеет описание, как обращаться к KEELOQовскому регистру в PIC12F635/PIC16F636? Make_Pic Микроконтроллеры, АЦП, память и т.д 1 07.05.2010 12:53
Кто нибудь работал с MUST II System ? trilobit Производственное оборудование 0 28.04.2010 11:51
Кто нибудь имел дело со шрифтами? Djakovskij Микроконтроллеры, АЦП, память и т.д 8 18.02.2010 20:35
Кто работал с Ad7714? ALEKSEY188 Микроконтроллеры, АЦП, память и т.д 18 11.02.2010 03:54


Часовой пояс GMT +4, время: 03:37.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot