2009년 3월 3일 화요일

[Mango 메뉴얼] Ethernet

[Mango 매뉴얼] Ethernet


Mango 보드에는 부트로드 다운로드 및 기타 넷트웍 접속을 위한 10Mbps Ethernet이 장착되어 있다. CS8900A를 Ethernet Controller로 사용하며, hardware sleep 모드를 구현하여 Ethernet을 사용하지 않을 경우 수십 uA 정도의 전류만이 흐르게 되어 전력 절감이 가능하여 모바일 보드에 적합하게 설계 되었다.


[그림 1] Ethernet 관련 부품 실장도


위 그림에 나타난 Ethernet 관련 부품 실장을 보면, CS8900A, E2023 Transformer 및 RJ45 Ethernet Connector의 세가지 중요 부품으로 구성되어 있으며, CS8900A 왼쪽 위에 Ethernet에 클럭을 제공하기 위한 크리스탈이 붙어 있음을 볼 수 있다.


RJ45 connector 및 Transformer는 수동적인 소자이므로, 프로그래머의 관점에서는 신경 쓸 필요가 없다. 소프트웨어 프로그래머의 관점에서, Ethernet을 구동하기 위해 중요한 것은 CS8900A Ethernet Controller와 S3C2443 ARM9 CPU 사이의 결선이다.


[그림 2] Mango 보드 Ethernet 결선도


Mango 보드에서 Ethernet 관련 소프트웨어를 작성할 때 특히 주의해야 할 점은, Mango 보드가 CS8900A의 하드웨어 슬립 기능을 사용한다는 것이다. [그림 2]에서 볼 때, LAN_SLEEPN 신호 (S3C2443의 TCLK_GPB4, CS8900A의 SLEEP#)가 LOW이면 “Hardware Suspend Mode”로 진입하여 최대 100uA의 전류만을 소모한다. 이는 “Software Suspend Mode”에서 소모하는 1mA의 10%에 해당하는 수치로, 대기 전류가 중요한 모바일 환경을 위해서는 이와 같이 전류 소모를 최소화 시켜 줄 필요가 있다. 이 기능으로 인해, Ethernet Controller를 사용하기 전에 먼저 LAN_SLEEPN 신호를 HIGH로 만들어 줄 필요가 있다. 오픈 소스로 구할 수 있는 대부분의 디바이스 드라이브에 이 기능이 고려되지 않았을 것이므로 소프트웨어 작성시 반드시 이 신호선을 HIGH로 한 후 CS8900A를 사용하고, Ethernet을 사용하지 않고 대기할 경우에는 LAN_SLEEPN 신호를 LOW로 하면 된다.

댓글 없음: