먼가 이해가 안되서 끄적끄적
row 0(윗줄)에 high로 흘리고
col 0 / col 1 에서 읽으면 키를 눌러서 연결되어있으니 둘 다 읽히고
row 1(아랫줄) 을 읽기 위해서 row 0을 low로 하고 row 1을 high로 하면
row 0, col 1 과 row 1, col 1이 전기적으로 이어지면서 row 1의 전기가 row 0로 넘어가게 되고
row0 를 타고 col 0에 들어가서
눌리지 않은 row 1, col 0이 눌린것으로 오인식되게 된다.
신기하네..
그래서 다이오드 쓴다고.
얘는 누르지 않아는데 눌린걸로 착각하는 "고스팅"

얘는 스캔라인이 다른데 두개 누르면 안눌린걸로 착각하게 되는 현상인데.. 이건 딱히 용어가 없네
잘은 모르겠지만.. col 쪽 gpio의 threshold를 넘길수 없어서 안눌린걸로 인식되는걸까?
다른 row는 0으로 되어있으니 다른쪽으로 쭈르르르륵 다 빨려들어가서 0으로 되거나?
+
GPT 말로는 2 key roll over / masking 이라고 표현한다고 하는데.. 맞나?
그리고 gpio를 row에서 low/high 값 대신 high-Z(init) / high로 해보란다.
레지스터 직접 건드리면 init까진 아니어도 된다는데 CRL 레지스터에 쓰면 된다고 한다.

블로킹은
소스코드(그러니까 작동 알고리즘상)에서 고스팅을 방지하기 위해서 어떤 키가 잘못 눌리는지 판단해서 차단해버리는거
여긴 진짜로 눌렀는데 고스팅 처리에 의해서 막혀서 안눌리게 되는걸 의미하는 듯.
'모종의 음모 > USB 자작 키보드' 카테고리의 다른 글
| kicad로 키보드 설계하기 (0) | 2026.09.10 |
|---|---|
| 커스텀 키보드 자작 아이디어 (2) | 2026.09.01 |
