VMCU TRAINER · INTERFACE SPECIFICATION
PA6 Motor Feedback Interface
동일한 MCU·드라이버·모터 제어 코드에서 Hall 또는 Position(AS5600) 센서 하나를 선택해 사용하는 공통 PA6 인터페이스를 정의합니다.
Document ID VMCU-IFS-PA6-001 · Rev 1.0 · 2026-09-01
출처 구분: Hall 모드는 아직 특정 제조사 부품이 선정되지 않아 Trainer 인터페이스 사양으로 정의합니다. Position 모드는 ams OSRAM AS5600 제조사 데이터시트의 3.3 V analog OUT 기능을 사용합니다. Hall pulse/rev와 기구 stroke당 pulse는 제조사 공식값이 아니라 Trainer plant 설정입니다.
1. 동일 하네스, 선택형 센서
두 그림에서 MCU, PA2 PWM, PA3 EN, PA4 DIR, PA5 FAULT, PA1 direct shunt, PB0 NTC ADC, PA10 UART RX는 같습니다. PA6에 연결되는 모터 내장 피드백 어댑터만 바뀌며 두 센서를 동시에 연결하지 않습니다.
2. 전기·핀 계약
| 항목 | Hall 모드 | Position 모드 |
|---|---|---|
| 사용자 선택 | HALL | POSITION |
| 펌웨어 상수 | TRAINER_FEEDBACK_HALL | TRAINER_FEEDBACK_ANGLE — 기존 코드 호환 명칭 |
| 센서 출력 | Open-collector digital output | AS5600 ratiometric analog OUT |
| 센서 전원 | 3.3 V 인터페이스, 외부 pull-up | 3.3 V mode |
| MCU 단자 | PA6 / GPIO input / EXTI6 | PA6 / ADC1_IN6 |
| GPIOA_CRL PA6 | 0x4 floating digital input | 0x0 analog input |
| 획득 방식 | EXTI6 rising edge와 HALL_COUNT | SQ1=6 → SWSTART → EOC → ADC_DR |
| 현재 로컬 프로필 | Pulse 수치는 plant assumption | OUTS=00, MANG=180°, 2048 sensor-DAC steps |
3. 공통 펌웨어 분기
학생 코드는 모드별 파일로 갈라지지 않습니다. 한 코드가 TRAINER->FEEDBACK_MODE를 읽고 PA6 초기화와 샘플 획득 방식만 선택합니다. MCU·드라이버 출력, NTC ADC, UART 수신, Watch·Graph·Register 화면은 공통입니다.
static uint32_t feedback_is_position(void)
{
return TRAINER->FEEDBACK_MODE == TRAINER_FEEDBACK_ANGLE;
}
static void feedback_init(void)
{
if (feedback_is_position()) {
GPIOA->CRL &= ~(0xFu << 24); /* PA6 analog */
ADC1->SQR3 = ADC_SQR3_SQ1_ADC1_IN6;
} else {
GPIOA->CRL = (GPIOA->CRL & ~(0xFu << 24)) | (0x4u << 24);
AFIO->EXTICR[1] &= ~(0xFu << 8); /* EXTICR2: PA6 -> EXTI6 */
EXTI->IMR |= EXTI_IMR_MR6;
EXTI->RTSR |= EXTI_RTSR_TR6;
}
}
TRAINER_FEEDBACK_ANGLE은 저장된 샘플과 API 호환성을 위해 유지하는 내부 상수입니다. 사이트 표시는 센서의 역할을 드러내도록 POSITION을 사용합니다.
4. 검증 순서
01 · SELECT회로의 DC Motor 내부 센서에서 HALL 또는 POSITION 선택
02 · BUILD같은 공통 코드를 Build
03 · PROVEPA6 Pin·Register·Graph·Watch 확인
04 · COMPARE레퍼런스와 제조사 원문 대조
| 확인 화면 | Hall 기대값 | Position 기대값 |
|---|---|---|
| Circuit / Pin route | HALL_IN / EXTI6 | POSITION / AS5600 · ADC1_IN6 |
| Registers | AFIO_EXTICR2, EXTI_IMR, EXTI_RTSR, EXTI_PR | GPIOA_CRL PA6 analog, ADC_SQR3 SQ1=6, ADC_SR/DR |
| Code Watch | PA6_HALL_COUNT | PA6_ANGLE_ADC_RAW |
| Graph | Digital Hall level / edge count | Analog position voltage / ADC raw |
5. 관련 문서
- 통합 DC 모터 트레이너 가이드 — 전체 하네스와 공통 코드 계약
- GPIO 레퍼런스, EXTI 레퍼런스, ADC1 레퍼런스 — Trainer 구현 범위
- ST RM0008 — GPIO, AFIO/EXTI, ADC 공식 레지스터 기준
- ams OSRAM AS5600 데이터시트 — Position 모드 센서 공식 기준