회사에서 첫 role을 맡게 되었습니다. LVDT(Linear Variable Differential Transformer)라는 선형 직선 운동을 감지하고, 이 데이터를 처리해서 전송하는 작은 시스템을 만들어야 합니다. 사용하는 보드는 Texas Instrument 사의 PGA970으로, LVDT I/O에 특화된 하드웨어와 펌웨어로 구성된 system-on-chip입니다.
PGA970에 대한 공식 정보는 아래에서 확인할 수 있습니다.
PGA970 데이터 시트, 제품 정보 및 지원 | TI.com
추가 정보 요청 전체 데이터 시트를 사용할 수 있습니다. 지금 요청
www.ti.com
디버깅에는 이런 툴들을 사용했습니다.
- Blackhawk TMDSEMU200-U(TI XDS2xx)
- USB2ANY(TI)
LVDT
조금 어렵긴 하지만 LVDT의 원리를 정리하자면 이렇습니다.
1차 코일(Primary, P)에 교류 여기 신호를 인가하여 교류 자기장을 형성하고, 이 자기장에 의해 2차 코일(Secondary, S)에 유도되는 전압의 크기와 위상 차이를 이용하여, 두 코일 사이를 이동하는 코어의 상대적 위치를 측정
아래 영상들이 도움이 되었습니다.
아래는 PGA970의 블록 다이어그램입니다.

표시된 부분이 LVDT의 입출력과 관련된 부분입니다.
- 내부의 아날로그 파형 생성기(Waveform Generator)가 P 단자에 사인파를 출력한다.
- 파형은 펌웨어에 하드코딩되어있는 테이블이나 FRAM에 저장된 커스텀 테이블을 사용할 수 있다.
- S1, S2 단자로 들어오는 센서 입력은 내부적으로 처리되어 DEMOD1_DATA, DEMOD2_DATA 레지스터에 쓰여진다.
펌웨어와 앱을 작성하기 위해서는 위 내용 정도만 이해하면 됩니다.
Waveform 출력에 대한 대역 통과 필터(BPF), 저대역 통과 필터(LPF)에 관한 설정이 pga970_adc.h에 잔뜩 정의돼있지만, 저는 그 부분은 보지 않고 설정돼있는대로 사용했습니다.
'PGA970' 카테고리의 다른 글
| [PGA970] SPI로 통신하기 (0) | 2026.01.20 |
|---|