안녕하세요. W5100 사용자입니다. 절차가 아래 표시한게 맞는지요?
하드웨어는 아래와같이 구성되어 있습니다.
CS/WR/RD, [A1:A0], [D7~D0] 사용하고, [A14~A2]와 SEN을 GND 처리하였습니다.
CS = 0
MR setting
[A1:A0] = 0:0
[D7:D0] = 03 → AI & IND setting
WR = 0
WR = 1
GAR0~GAR3 setting
[A1:A0] = 0:1
[D7:D0] = 00 -->MSB
WR = 0
WR = 1
[A1:A0] = 1:0
[D7:D0] = 01 – LSB
WR = 0
WR = 1
[A1:A0] = 1:1
[D7:D0] = 192
WR = 0
WR = 1
[D7:D0] = 168
WR = 0
WR = 1
[D7:D0] = 100
WR = 0
WR = 1
[D7:D0] = 254
WR = 0
WR = 1
검토 부탁드립니다.
감사합니다.
suhwan
November 2, 2014, 11:12pm
2
하드웨어 구성은 특별히 틀린 것이 없어 보입니다.
Read /Write는 하기의 W5100 Driver를 참고 하시기 바랍니다.
간단히 설명하면,
IDM_AR0 register에 상위 어드레스를 Write하고
IDM_AR1 register에 하위 어드레스를 Write한뒤
Reat와 Write에 맞게
IDM_DR register에 값을 Read혹은 Write하시면 됩니다.
감사합니다.
uint8 IINCHIP_READ(uint16 addr)
{
uint8 data;
IINCHIP_ISR_DISABLE();
*((vuint8*)IDM_AR0) = (uint8)((addr & 0xFF00) >> 8);
*((vuint8*)IDM_AR1) = (uint8)(addr & 0x00FF);
data = *((vuint8*)IDM_DR);
IINCHIP_ISR_ENABLE();
return data;
}
uint8 IINCHIP_WRITE(uint16 addr,uint8 data)
{
*((vuint8*)IDM_AR0) = (uint8)((addr & 0xFF00) >> 8);
*((vuint8*)IDM_AR1) = (uint8)(addr & 0x00FF);
*((vuint8*)IDM_DR) = data;
IINCHIP_ISR_ENABLE();
return 1;
}
W5100 Driver Link : [url]http://wiznet.co.kr/sub_modules/en/product/product_detail.asp?Refid=648&page=1&cate1=&cate2=&cate3=&pid=1074&cType=2[/url]