마이크로 컨트롤러 PWM 출력을 동기화하여 부하를 보다 효율적으로 구동하는 방법

작성자: Bill Giovino

DigiKey 북미 편집자 제공

대부분의 마이크로 컨트롤러에는 방형파 형태의 여러 파형을 생성하는 하나 이상의 펄스 폭 변조(PWM) 주변 장치가 있습니다. 이러한 PWM 출력을 사용하여 동기식 부하(예: 기계 시스템의 스테퍼 모터 및 전력 컨버터용 전력 MOSFET)를 구동할 수 있습니다. 이러한 부하의 경우 대상 부하를 적절히 작동하려면 PWM 파형을 정밀하게 동기화해야 합니다.

PWM 주변 장치를 주의해서 프로그래밍하지 않을 경우 파형 간에 간헐적 위상 지연이 발생하여 파형 에지가 제대로 정렬되지 않으면 동기화 손실이 발생할 수 있습니다. 이러한 위상 지연은 부하를 비효율적으로 구동하여 전력이 낭비되고 과도한 열이 발생할 수 있습니다. 일반 PWM 주변 장치의 경우 PWM을 활성화하거나 비활성화하고 다른 PWM 출력에서 위상 지연을 일으킬 수 있습니다.

특히, 이는 단일 16출력 또는 32출력 PWM 주변 장치를 사용하여 여러 외부 부하를 제어하는 작은 크기의 배터리 구동 사물 인터넷(IoT) 응용 분야에서 문제가 됩니다. 이러한 IoT 응용 분야에서 위상 지연은 배터리 전력을 낭비할 수 있습니다. 또한 위상 지연은 감지되지 않으므로 IoT 종단점의 네트워크 진단에서 누락될 수 있습니다.

이 기사에서는 마이크로 컨트롤러 PWM 주변 장치의 일부 응용 분야에 대해 설명하고 이러한 응용 분야에서 PWM 파형을 동기화된 상태로 유지해야 하는 경우를 살펴봅니다. 그런 다음 이러한 응용 분야에서 파형 동기화 손실을 방지하기 위해 특별히 고안된 펄스 트레인 주변 장치가 있는 Maxim Integrated의 마이크로 컨트롤러를 살펴보고 대상 부하를 효율적으로 구동하도록 이 주변 장치를 구성하는 방법을 알아봅니다.

마이크로 컨트롤러 PWM 주변 장치 및 대상 부하

대부분의 범용 마이크로 컨트롤러에는 일반 반복 방형파를 생성하는 데 사용되는 하나 이상의 PWM 주변 장치가 있습니다. 단순 부하부터 복잡한 기계 구동 시스템까지 PWM 구동을 활용할 수 있는 많은 부하가 있습니다.

발광 다이오드(LED)는 특히, 컬러 LED를 어둡게 해야 하는 응용 분야에서 PWM 신호로 매우 효율적으로 구동할 수 있는 단순 부하의 한 예입니다. 순방향 DC 전류를 변경하여 LED를 어둡게 하는 방법에 비해 PWM 조광에서는 색상의 현저한 변경 없이 빛의 품질을 더 정밀하게 유지합니다. PWM 주변 장치로 하나 이상의 LED를 쉽게 구동할 수 있습니다. LED를 조작자를 위한 시각적 표시기로 사용 중인 경우 두 개 이상의 LED 간 위상 차이는 표시되지 않습니다. 하지만 LED를 더 복잡한 응용 분야에서 사용 중인 경우(예: 여러 LED가 광변조의 형태로 광학 수용체에 데이터를 전달하는 경우) LED 동기화가 중요한 설계 고려 사항이 될 수 있습니다.

마이크로 컨트롤러 PWM을 위한 다른 단순 부하로는 모터 구동기 IC를 통해 구동되는 DC 모터가 있습니다. 두 단자 간의 전압을 변경하여 DC 모터의 속도를 쉽게 변경할 수 있지만, PWM 제어를 사용하면 모터 회전을 더 정밀하게 제어할 수 있습니다. 폐쇄 루프 제어 시스템에서 속도 센서를 사용할 경우 모터 속도를 더 정밀하게 유지할 수 있습니다. 두 개 이상의 DC 모터를 사용하고 함께 작동해야 하는 경우 모터 간에 정확한 속도 제어를 위해 PWM 파형을 동기화해야 할 수 있습니다.

양극 스테퍼 모터 구동

