안녕하세요. 디바이스 드라이버에 대해 문의를 좀 드리려고 합니다.
현재 사용하고 있는 메인 칩은 PXA270 이구요. OS는 kernel-2.6.13 버젼입니다.
원래 벌버디가 UART를 3개를 제공하는데요. 여기에 UART 컨트롤러를 추가하게 되었습니다.
EXAR 의 XR16C850 이라는 UART 컨트롤러 입니다만... 바로 붙여서 사용하려고 하니 모호한 점이 한두가지가 아닙니다.
일단은 데이터시트를 바탕으로 Intel Bus Interface를 꾸몄습니다. 데이터 7비트, 어드레스 3비트..이렇게 연결하구요.. 나머지는 레퍼런스에 충실하게 제작했습니다.
PC 모드 Interface가 따로 있기는 한데 이건 PC 단에서 꾸며야 하는 거라는 걸 확연히 알 수 있더군요.
그런데 문제는 지금 이걸 어떻게 테스트할지 입니다. 이 쪽에 디바이스 드라이버 레퍼런스도 없구요... 혹시 16C850 이나 16C550 등의 디바이스 드라이버 작업 경험 있으신 고수님들이 계신가요?
염치없지만 테스트 코드라도 부탁을 좀 드리겠습니다. ;; 그럼 좋은 하루 보내세요.
---> 2007.07.07
커널에 16C550 부터 16C850 까지 지원하는 8250.c 라는 소스가 있더군요.
이걸 이용해서 작업을 할까 하고 있습니다만.. 하드웨어적인 인터페이스는 pxa270 의 어드레스 신호 A1,A2,A3 를 16C850의 A0,A1,A2에 연결했구요, D0-D7 까지는 그대로 연결했습니다. CPLD 에서 nCS 와 Read / Write 도 연결했구요. MSC 레지스터 세팅으로 타이밍과 인터페이스를 설정해주려고 하는데 VLIO-16bit 인터페이스 설정을 하려고 합니다.
메모리 영역은 가상: 0xf1200000, 물리 : 0x12000000 로 설정했습니다.
고수님들의 조언을 구하기 위해 회로를 포함해서 보다 자세한 정보를 올립니다.
좋은 하루 보내세요.
<Read Write Strobe Signals from CPLD>
nIOR#2 : (n16c850_CS ='0' and B_nOE = '0' and nPWE = '1')
nIOW#2 : (n16c850_CS ='0' and B_nOE = '1' and nPWE = '0')
현재 사용하고 있는 메인 칩은 PXA270 이구요. OS는 kernel-2.6.13 버젼입니다.
원래 벌버디가 UART를 3개를 제공하는데요. 여기에 UART 컨트롤러를 추가하게 되었습니다.
EXAR 의 XR16C850 이라는 UART 컨트롤러 입니다만... 바로 붙여서 사용하려고 하니 모호한 점이 한두가지가 아닙니다.
일단은 데이터시트를 바탕으로 Intel Bus Interface를 꾸몄습니다. 데이터 7비트, 어드레스 3비트..이렇게 연결하구요.. 나머지는 레퍼런스에 충실하게 제작했습니다.
PC 모드 Interface가 따로 있기는 한데 이건 PC 단에서 꾸며야 하는 거라는 걸 확연히 알 수 있더군요.
그런데 문제는 지금 이걸 어떻게 테스트할지 입니다. 이 쪽에 디바이스 드라이버 레퍼런스도 없구요... 혹시 16C850 이나 16C550 등의 디바이스 드라이버 작업 경험 있으신 고수님들이 계신가요?
염치없지만 테스트 코드라도 부탁을 좀 드리겠습니다. ;; 그럼 좋은 하루 보내세요.
---> 2007.07.07
커널에 16C550 부터 16C850 까지 지원하는 8250.c 라는 소스가 있더군요.
이걸 이용해서 작업을 할까 하고 있습니다만.. 하드웨어적인 인터페이스는 pxa270 의 어드레스 신호 A1,A2,A3 를 16C850의 A0,A1,A2에 연결했구요, D0-D7 까지는 그대로 연결했습니다. CPLD 에서 nCS 와 Read / Write 도 연결했구요. MSC 레지스터 세팅으로 타이밍과 인터페이스를 설정해주려고 하는데 VLIO-16bit 인터페이스 설정을 하려고 합니다.
메모리 영역은 가상: 0xf1200000, 물리 : 0x12000000 로 설정했습니다.
고수님들의 조언을 구하기 위해 회로를 포함해서 보다 자세한 정보를 올립니다.
좋은 하루 보내세요.
<Read Write Strobe Signals from CPLD>
nIOR#2 : (n16c850_CS ='0' and B_nOE = '0' and nPWE = '1')
nIOW#2 : (n16c850_CS ='0' and B_nOE = '1' and nPWE = '0')
첨부 파일: 16C850_.DSN (83 KiB(84,480 Bytes))
익명 (2007년 07월 09일 오후 10:11)
인터럽트 사용해야하므로 exar칩의 인터럽트 핀을 CPU 의 인터럽트 가능한 핀에 연결해야합니다. |
[ 이글에 답장 | 본문에 답장 ] |
etre21c (2007년 07월 10일 오후 02:08)
!!!감사합니다. 회로를 말씀처럼 수정하고 한번 테스트해 보겠습니다. 좋은 하루 보내세요.. |
'QnA' 카테고리의 다른 글
BTUART사용시 질문 (0) | 2009.07.16 |
---|---|
external memory interface (0) | 2009.07.16 |
16C554 칩(4CH UART) 포팅 관련질문입니다. (0) | 2009.07.16 |
level shifter?? (0) | 2009.07.16 |
serial 통신 속도 변경에 따른 데이터 손상 현상 (0) | 2009.07.13 |
WRITTEN BY
- RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.
,