마이크로 컨트롤러의 기능을 사용해 콤팩트 설계에서 아날로그 신호 체인을 신속하게 구현
DigiKey 북미 편집자 제공
2019-02-05
사물 인터넷(IoT)을 위한 설계 중 대다수가 아날로그 회로를 기반으로 하여 센서 및 액추에이터 신호 조정, 전류 제어 및 기타 기능에 대한 응용 제품의 고유한 요구 사항을 충족하고 있습니다. 전용 신호 체인 IC는 이 요구 사항을 충족하지만 예산과 공간이 빠듯하게 제한되는 설계에는 성능 요구 사항을 충족하면서 더 적은 부품으로 이 기능을 제공할 방법이 필요합니다.
이 요구 사항을 해결하기 위해 아날로그 디지털 컨버터(ADC) 및 비교기 등의 아날로그 주변 장치를 통합하여 이 센서 및 액추에이터 인터페이스의 성질을 단순화하는 마이크로 컨트롤러가 등장했습니다. 하지만 최근까지도 대부분의 설계에 필요한 신호 조정 또는 출력 버퍼링을 제공하기 위해 일반적으로 엔지니어가 아날로그 부품을 추가해야 했습니다.
이러한 아날로그 신호 조정 회로가 마이크로 컨트롤러에 추가되면서 개발자는 코드 몇 줄만 조작해 웨어러블 및 기타 IoT 장치의 광범위한 아날로그 인터페이스 요구 사항을 충족하는 이러한 부품을 구성할 효과적인 방법을 사용하게 되었습니다.
이 문서에서는 연결된 IoT 장치에 대한 프론트 엔드 아날로그 신호 조정 요구 사항의 필요성을 설명합니다. 그런 다음 고집적 아날로그 기능을 갖춘 마이크로 컨트롤러 세트를 소개하고 이를 적용하는 방법을 보여줍니다.
센서와 마이크로 컨트롤러 접속
센서 설계에는 일반적으로 마이크로 컨트롤러의 ADC 입력에 도달하기 전에 트랜스듀서의 출력 신호를 조정할 하나 또는 증폭기 두 개가 필요합니다. 심박계용 산소 포화도 측정기와 같은 더 복잡한 장치에는 LED 여기 파형을 생성하고 광 다이오드 출력을 변환하고 마지막으로 펄스 데이터를 추출할 여러 신호 체인이 필요합니다(그림 1). 산업용 응용 제품의 프로그래밍 가능한 논리 컨트롤러에 센서를 연결하는 데 흔히 사용되는 단순한 전류 루프 회로에도 전류 출력을 구동 및 제어하기 위한 추가 장치가 필요합니다. 하지만 Texas Instruments의 MSP430FR2355 MCU 내부 아날로그 부품을 사용하면 개발자가 단 몇 가지 추가 수동 부품만을 이용해 이러한 설계의 더 콤팩트한 버전을 구현할 수 있습니다.

