Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] spi "freezes"

Status
Not open for further replies.

bignoob

Newbie level 2
Newbie level 2
Joined
Aug 18, 2014
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
21
Hello,
I have an issue with spi that freezes. I'm using atmega88 with nrf24l01 but when i try to test spi communication i get stuck.
I initialize spi based on atmel specifications:

Code:
//
DDRB |= (1<<DDB5) | (1<<DDB3) | (1<<DDB2) |(1<<DDB1);
SPCR |= (1<<SPE)|(1<<MSTR);

And when I try to test out writing to spi (and print out to terminal ) i get stuck looping... ( i have usart initialized and used without any problems)

Code:
char spi_rw(unsigned char x)
{
	SPDR = x;	
	//get stuck in this while loop 
	while(!(SPSR & (1<<SPIF)));
	//printing to terminal after get's out of loop but never go out	
	return SPDR;
}

I'm trying to read STATUS register:

Code:
uint8_t get_reg(uint8_t reg)
{	

	_delay_us(10);
	CLEARBIT(PORTB, 2);	//CSN low so nrf start listen for command 
	_delay_us(10);
	spi_rw(R_REGISTER + reg);	
	_delay_us(10);
	reg = spi_rw(NOP);
	_delay_us(10);
	SETBIT(PORTB, 2);	//CSN IR_High nrf do nothing now
	return reg;	
}

I try calling get_reg(STATUS) and passing it to usart to print out resultand I get nowhere since code stuck in while loop.

P.S. i use this simple functions to set and clear bits
Code:
#define BIT(x) (1<<(x))
#define SETBITS(x,y) ((x)|=(y)))
#define CLEARBITS(x,y) ((x) &=(~(y)))
#define SETBIT(x,y) SETBITS((x), (BIT((y))))
#define CLEARBIT(x,y) CLEARBITS((x), (BIT((Y))))

Thanks in advance, any help would be greatly appreciated. :sad:
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top