양극 스테퍼 모터를 구동할 경우 설계 상황이 더 복잡해집니다. 두 가역성 전류 권선을 사용하여 양극 스테퍼 모터를 구동합니다(그림 1). 권선별로 두 개의 PWM이 필요하므로 총 네 개의 PWM이 필요합니다.

두 전류 권선에 의해 회전되는 양극 스테퍼 모터 구성도그림 1: 양극 스테퍼 모터는 각 방향으로 전류를 전달하는 데 사용되는 두 전류 권선(빨간색 및 녹색 코일로 표시됨)에 의해 회전됩니다. 권선에서 흐르는 전류의 위상과 기간을 제어하여 모터의 속도와 위치를 쉽게 제어할 수 있습니다. (이미지 출처: DigiKey)

그림 1에 표시된 대로 모터를 작동하려면 빨간색 및 녹색 코일로 표시된 두 전류 권선을 적절한 순서로 구동해야 합니다. 그림 2에 표시된 순서에 따라 파형이 변경될 때마다 풀스텝 하나씩 양극 스테퍼 모터를 구동합니다.

양극 스테퍼 모터에서 두 코일을 구동하는 구성도그림 2: 파형이 변경될 때마다 모터를 풀스텝 하나씩 이동하려면 위의 구성도에 따라 양극 스테퍼 모터의 두 코일을 각각 구동해야 합니다. 각 코일의 전류가 먼저 한 방향으로 구동된 후 해당 코일이 유휴 상태로 전환되고, 전류가 반대 방향으로 구동됩니다. (이미지 출처: DigiKey)

파형이 전이될 때마다 모터의 각 단계가 시작됩니다. 그림 2에 표시된 대로 권선에 따른 전압 극성과 각 권선을 통해 흐르는 전류는 단계마다 변경됩니다. PWM 신호의 위상 지연은 모터 스터터링을 발생하여, 특히 저속에서 토크 손실로 이어질 수 있습니다.

네 개의 출력만 사용하는 PWM 주변 장치를 포함하는 마이크로 컨트롤러를 사용하면 적절한 관리를 통해 동기화 상태를 유지하여 스테퍼 모터를 쉽게 제어할 수 있습니다. 하지만 동일한 PWM 주변 장치를 사용하여 여러 부하를 제어할 경우 상황이 더 복잡해집니다. 예를 들어, 16출력 PWM에서는 스테퍼 모터에 네 개의 PWM 출력이 할당되고, 다른 부하(예: DC 모터 또는 LED)에 다른 PWM 출력이 할당될 수 있습니다. 적절한 레지스터를 사용하여 주파수와 듀티 사이클에 맞게 PWM 출력을 구성한 후 각 PWM에 대해 활성화/비활성화 레지스터에서 비트를 설정합니다. Arm® 마이크로 컨트롤러의 경우 펌웨어에서 비트 밴딩을 사용하여 적절한 비트를 설정할 수 있습니다. 하지만 비트 밴딩은 읽기/수정/쓰기(RMW)를 대상 레지스터에서 수행합니다. RMW 작업 중에 시작하거나 종료하도록 다른 PWM 출력을 프로그래밍할 경우 결과를 예측할 수 없고 경우에 따라 펌웨어 제어에 반하여 PWM이 활성화 또는 비활성화될 수 있습니다.

Maxim Integrated는 120MHz에서 실행되는 MAX32650 Arm Cortex®-M4F 마이크로 컨트롤러를 사용하여 이 문제를 해결했습니다. 이 장치에는 표준 SPI 인터페이스 3개, Quad SPI 1개, UART 3개, I2C 포트 2개, 물리층(PHY)이 있는 USB 2.0 고속 인터페이스 1개, 32비트 타이머 6개, AES-256 암호화 장치 1개를 비롯하여 광범위한 주변 장치가 있습니다(그림 3).

Maxim Integrated의 MAX32650 구성도(확대하려면 클릭)그림 3: Maxim Integrated MAX32650은 120MHz Arm Cortex-M4F를 기반으로 하며 고성능 IoT 에지 컴퓨팅 응용 분야를 대상으로 하는 광범위한 주변 장치 및 메모리 옵션이 있습니다. (이미지 출처: Maxim Integrated)

3MB 플래시 및 1MB SRAM이 탑재된 MAX32650은 에지 컴퓨팅이 필요한 정교한 사물 인터넷(IoT) 종단점을 대상으로 합니다. 또한 MAX32650에는 정교한 PWM 신호를 생성할 수 있는 16출력 펄스 트레인 주변 장치가 있습니다. 따라서 구성 가능한 주파수와 50% 듀티 사이클로 방형파를 생성하고, 최대 32비트 길이의 프로그래밍 가능 비트 패턴을 기반으로 펄스 트레인을 생성할 수 있습니다.

