안녕하세요~ 

C2 Combo 컨버터는 좋은 PS/2 to USB 컨버터인데요, 사실 이게 키보드 콘트롤러로도 사용할 수 있어요. 좀 더 자세하게 들어가면 이것저것 많이 할 수도 있지만... 범용 키보드 콘트롤러로 사용하는 방법을 간단하게 소개해드릴까 합니다. 관심이 있으시면 좀 더 깊게 들어가보셔도 괜찮을거 같구요.


앞서 자료실에 필요한 키보드컨트롤러용 펌웨어 소스코드와 사용방법을 올려 놓았는데요. 이번에는 좀 더 실제적으로 기판에 어떻게 적용하는지 보여드리려 합니다. 그 다음 추가적인 응용은 사용자 몫이겠지요. 보기보다 어렵지 않습니다. 


먼저... 콘트롤러를 적용하기 전에 사용할 기판의 매트릭스를 파악합니다. 매트릭스는 각 스위치 간 연결관계를 표로 나타낸거라 보시면 됩니다. 보통 표로 나타내요. 수학의 행렬과 같은 표기방법이라 이름도 matrix(행렬)입니다.

기판에 보시면... 스위치 접점이 두개인데 한쪽은 편의상 row, 한쪽은 column으로 표시합니다. 적은쪽이 컬럼, 많은쪽이 로우에요. 뒤바뀌어도 상관없어요. 편의상 정하는거니까요. 저렇게 표로 나타내면 각 스위치간 연결관계를 한눈에 알 수 있습니다. 실제로 회로가 어떻게 물리적으로 연결되어있는지는 신경 안써도 되는거지요.  가로세로 같은 줄에 있는 스위치들은 다 연결되어 있다는 겁니다. 물론 처음보는 기판의 매트릭스를 만드시려면 일일히 연결관계를 테스터 찍어서 찾아야합니다만...

제가 선택한 기판의 매트릭스는 다음과 같습니니다. 

bb8c78a702d297c47665e94a2dcaf794.jpg

콘트롤러와 상관없이, 각 스위치들은 위와 같이 상대적으로 연결되어있습니다. 이제 범용콘트롤러를 가지고 기판에 맞게 콘트롤러의 매트릭스를 설정하고 콘트롤러와 기판을 연결해주면 끝납니다. 어때요, 쉽죠?


이제 키보드 기능을 하도록 짜여진 소스코드를 사용할 기판에 맞게 수정해서 콘트롤러에 업로드 할겁니다. 해당 소스코드와 펌웨어 빌드 및 업로드 방법은 여기를 참고하시기 바랍니다. 

우리가 수정할 곳은 keymap_ansi.h 파일 뿐이구요, 

소스코드.jpg

keymap_ansi.h에서 다음 부분을 기판의 매트릭스와 맞게 수정하시면 됩니다. 헷갈리시면 안되는게 위의 기판의 매트릭스는 각 스위치의 상대적인 위치를 나타내는 거구요, 콘트롤러의 매트릭스는 해당 위치의 스위치가 실제로 발생하는 입력신호를 나타내요. 일단 보기엔 똑같습니다만... 말하자면 소스코드의 'A'를 'B'로 바꿨다고 칩시다. 그럼 A스위치를 누르면 입력은 B가 되는겁니다. 이렇게 입맛에 맞게 수정하시고... 펌웨어를 만들어서 콘트롤러에 올려주면 되요. 


이러면 잘 동작하는 컨트롤러가 준비되었습니다. 이제 사용할 기판에 콘트롤러를 선으로 연결해주시면 되겠습니다. 

c2C.jpg

C2콘트롤러의 모습입니다. 기판에 보시면 접점이 보이구요. 저 접접들을 기판과 연결하면 끝납니다. 접접은 일련번호가 붙어있고, 각 접점별로 기능을 나누어 씁니다. 접점별 기능은 이미 정해져 있어요.

  1 2 3 4 5 6 7 8

B7 B6 B5 B4 B3 B2 B1 B0

이렇게... 편의상 컬럼 번호로 정했구요. 기판에 해당 컬럼 번호의 접점과 콘트롤러를 전선으로 연결해주면 됩니다. 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

F0 F1 F4 F5 F6 F7 D7 D6 D5 D4 E6 D0 D1 D2 D3

 이건 로우 번호구요. (컬럼/로우는 편의상 붙인 명칭이라고 했지요...) 역시 해당 위치에 콘트롤러와 선으로 연결해주면 됩니다. 

C6과 C7은 LED입니다. 470옴 저항을 하나 붙여서 LED에 연결해주시면 캡스락, 스크롤락 엘이디를 표시해줍니다. 


다음 이렇게... 기판에 콘트롤러를 전선으로 연결해주시면 되는데요, 

기판결합1.jpg

꼭 이렇게 깨끗하게 정리해서 연결하라는 법은 없구요. 기판의 회로가 끊어진 곳 없이 정상적으로 잘 이어져 있다면 이제 콘트롤러도 연결되어 키보드 구실을 하게 될겁니다. 


고스트 현상 없이 동시 입력을 지원해주기 위해 보통 다이오드가 사용되구요. 다이오드는 방향이 있습니다. 한쪽에 띠가 있어 방향을 표시하는데, 신호의 방향은 보통

[컬럼신호]-> 다이오드.jpg -> [로우신호] 방향입니다. 잘 연결했는데도 입력이 안될 경우 다이오드 방향이 바뀌어서 그런 경우가 많으니 주의해서 확인하셔야겠습니다. 


이제 스위치 달고 컴퓨터에 연결해서 눌러보면 잘 동작하는지 알 수 있겠지요? 잘 동작하나요?

기판결합.jpg

혹시 기존의 올드 키보드일 수도 있겠네요. 그렇다면 적절한 위치의 접접에 위의 방법대로 연결해주면 되겠습니다. 


어때요? 참 쉽죠? 별로 어렵지 않습니다. 


여기까지만 해도 C2 Combo를 키보드 컨트롤러로써 충분히 활용할 수 있습니다. 그렇게 만든 키보드, 아주 잘 동작합니다. 


그럼, 끗.


IMG_20130906_131804.jpg

profile

(1) write down the problem;
(2) think very hard;
(3) write down the answer.

...... 참 쉽죠?