:::: MENU ::::
Browsing posts in: Tip

키보드 설계 – 고스트 현상

키보드의 각 키는 스위치이고 이것의 입력을 받아서 처리하는 MCU는 I/O에 이 스위치가 연결된다. 하지만 모든 키에 I/O를 할당하기 위해서는 키보드의 갯수 만큼 I/O필요하므로 효율적이지 않다. 따라서 키보드 메트릭스 라는 것을 사용한다. 간단히 설명하면 MCU의 I/O에 여러개의 키를 연결하고 주기적으로 키를 스캔하는 방식이다.

키보드 매트릭스

위 그림에서 Row R0~R7은 MCU의 입력으로 주기적으로 스캔이되고, Column C0~C19까지는 MCU의 출력으로 5V에 연결이 되어 있다.

키보드 고스트 현상

키보드 고스트 현상은 여러개의 키가 눌려질때 어떤키가 인식이 안되거나 다른 키가 눌린것으로 인식이 되는 것이다. 아래 마이크로소프트 사이트에서 확인이 가능하다.

아래 그림의 경우 1) a와 c 키가 동시에 눌린경우는 각각의 키가 인식이 된다. 하지만 a, c, b가 같이 눌리는 경우, 보라색의 도통경로가 형성이 되어 d키도 눌린 것으로 인식이 된다. 이런 현상을 방지하기 위해 다이오드가 필요하다.

다이오드 연결

다음 그림과 같이 각 키에 다이오드를 연결하는데, 스캔 방향이 순방향이 되게 연결을 한다.



Safety Capacitor – X,Y Capacitor

Safety Capacitor, 보통 X,Y Capacitor로 부르며, 안전을 위해 AC 전원 라인에 사용되고, X, Y 2가지 타입이 있다. 일반적으로  X2, Y2를 많이 사용한다.

When a Class-X capacitor, also referred to as an “across the line capacitor”—the capacitor placed between line and neutral—fails because of an overvoltage event, it is likely to fail short. This failure, in turn, would cause an overcurrent protective device, like a fuse or circuit breaker, to open. Therefore, a capacitor failing in this fashion would not cause any electrical shock hazards.

If a Class-Y capacitor, also known as the “line to ground capacitor” or “the line bypass capacitor”—the capacitor placed between line and ground—fails short, this could lead to a fatal electric shock due to the loss of the ground connection. Class-Y safety capacitors are designed to fail open. A failure will cause your electronic device to be subjected to the noise and interference that the capacitor would normally filter out, but at least there will be no fatal electric shock hazard.

참고



맥 ISO 이미지를 부팅용 USB로 복사하기

ISO파일을 img파일로 변환

hdiutil convert -format UDRW -o OSX-Mavericks.img OSX-Mavericks.iso

OS X 는 자동적으로 확장자를 .dmg 로 한다. 즉 OSX-Mavericks.img.dmg

diskutil list를 실행하여 USB 메모리 스틱이 어떤 디바이스에 할당됐는지 확인하고 다음과 같이 unmount를 한다.

diskutil unmountDisk /dev/disk2

디스크 이미지를 복사

sudo dd if=OSX-Mavericks.img of=/dev/rdisk2 bs=1m

Disk Utility.app’ 를 실행하여 드라이버를 unmount

diskutil eject /dev/disk2 를 실행하고 USB 메모리 스틱을 물리적으로 분리

*위 글에서 OSX-Mavericks.iso가 맥용 이미지 파일이고, USB 메모리 스틱은 /dev/disk2에 있다고 가정


Eagle CAD tip

1. Commnad Line 활용

Schematic Editor
Tool Name Command
Add element a,ad,add
Net ne,Net
Move Mov,move
Copy Cop,copy
Name n,na,nam,name
Value v,va,value
Label l,la,lab,labe,label
Text T,tex,text
Board Editor
Tool Name  Command 
Route rou,rout,route
Ripup ri,rip,ripu,ripup
Via Vi,via
Ratsnest r,ra,rat,rasts,ratsn,ratsne,ratsnest

2. Show 명령어: ex) Show R*

라우팅시 오른쪽 마우스 클릭 – 와이어 꺽이는 스타일 변경

3. 라우팅시 가운데 스크롤 휠 클릭 – 레이어변경

4. Ratsnest시 좌측 하단에 라우팅 되지 않은 정보 확인

5. 부품 라이브러리

6. 라이브러리를 만들때 이글에서 만든 Ref-packages.lib 참고

7. Ratsnest로 깔린 카파를 모두 없앨때 –  ripup @ ;

8. 라우팅을 airwire 말고 중간에서 할때 – CTRL을 누르고 라우팅을 한다.

참고:


git 관련 팁 – .gitignore

.gitignore를 설정 전에 원하지 않는 파일(예를 들면 소스가 아닌 컴파일된 obj 파일 같은..)이 repositary에 add/initilized된 경우는 cache를 지우고 tracking을 다시 설정해야 한다.
먼저 필요한 파일들을 commit한후 다음의 명령어를 실행한다.
cache 삭제

git rm -r –cached .

다시 tracking 하도록 설정

git add .

그 다음 commit

git commit -m “.gitignore is now working”


Github – Fork한 저장소 업데이트하기

Github에서 fork한 저장소를 원본 저장소와 연결해서 업데이트하려면, github에서 제공하는 툴에는 메뉴가 없으므로 터미널에서 작업을 해야한다.

Remote 설정

현재 설정된 리모트 저장소를 확인

$ git remote -v

새로운 리모트 업스트림을 추가

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

추가된 리모트 저장소 확인

$ git remote -v

다음과 같은 형태로 업스트림이 추가된 것을 볼 수 있다.

Fork한 것을 업데이트

패치를 한다.

$ git fetch upstream

그다음에 checkout… 일반적으로 master이고 내가 fork한 브랜치의 이름을 적어야 한다.

$ git checkout master

merge를 한다. 이때도 일반적으로 master이고 내가 fork한 브랜치의 이름을 적어야 한다.

$ git merge upstream/master

Conflict 해결하기

충돌 상황을 확인

$ git status

충돌이 생긴 파일의 시작 부분에 <<<<<<< HEAD, 끝 부분에 >>>>>>> 표시가 되어 있다. 이것을 해결한 후에 git add 명령으로 변경된 파일을 추가하고 commit를 하면 된다.


팁 – 윈도우즈 커맨드 프롬프트에서 프로세서 끝내기

윈도우즈 작업 관리자에서 프로세스를 찾은 후 클릭해서 프로세스를 끝낼 수도 있지만,  프로세스 이름을 알고 있다면 그리고 여러개를 한꺼번에 끝내려면 윈도우즈 커맨드 프롬프트에서 작업을 해야한다.

이때 필요한 명령어는 tasklist, taskkill

만약 프로세스 이름이 vmware로 시작하는 프로세서이면 /FI 옵션으로 필터를 건다.

tasklist /FI “IMAGENAME eq vmware*”

taskkill /F /FI “IMAGENAME eq vmware*”



Pages:123