위상 지연 방지

펄스 트레인 발생기는 32비트 PTG_ENABLE 레지스터를 사용하여 16 PWM 출력을 개별적으로 활성화하거나 비활성화할 수 있습니다. 비트 위치에 1을 쓰면 해당 펄스 트레인을 활성화하여 구성된 대로 실행할 수 있습니다. 0을 쓰면 펄스 트레인 클록 및 논리를 중지하여 출력이 현재 논리 상태에서 동결됩니다. 이 레지스터는 대부분의 마이크로 컨트롤러에 있는 활성화/비활성화 레지스터와 동일한 RMW 제한 사항이 있으므로 비트 밴딩을 사용하지 않는 것이 좋습니다.

파형 간에 위상 동기화를 유지하기 위해 MAX32650의 펄스 트레인 주변 장치에서는 안전한 활성화(32비트 레지스터 PTG_SAFE_EN 사용) 및 안전한 비활성화(32비트 레지스터 PTG_SAFE_DIS 사용)라는 고유한 특징을 지원합니다. 각 레지스터의 상위 16개 비트는 사용되지 않으며, 사용되지 않는 위치에는 항상 0을 기록하는 것이 좋습니다.

출력을 안전하게 활성화하기 위해 펌웨어에서는 PTG_SAFE_EN의 해당 비트 위치에 1을 씁니다. 또한 PTG_ENABLE에서 출력에 대한 비트 위치를 즉시 설정하여 PWM 출력을 시작합니다. PTG_SAFE_EN의 비트 위치에 0을 쓰면 펄스 트레인 출력에 영향을 주지 않습니다.

출력을 안전하게 비활성화하기 위해 펌웨어에서는 PTG_SAFE_DIS의 해당 비트 위치에 1을 씁니다. 또한 PTG_ENABLE에서 출력에 대한 비트 위치를 즉시 지워서 PWM 출력을 중지합니다. PTG_SAFE_DIS의 비트 위치에 0을 쓰면 펄스 트레인 출력에 영향을 주지 않습니다.

이러한 레지스터에 쓰더라도 RMW가 수행되지 않습니다. 안전한 활성화/비활성화 기능을 사용하면 다른 펄스 트레인에는 영향을 주지 않으면서 하나 이상의 펄스 트레인을 즉시 시작하거나 중지할 수 있습니다. PTG_SAFE_EN 및 PTG_SAFE_DIS 레지스터에서는 비트 밴딩이 지원되지 않습니다.

다시 그림 1의 양극 스테퍼 모터에서, 녹색 전류 권선의 A 및 B에 펄스 트레인 출력 0 및 1을 사용하고, 빨간색 전류 권선의 C 및 D에 펄스 트레인 출력 2 및 3을 사용할 수 있습니다. 그림 2의 파형에 사각 지역이 있으므로 펄스 트레인 기능을 사용하여 펌웨어 개입 없이 여러 번 반복하도록 구성 가능한 패턴을 프로그래밍하는 것이 좋습니다.

설정한 경우 PTG_SAFE_EN에 0000000Fh를 기록하여 모터를 시작할 수 있습니다. 그러면 펄스 트레인 출력 0 ~ 3이 동시에 시작되어 실행 중인 다른 펄스 트레인 출력에 영향을 주지 않고 모터를 시작합니다. PTG_SAFE_DIS에 0000000Fh를 기록하여 모터를 중지할 수 있습니다. 이 두 작업은 실행 중인 다른 펄스 트레인에 영향을 주지 않습니다.

다른 12개의 펄스 트레인 출력을 활성화 또는 비활성화해야 하는 경우 이 두 레지스터를 사용하여 안전하게 제어할 수 있습니다. 이 레지스터 아래 4개의 비트 위치에 1을 기록하지 않는 한 스테퍼 모터 작동에 영향을 주지 않습니다. 이는 출력 스터터링을 일으켜서 토크에 부정적인 영향을 주는 위상 변이가 발생할 수 있는 RMW에서 표준 활성화 레지스터를 사용할 때와 대조적입니다. 안전한 활성화/비활성화 기능은 원자 작업과 비슷하며 스테퍼 모터가 효과적으로 작동하고, 전력을 낭비하지 않고, 항상 최대 토크를 유지합니다.

