Проверка работоспособности nrf24l01+
- Войдите на сайт для отправки комментариев
Чт, 01/06/2017 - 13:22
Добрый день.
Прошу помочь понять, что происходит. Ситуация такая: была отличная пара из двух нрф с усилителем, но во время отладки регулятора напряжения по-глупости сжег одну из них вместе с ардуинкой. Заказал в другом месте, чтоб быстрее было, а оно что-то не то.
Взял в сети скетч для проверки нрф. Мы слушаем эфир:
#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(9,10); // инициализировать модуль на пинах 9 и 10 Для Уно //RF24 radio(9,53);// Для Меги const uint8_t num_channels = 128; uint8_t values[num_channels]; void setup(void) { Serial.begin(9600); printf_begin(); radio.begin(); radio.setAutoAck(false); radio.startListening(); radio.printDetails(); // Вот эта строка напечатает нам что-то, если все правильно соединили. delay(5000); // И посмотрим на это пять секунд. radio.stopListening(); int i = 0; // А это напечатает нам заголовки всех 127 каналов while ( i < num_channels ) { printf("%x",i>>4); ++i; } printf("\n\r"); i = 0; while ( i < num_channels ) { printf("%x",i&0xf); ++i; } printf("\n\r"); } const int num_reps = 100; void loop(void) { memset(values,0,sizeof(values)); int rep_counter = num_reps; while (rep_counter--) { int i = num_channels; while (i--) { radio.setChannel(i); radio.startListening(); delayMicroseconds(128); radio.stopListening(); if ( radio.testCarrier() ) ++values[i]; } } int i = 0; while ( i < num_channels ) { printf("%x",min(0xf,values[i]&0xf)); ++i; } printf("\n\r"); } int serial_putc( char c, FILE * ) { Serial.write( c ); return c; } void printf_begin(void) { fdevopen( &serial_putc, 0 ); }
Вот что в сериалмониторе у старой рабочей нрф-ки:
А вот, что пишет новая (нерабочая):
Все пропаяно проводами МГТФ. Питание 3,3 В от LT1084 (на фото черная сборка возле нрф) плюс электролит 2мкФ на нрфке . На всякий случай, фото сборки новой проблемной нрф-ки:
Сам я не спец в ардуино, это хобби.
Буду рад, если кто-то сможет помочь разобраться.
конденсатор не забыли напоять? и проверьте еще раз правльность подключения, чип точно нрф или аналог ?
Буду рад, если кто-то сможет помочь разобраться.
У меня было в точности так же, как у вас со второй. Оказалось просто неправильно подключил к ардуине. Внимательно проверьте соединение
ну и пс ... я отказался от этой библиотеки и стал использовать софт spi, т.к. к ардуине у меня много еще чего подключено
конденсатор не забыли напоять? и проверьте еще раз правльность подключения, чип точно нрф или аналог ?
Конденсатор на месте. Прозвонил все соединения. А вот, касательно аналога как раз большой вопрос. Как я писал выше, брал у другого продавца и вполне возможен такой вариант. В сети встречал предупреждения, что такое возможно, но как отличить их и что делать, если это аналог, не знаю.
Еще смутило, что у рабочего нрф в сериалмониторе пишет Model nrf24L01+, а у нерабочего - nrf24L01.
Тест для частичной проверки TX на одной плате, когда второй нет. В коде нужно убрать delay(1000);
Тест для частичной
Спасибо большое. В понедельник проверю.
Если возникнет вопрос "почему убрать delay(1000)" - ответ на него надеюсь найти здесь: http://arduino.ru/forum/apparatnye-voprosy/nrf-ne-peredaet-redkie-pakety
Встречаются нрф, которые криво ведут себя в режиме "R". Обычно они сохраняют работоспособность в режиме "T" и могут автоматически переключаться в "R" для принятия подтверждения отправки.
Метод лечения нрф помогает не всегда, но аппаратно ничего не повредит:
1) отсоединить нрф-овский вход CE от ардуино и соединить его через резистор 1 ком с любым свободным выводом ардуино PINXX и программно подать на PINXX высокий уровень:
2) Или просто отсоединить CE от ардуино и подать на него +5...+3 V через резистор 1 ком.
Прошу помочь понять, что происходит. Ситуация такая: была отличная пара из двух нрф с усилителем, но во время отладки регулятора напряжения по-глупости сжег одну из них вместе с ардуинкой. Заказал в другом месте, чтоб быстрее было, а оно что-то не то.
Какими бывают модули:
http://forum.amperka.ru/threads/nrf24l01-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C.3205/page-25#post-54029
- подлинный скандинавский nRF24L01 +
- подлинный скандинавский nRF24L01 (без ESB, без скорости 250 Кбит/с) - возможно маркированный как +
- качественный клон также, возможно даже выигрывая у скандинава в некотором случае (у некоторых есть более высокая выходная ВЧ-мощность)
- клон с инверсией OTA bit (ESB хорошо между тем же самым, несовместимым со скандинавом)
- клон с уменьшенной чувствительностью и/или увеличенным энергопотреблением
- любое вышеупомянутое с отсутствующими пассивными компонентами по сравнению со скандинавским справочным дизайном печатной платы
Между тем:
http://forum.amperka.ru/threads/nrf24l01-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C.3205/
http://forum.amperka.ru/threads/nrf24l01-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C.3205/
Скажите а как можно проверить через скетч статус nrF???? В моем проекте надо быть увереным что она отвечает и работает. ну типа можно как то опросить чтобы она вернула какое то значения true там и т.д. Ниче не могу найти((( если можно строчку кода или ссылку а я почитаю. Спасибо