سلام مهندسین و محققین عزیز
من یک مقدار راجعبه NRF24L01 مطالعه کردم و چند تا برنامه و کتابخونه که براش نوشته شده بود رو دیدم از جمله کد های Brennen Ball
حالا خواستم برای شروع مقدار یک رجیستر رو بخونم که از درستی نحوه ارتباط میکرو با ماژول مطمئن بشم
طبق چیزهایی که من فهمیدم برای خواندن رجیستر config باید 0 رو به ماژول بفرستم و مقدار اولیه این رجیستر طبق دیتاشیت 0x08 هست بعنی من باید 8 رو دریافت کنم
من برای مگا16 این کد ها رو نوشتم و پایه csn رو به portb.0 و ce رو به زمین و IRQ رو هم بدون اتصال گذاشتم
کد:
SPCR=0x7f;
lcd_init(16);
PORTB.0=1;
lcd_init(16);
PORTB.0=0;
get1=spi(00);
get2=spi(00);
get3=spi(00);
PORTB.0=1;
itoa(get1,buff1);
lcd_gotoxy(1,1);
lcd_puts(buff1);
itoa(get2,buff2);
lcd_gotoxy(6,1);
lcd_puts(buff2);
itoa(get3,buff3);
lcd_gotoxy(13,1);
lcd_puts(buff3);
while (1)
{
// Place your code here
}
حالا مشکل اینه که توی get1 من همیشه 56 دریافت میکنم ولی توی get2 و get3 بعضی وقت ها 8 و بعضی وقت ها 0 دریافت میکنم که 90 درصد مواقع 0 هستش
به نظر شما مشکل از کدهای منه یا ماژول با 2تا ماژول هم امتحان کردم همینجوریه
راستی فرکانس میکرو 4مگ هست و فرکانس spi رو روی 31KHz و مود رو روی mode4 و LSB first گذاشتم