도와주세요!!
글 수 15,339
2003.03.31 14:44:35 (*.231.168.11)
6858
PS2-CS5, IDE-CS3에 연결했을때 SA1110_MCS1_V, SA1110_MCS2_V의 값은 다음과
같습니다.
// nCS2, nCS3 버스폭과 타이밍
#define MCS1_L_RTxx ( 0 << 0 ) // 0 : nonburst
#define MCS1_L_RBWx ( 1 << 2 ) // 0 : 32-bit 1 : 16-bit
#define MCS1_L_RDFxxxxx ( 18 << 3 ) // read assert about
180ns+10ns for 200MHz
#define MCS1_L_RDNxxxxx ( 23 << 8 ) // write assert about
230ns+10ns for 200MHz
#define MCS1_L_RRRxxx ( 2 << 13 ) // CS가 닫히고 다음 CS가 열릴
시간 20ns*2
#define MCS1_H_RTxx ( 1 << ( 0+16))//0 // 0 : nonburst 1 :
nonburst & latancy IO
#define MCS1_H_RBWx ( 1 << ( 2+16)) // 0 : 32-bit 1 : 16-
bit
#define MCS1_H_RDFxxxxx ( 10 << ( 3+16))//18 // read assert about
180ns+10ns for 200MHz
#define MCS1_H_RDNxxxxx ( 10 << ( 8+16))//23 // write assert about
230ns+10ns for 200MHz
#define MCS1_H_RRRxxx ( 2 << (13+16))// CS가 닫히고 다음 CS가 열릴
시간 20ns*2
#define SA1110_MSC1_V (
MCS1_L_RTxx|MCS1_L_RBWx|MCS1_L_RDFxxxxx|MCS1_L_RDNxxxxx|MCS1_L_RRRxxx
|MCS1_H_RTxx|MCS1_H_RBWx|MCS1_H_RDFxxxxx|MCS1_H_RDNxxxxx|MCS1_H_RRRxxx )
// nCS4, nCS5 버스폭과 타이밍
#define MCS2_L_RTxx ( 0 << 0 ) // 0 : nonburst 1 : nonburst
& latancy IO
#define MCS2_L_RBWx ( 1 << 2 ) // 0 : 32-bit 1 : 16-bit
#define MCS2_L_RDFxxxxx ( 20 << 3 ) // read assert about
200ns+10ns for 200MHz
#define MCS2_L_RDNxxxxx ( 20 << 8 ) // write assert about
200ns+10ns for 200MHz
#define MCS2_L_RRRxxx ( 2 << 13 ) // CS가 닫히고 다음 CS가 열릴
시간 20ns*2
#define MCS2_H_RTxx ( 0 << ( 0+16))// 0 : nonburst 1 :
nonburst & latancy IO 1
#define MCS2_H_RBWx ( 1 << ( 2+16))// 0 : 32-bit 1 : 16-
bit 1
#define MCS2_H_RDFxxxxx ( 18 << ( 3+16))// read assert about
200ns+10ns for 200MHz 4
#define MCS2_H_RDNxxxxx ( 23 << ( 8+16))// write assert about
200ns+10ns for 200MHz 0
#define MCS2_H_RRRxxx ( 0 << (13+16))// CS가 닫히고 다음 CS가 열
릴 시간 20ns*2 0
#define SA1110_MSC2_V (
MCS2_L_RTxx|MCS2_L_RBWx|MCS2_L_RDFxxxxx|MCS2_L_RDNxxxxx|MCS2_L_RRRxxx
|MCS2_H_RTxx|MCS2_H_RBWx|MCS2_H_RDFxxxxx|MCS2_H_RDNxxxxx|MCS2_H_RRRxxx )
위와 같이한 후, PS2-CS3, IDE-CS5 했을때 EZBOOT에서 모두 인식하였습니다.
CS5번에 74HC138를 사용하여 IDE와 PS2를 동시에 연결하여 사용하려고 ezboot
에서 test해보았습니다.
인식이 안되는데 문제는 장치마다 다른 timing때문이 것 같습니다.
ezboot 소스에서 IDE의 ADDRESS를 수정한 다음, CS5번을 위와 같이
(SA1110_MSC2_V) 하면 PS2만 인식할것이고 SA1110_MSC2_V를 SA1110_MSC1_V의
값으로 수정하면 IDE만 인식을.....
어떻게 해야 하나의 CS에 여러개의 장치를 사용할수 있나요?
그리고 위에서 말하는timing이란 어떻게 결정이 되는 지요?
(예 (20 << 3) read assrt about 200ns+10ns for 200MHz)