ODROID-7으로 오실로스코프를 만들어 보았습니다.
좌측은 천만원이 훨씬 넘는 텍트로닉스 제품이고, 우측이 오드로이드7 입니다.
S5PC110의 ADC는 최대 1Mega Sample per sec이라 고속 신호 측정은 불가능하지만,
GPIO 입출력 레벨을 보거나, 오디오 대역의 신호 정도는 충분히 측정할 수 있습니다.
따라서 이 오실로스코프 과제 공개의 주 목적은 간단한 하드웨어 회로 설계, PCB 제작, 부품 구입, 납땜에서부터 디바이스 드라이버, NDK/JNI, 어플리케이션까지 만드는 실용적이면서도 재미있는 교재가 아닐까 생각해 봅니다.
하드웨어 구성.
- 오드로이드-7 확장 포트인 TTA20에 S5PC110의 내장된 ADC와 연결된 핀이 하나 있습니다.
- 이 신호를 사용하기 위해서 아래 사진과 같은 작은 PCB를 하나 만들었습니다.
- 입력 입피던스를 올리고, 고전압이 직접 CPU로 들어가는 것을 막기위해 OPAMP를 하나 사용했습니다.
- 이 OPAMP는 저전압에서도 Rail-to-Rail로 훌륭하게 신호를 전달해 주는 넘입니다.
- OPAMP에 안정적인 전원을 공급하기 위해서 LDO Regulator도 하나 사용했습니다.
- 다이오드 2개로 입력 범위가 벗어나는 신호를 자르는 보호회로를 구성했습니다.
- 스코프 ADC 보드는 아래 사진처럼 아주 간단합니다.
전체 회로도는 저희 블로그에 올렸습니다.
http://www.hardkernel.com/?b88
소프트웨어 구성.
- ADC용 디바이스 드라이버를 만들고..
- NDK로 JNI를 뚫어서 Capture한 ADC 데이터를 JAVA로 올려줍니다.
- 자바 어플은 주로 디스플레이를 주관합니다.
What to do.... (Future improvement)
트리거 기능은 아지 구현하지 못했고, 멀티터치로 파형을 확대 축소 하는 기능도 없습니다.
수직/수평 스케일 변환도 부드럽지 않고 FFT나 DCT 같은 신호처리 기능도 없습니다.
파형 캡쳐해서 메일에 첨부하여 무선랜으로 동료들한테 보낼수 있는 기능은 정말 멋질것 같네요.
1~2주 내에 소스 코드랑 하드웨어/소프트웨어 빌드 방법도 공유하도록 하겠습니다.
몇몇 기능만 함께 추가한다면, 편리하게 사용할 수 있는 좋은 개발용 툴이 될것 같네요.