ATMEGA128을 이용하여 WIZ550IO porting 중에 있습니다.
통신속도는 8Mhz이며 기본적인 setting(SPI / VDM사용)을 구현하였습니다.
통신 확인을 위해서 getRCR()를 이용하여 전송시 0x03 값이 feedback이 들어오는걸 확인하였습니다. 다른 파라미터를 보내봐도 동일하게 0x03으로 feedback이 수신되고 있습니다.
check point를 문의드립니다.
하드웨어 구성이랑 코드 아래와 같이 작성하였습니다.
더 필요한 정보있으시면 말씀해주세요~
-
하드웨어 구성
Master(atmel) Wiz550io
PB1(SCK)_out ---------------> J1_Pin5(SCK)
PB2(MOSI)_out ---------------> J1_Pin3(MOSI)
PB3(MISO)_in <--------------- J1_Pin4(MISO)
PB4(SS control)_out ----------> J1_Pin6(SCSn) -
코드
#define SS_1 PORTB |= 0x10; // PORTB or 0x10 => Low -> high
#define SS_0 PORTB &= ~ 0x10; // PORTB or 0x10 => High -> Low
int main(void)
{
SPI_Masterinit();
USART_init();
reg_wizchip_cs_cbfunc(wizchip_select, wizchip_deselect);
reg_wizchip_spi_cbfunc(wizchip_read, wizchip_write);
if(getRCR() != 0x08)
{
unsigned int j = 0;
j = getRCR();
putchar0(j); // 순서대로 보내기
}
}
void wizchip_select(void)
{
SS_0;
}
void wizchip_deselect(void)
{
SS_1;
}
void wizchip_write(uint8_t wb)
{
unsigned char data;
data = wb;
SPCR&=~0x80;
SPDR=data;
while(!(SPSR&0x80));
SPCR|=0x80;
}
uint8_t wizchip_read()
{
unsigned char data;
while(!(SPSR&0x80));
data = SPDR;
SPCR|=0x80;
return data;
}