그림 1: 사용자가 더 콤팩트한 제품에서 정교한 추가 기능을 기대한다는 것은 개발자가 산소 포화도 측정기용 제품과 같은 복잡한 신호 경로 구현에 사용되는 부품 수를 대폭 줄여야 한다는 의미입니다. (그림 출처: Texas Instruments)
통합 아날로그 부품
16비트 RISC 프로세서 코어를 토대로 제작된 Texas Instruments의 MSP430FR2355 MCU는 수많은 IoT 장치 설계에 일반적으로 필요한 모든 기능 세트를 제공합니다. TI MSP430 FRAM 제품군의 구성품인 MSP430FR2355는 32Kb의 저전력 강유전체 RAM(FRAM)을 통합합니다. IoT 설계에 잘 어울리는 FRAM은 플래시 메모리의 비휘발성 저장소의 장점은 물론, RAM의 쓰기 속도 및 내구성 장점도 제공합니다. 그 결과, 개발자는 FRAM의 비휘발성 특징에 의존해 절전 모드 또는 전력 보존에 필요한 기타 작동 상태 동안 값을 보존할 수 있으며, 작동이 활성화된 동안에는 FRAM의 RAM과 유사한 성능 자질을 활용해 데이터를 저장하고 코드를 프로그래밍할 수 있습니다. MSP430FR2355는 이러한 설계에 일반적으로 적용되는 저전력 요구 사항을 충족하도록 설계된 몇 가지 저전력 모드를 지원합니다.
MSP430FR2355는 저전력 특징과 함께 몇몇 통합 아날로그 주변 장치를 통해 IoT 인터페이스 요구 사항을 지원하며 이러한 주변 장치에는 12채널 및 12비트 ADC, 통합 디지털 아날로그 컨버터(DAC)가 포함된 아날로그 비교기, 여러 온칩 전압 레퍼런스가 포함됩니다. MSP430FR2355 MCU의 가장 고유한 아날로그 기능은 SAC(Smart Analog Combo) 모듈 4개에 있으며 개발자는 특정 요구 사항을 충족하도록 이를 프로그래밍적으로 구성할 수 있습니다.
각 SAC 모듈에는 12비트 DAC, 레일 투 레일 연산 증폭기(OA), OA를 프로그래밍 가능한 이득 증폭기(PGA)로 변환하는 피드백 저항기 래더가 포함됩니다. 각 부품의 전용 레지스터가 구성과 작동 모드를 제어합니다. 예를 들어 개발자는 SAC(SACx) 모듈의 OA 레지스터(SACxOA)에 비트 0:1을 쉽게 로드하여 OA의 양극 입력을 외부 소스, DAC 출력 또는 페어링된 SAC 소스로 설정할 수 있습니다(아래 설명됨).
TI의 드라이버 라이브러리는 이러한 비트 조작을 직관적인 애플리케이션 프로그래밍 인터페이스(API) 호출 세트로 추출합니다. 그 결과, 개발자는 부품 수와 설계 규모를 줄이면서도 몇 줄의 코드만으로(목록 1) SAC 모듈을 센서 신호 조정 증폭기를 완전히 대체할 범용 증폭기로 프로그래밍할 수 있습니다(그림 2).
복사
//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL, SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC0_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER)
// Enable OA
SAC_OA_enable(SAC0_BASE);
// Enable SAC
SAC_enable(SAC0_BASE);
(코드 출처: Texas Instruments)SAC_OA_initSAC_OA_selectPowerMode