마이크로 컨트롤러 출력 핀은 스테퍼 모터를 구동하는 데 충분한 기능이 없으므로 모터 구동기 또는 H 브리지가 필요합니다. Allegro MicroSystems A3909GLYTR-T는 4V ~ 18V 전압과 전류 권선당 최대 1A의 전류가 필요한 모터를 작동할 수 있는 이중 H 브리지 구동기입니다(그림 4).

Allegro MicroSystems의 A3909 이중 H 브리지 구동기 구성도그림 4: Allegro MicroSystems A3909는 스테퍼 모터 코일에 대해 최대 1A를 소싱 및 싱크할 수 있는 이중 H 브리지 구동기입니다. (이미지 출처: Allegro MicroSystems)

A3909는 과열 시 전원 차단, 과전류 보호, 단락 보호 기능을 제공합니다. 각 입력(INx)은 해당 출력(OUTx)을 구동합니다. MAX32650 PWM은 펄스 트레인 출력 0 및 1을 입력 IN1 및 IN2(녹색)에 연결하여 OUT1 및 OUT2를 통해 녹색 코일을 구동하고, 펄스 트레인 출력 2 및 3을 IN3 및 IN4(빨간색)에 연결하여 OUT3 및 OUT4를 통해 빨간색 코일을 구동할 수 있습니다. 그러면 A3909에서 스테퍼 모터를 직접 구동할 수 있습니다.

또한 A3909는 유용한 고임피던스 특징을 지원합니다. H 브리지의 두 입력이 1밀리초 이상 동안 논리 0으로 유지되는 경우 두 출력이 모두 고임피던스 상태로 전환됩니다. 이는 모터 타력 구동을 허용하려는 경우나 고임피던스 출력이 필요한 스테퍼 모터 단계에 유용합니다. 다시 그림 2에서 유휴 상태인 파형은 고임피던스 상태에서 활용될 수 있습니다. 그러면 다른 전류 코일을 통해 구동 중인 모터의 작동과 전류 코일이 간섭을 일으키지 않아 효율성이 향상됩니다.

네 입력(두 쌍)이 모두 1ms 이상 동안 낮게 유지될 경우 위에서 설명한 대로 두 출력 쌍이 모두 고임피던스 상태로 전환됩니다. 또한 일부 내부 회로망 전력이 차단되므로 규격서에서는 이를 절전 모드라고 합니다.

결론

일반 마이크로 컨트롤러 주변 장치에는 대개 모터 및 전력 MOSFET과 같은 외부 부하를 구동하는 데 사용되는 PWM 기능이 포함되어 있습니다. PWM에서 비트 조작 작업을 수행하면 경우에 따라 레지스터에서 결과를 예측할 수 없으므로 마이크로 컨트롤러 제조업체에서는 다른 PWM 출력을 방해하지 않고 개발 PWM 출력을 안전하게 활성화 및 비활성화하여 간헐적 위상 지연과 동기화 손실을 방지할 수 있는 기능을 제공하는 새로운 PWM 주변 장치를 사용하여 이 문제를 해결합니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Bill Giovino

Bill Giovino

Bill Giovino는 시러큐스 대학(Syracuse University)에서 전자 공학 학위를 취득한 전자 엔지니어이며, 설계 엔지니어링에서 현장 애플리케이션 엔지니어링은 물론 기술 마케팅에 이르기까지 바로 투입 가능한 몇 안 되는 실력자 중 하나입니다.

Bill은 25년 이상 STMicroelectronics, Intel, Maxim Integrated를 비롯한 다양한 회사의 기술 및 비기술 담당자를 대상으로 신기술을 홍보해 왔습니다. STMicroelectronics 재직 중 Bill은 마이크로 컨트롤러 업계에서 회사의 초기 입지를 다지는 데 공헌했습니다. Infineon에서는 미국 자동차 업계에서 회사 최초로 마이크로 컨트롤러 설계를 성공으로 이끌어 내는 역할을 했습니다. Bill은 직접 설립한 CPU Technologies의 마케팅 컨설턴트로 일하면서, 많은 업체들이 실적이 저조한 제품의 실적을 개선하는 데 도움을 주고 있습니다.

Bill은 최초의 전체 TCP/IP 스택을 마이크로 컨트롤러에 배치하는 것을 비롯하여 사물 인터넷을 조기에 수용한 바 있습니다. Bill은 '교육을 통한 판매'라는 메시지와 온라인을 통한 제품 홍보에 있어 커져 가는 명확하고 분명한 의사 소통의 중요성 전달에 전념하고 있습니다. Bill은 LinkedIn의 인기 그룹인 Semiconductor Sales & Marketing Group의 중재자이며, B2E에 유창합니다.

게시자 정보

DigiKey 북미 편집자