Радио

радиопередача на nrf24l01

rk 17-08-2015 23:21

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


Кондер по питанию прямо на модуле припаивал?
MaxFox 17-08-2015 23:52

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

Вот у меня на стороне приемника, может поможет.
На тайминги после включения и смены режима (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 18-08-2015 12:11

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

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