그림 2: 개발자는 MCU의 SAC(Smart Analog Combo) 모듈 4개 중 하나를 이용해 외부 연산 증폭기를 Texas Instruments의 MSP430FR2355 MCU에서 내부적으로 구현된 연산 증폭기로 대체할 수 있습니다. (그림 출처: Texas Instruments)
출력 파형 생성기 역할을 하려면 SAC 모듈이 더 많은 부품을 연결해야 합니다(그림 3). 이 경우 개발자는 내부 DAC의 출력을 설정하는 전용 데이터 레지스터(SACxDAT)에 데이터를 프로그래밍적으로 로드해 파형을 제어합니다. 그러면 DAC 출력은 OA에 레퍼런스 전압을 제공합니다. 이 구성에서 개발자는 PGA 레지스터(SACxPGA)의 비트 0:1(MSEL)을 유동 입력에 해당하는 버퍼 모드(01b)로 설정해 OA 드라이브 강도를 향상합니다. 위에서 설명한 범용 구성에 필요한 요소와 비교했을 때 이 작동 모드를 구성하기 위해 API(목록 2) 몇 건 정도만 더 호출하면 됩니다.
그림 3: 개발자는 SAC 모듈의 디지털 아날로그 컨버터와 연산 증폭기 부품을 이용해 프로그래밍 가능한 파형 생성기를 구현할 수 있습니다. (그림 출처: Texas Instruments)
복사
//Select internal shared reference as DAC reference voltage
SAC_DAC_selectRefVoltage(SAC0_BASE, SAC_DAC_SECONDARY_REFERENCE);
//Select the load trigger for DAC data latch
//DAC always loads data from DACDAT at the positive edge of Timer output TB2.1
SAC_DAC_selectload(SAC0_BASE, SAC_DAC_LOAD_DEVICE_SPECIFIC_0);
//Enable DAC Interrupt
SAC_DAC_interruptEnable(SAC0_BASE);
//Write data to DAC Data Register SACxDAT
//DAC_data is an unsigned int type variable defined by user SAC_DAC_setData(SAC0_BASE, DAC_data);
//Enable DAC
SAC_DAC_enable(SAC0_BASE);
//Select internal DAC for positive input and PGA source for negative input
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_DAC,
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA);
//Select Buffer Mode
SAC_PGA_setMode(SAC0_BASE, SAC_PGA_MODE_BUFFER);
//Enable OA
SAC_OA_enable(SAC0_BASE);
//Enable SAC
SAC_enable(SAC0_BASE);
목록 2: SAC 모듈을 파형 생성기로 구성하려면 범용 증폭기로 사용하기 위해 필요한 사항에 API 호출 몇 건만 추가하면 됩니다. (코드 출처: Texas Instruments)
여러 스테이지
대부분의 경우 개발자에게는 둘 이상의 증폭기로 구축된 신호 조건이나 출력 체인이 필요합니다. 예를 들어 센서 시스템 개발자는 일반적으로 증폭기를 종속해 트랜스듀서 출력을 버퍼링한 다음 버퍼링된 신호를 신호 체인 끝에 있는 ADC의 전체 범위 응답에 맞게 증폭합니다. 이와 유사하게 출력 인터페이스 개발자는 파형을 생성하고 게이트 드라이버를 제어하기 위해 증폭기를 종속해야 하는 경우가 많습니다. 예를 들어 전류 루프 인터페이스를 개발하기 위해 DAC 모드에서 구성된 하나의 SAC 모듈을 사용해 변조 신호 전압을 제공할 수 있습니다. OA 모드에서 구성된 두 번째 SAC 모듈은 신호 전압을 외부 트랜지스터를 사용하는 전류로 변환합니다(그림 4).

그림 4: 전류 루프 인터페이스를 구축하기 위해 엔지니어는 DAC 모드의 SAC 모듈 하나를 사용해 변조 신호 전압을 생성하고 OA 모드의 두 번째 SAC로 트랜지스터를 구동해 루프 전류인 ILOOP(I1 + I2)를 생성합니다. (그림 출처: Texas Instruments)
MSP430FR2355 MCU는 더 효율적인 증폭기 종속 방법을 제공합니다. 추가적인 외부 부품이 필요하지 않은 설계의 경우, 개발자는 내부적으로 SAC 모듈을 두 쌍으로 상호 연결하는 내장된 라우팅을 활용할 수 있습니다. SAC0은 내부적으로 SAC2에 연결되며 SAC1은 SAC3에 연결됩니다.
이 상호 연결은 광 다이오드의 전류 출력을 전압 수준으로 변환하는 데 필요한 연기 감지기 등의 센서 시스템에 응용됩니다. 개발자는 단 몇 줄의 코드만으로 한 쌍의 SAC 모듈을 사용해 이 신호 체인을 구현할 수 있습니다(목록 3). 여기에서 SAC2는 광 다이오드 전류 출력을 전압으로 변환하는 트랜스 임피던스 증폭기로 구성되며 이는 페어링된 SAC0이 다운스트림 ADC에 대해 증폭합니다(그림 5). SAC_OA_initSAC0_BASESAC_OA_NEGATIVE_INPUT_SOURCE_PGASAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA
복사
//Configure Op-Amp functionality
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,
GPIO_PIN1 | GPIO_PIN3 | GPIO_PIN2,
GPIO_TERNARY_MODULE_FUNCTION);
//Select external source for both positive and negative inputs
SAC_OA_init(SAC2_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL,
SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC2_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER);
SAC_OA_enable(SAC2_BASE); // Enable SAC2 OA
SAC_enable(SAC2_BASE); // Enable SAC2
//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA,
SAC_OA_NEGATIVE_INPUT_SOURCE_PGA);
SAC_OA_enable(SAC0_BASE); // Enable SAC0 OA
SAC_enable(SAC0_BASE); // Enable SAC0
(코드 출처: Texas Instruments)SAC_OA_POSITIVE_INPUT_SOURCE_PAIR_OA

