izhevsk.ru Главная /  Радио /  радиопередача на nrf24l01
тема закрыта

Имя:
Пароль:
 зарегистрироваться | Войти через
напоминатель пароля
радиопередача на nrf24l01
НОВАЯ ТЕМА правила | поиск | картинки | | | о форуме |
  Новости | Авто | Недвижимость | Работа | Бизнес | Стройка | Объявления | Совместная покупка | | |
  следующая тема | предыдущая тема
Автор Тема:   радиопередача на nrf24l01   версия для печати
MaxFox
Рейтинг: 3/0
написано 17-8-2015 22:10 MaxFox

Ребят, кто работал с радиомодулями
nrf24l01+? Решил попробовать,
прочитал несколько статей, но
законнектиться пока не получилось.
Ставлю в режим передатчика,
данные передает, пин irq падает на
землю и ставится флаг в регистре
статус об успешной передаче.
Переключаю на прием - тишина.
прерываний вообще нет.
куда копать?
Показать текст сообщения полностью
rk
Рейтинг: 546/-186
-- написано 17-8-2015 23:21 rk

quote:
Изначально написано MaxFox:
Ребят, кто работал с радиомодулями
nrf24l01+?
куда копать?


Кондер по питанию прямо на модуле припаивал?
MaxFox
Рейтинг: 3/0
-- написано 17-8-2015 23:52 MaxFox

паял. причем разные пробовал.. на 1 мкф на передатчике при подаче питания приходит верный байт. но потом тишина. больше ставлю, 22 например, совсем тишина. меньше, 0,1мкф иногда бывает идут посылки с верной периодичностью, но данные неверные
rk
Рейтинг: 546/-186
-- написано 18-8-2015 00:02 rk

Вот у меня на стороне приемника, может поможет.
На тайминги после включения и смены режима (power up) обрати внимание.


#pragma vector=INT0_vect
__interrupt void INT0_interrupt( void )
{
nrf24l01p_read_rx_payload((unsigned char *)command);
for ( char i=0; i < SERVO_QUANTITY; i++)
{
servo_SetPosition( i, command[i] );
}
nrf24l01p_clear_irq_flag(NRF24L01P_IRQ_RX_DR);
}

int main( void )
{
nrf24l01p_spi_init();
servo_Init();
nrf24l01p_ce_off();
__delay_cycles((unsigned long int)(2500000 * CPU_FREQUENCY));

//RX

nrf24l01p_set_crc_mode(NRF24L01P_CRC_16BIT); // set CRC mode
nrf24l01p_set_power_mode(NRF24L01P_PWR_UP); //power up
__delay_cycles((unsigned long int)(1500 * CPU_FREQUENCY));
nrf24l01p_set_operation_mode(NRF24L01P_PRX); // set PRIM_RX on
nrf24l01p_open_pipe(NRF24L01P_ALL, false);
nrf24l01p_open_pipe(NRF24L01P_PIPE0,false); //open pipe0 and disable auto ack
nrf24l01p_set_address_width(NRF24L01P_AW_5BYTES); //set length address
nrf24l01p_set_address(NRF24L01P_PIPE0,"ABCDE");
nrf24l01p_set_rf_channel(120);
nrf24l01p_set_datarate(NRF24L01P_1MBPS);
nrf24l01p_set_lna_gain(NRF24L01P_LNA_HCURR);
nrf24l01p_set_rx_payload_width(NRF24L01P_PIPE0,CMD_LENGTH);
nrf24l01p_set_irq_mode(NRF24L01P_IRQ_RX_DR,true);
nrf24l01p_ce_on();
__delay_cycles((unsigned long int)(150 * CPU_FREQUENCY));

__enable_interrupt();

while(1)
{
;
}
}

MaxFox
Рейтинг: 3/0
-- написано 18-8-2015 00:11 MaxFox

вот у вас тут авто аск отключен и вообще, многие настройки не по умолчанию... спасибо, завтра портирую и посмотрим что получится)
MaxFox
Рейтинг: 3/0
-- написано 31-8-2015 20:54 MaxFox

все, получилось. проблема была в питании, питал от 2,7в. поменял на 3,3в и все заработало)

200x150 320x240 400x300 800x600    без переносов   
быстрый ответ   

подпись
следующая тема | предыдущая тема

Главная /  Радио /  радиопередача на nrf24l01 форумы izhevsk.ru

 
 
 
 
 
© ООО "Марк" 2020
 
Интернет-провайдер КК МАРК-ИТТ