그림 5: 개발자는 MSP430FR2355 MCU의 페어링된 SAC 모듈이 일반적인 연기 감지기 입력 신호 체인에 필요한 트랜스 임피던스 증폭기(TIA)와 프로그래밍 가능한 이득 증폭기(PGA)를 구현하도록 구성하여 연기 감지기 설계에서 외부 아날로그 IC의 필요성을 효과적으로 제거할 수 있습니다. (그림 출처: Texas Instruments)
이 접근법을 이용하면 IoT 설계 및 웨어러블에 필요한 거의 모든 아날로그 입력 및 출력 회로 세트를 구현할 수 있습니다. 예를 들어 개발자는 MSP430FR2355 SAC 모듈을 사용해 그림 1에 표시된 산소 포화도 측정기 같은 복잡한 아날로그 설계를 응축하여 훨씬 콤팩트한 버전으로 만들 수 있습니다(그림 6). LED, 광 다이오드, 관련 저항기 외에 개발자에게 필요한 사항은 동일한 기능을 제공할 MCU뿐입니다.

그림 6: 개발자는 MSP430FR2355 MCU 및 SAC 모듈을 이용해 여러 출력 여기 소스와 여러 스테이지 입력 신호 체인이 필요한 산소 포화도 측정기 같은 설계에서 부품 수를 대폭 줄일 수 있습니다. (그림 출처: Texas Instruments)
개발자는 MSP430FR2355 MCU 및 SAC 모듈의 사용을 평가하기 위해 Texas Instruments의 MSP-EXP430FR2355 LaunchPad 개발 키트를 활용할 수 있습니다. 시제품 제작을 가속화하기 위해 설계된 이 기판에는 광센서, LED, 단순한 샘플 응용 제품과의 상호 작용을 위한 푸시 버튼, 소프트웨어 개발을 위한 온보드 디버그 프로브가 포함된 완전한 MSP430FR2355 기반 시스템이 포함됩니다.
Grove 커넥터는 사용 가능한 Grove 기반 애드온의 다양한 어레이에 대한 액세스를 제공하며 개발자는 TI BoosterPack 커넥터를 이용하여 무선 연결을 위한 RF BoosterPacks를 통해 기본 플랫폼을 쉽게 확장할 수 있습니다. 또한 TI도 LaunchPad 키트에서 즉시 실행되도록 설계된 샘플 소프트웨어 응용 제품 세트를 제공합니다. LaunchPad 기판 실행 외에, 샘플 소프트웨어는 목록 3 코드 정보에서 볼 수 있는 SAC 모듈의 상호 연결을 위한 방법 등의 기본 설계 패턴을 보여줍니다.
결론
아날로그 인터페이스는 일반적으로 현실과 상호 작용하는 모든 장치에 필요합니다. 하지만 웨어러블과 IoT 장치 설계 중 상당수의 인터페이스 실행을 구축하는 데 필요한 추가 장치는 더 콤팩트한 설계 및 부품 수 감소 요구 사항과 배치됩니다.
Texas Instruments의 MSP430FR2355 MCU에 통합된 아날로그 부품을 구성함으로써 개발자는 대개 단 몇 가지 수동 부품을 추가하는 것만으로 이러한 설계에 필요한 신호 체인 기능을 구현할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


