VMCU TRAINER · HARNESS CONTRACT

통합 DC 모터 트레이너

한 개의 STM32 MCU, VMD-MD01-Lite 드라이버, DC 모터, 전류 계측 경로와 한 개의 펌웨어를 사용합니다. 바뀌는 것은 모터 내장 Hall 또는 AS5600 Position 센서의 PA6 피드백 해석뿐입니다.

NTC TEMPERATURENTCLE100E3103 · R25 10 kΩ
3.3 V → R1 10 kΩ → PB0 → NTC → GND
PB0 · TEMPERATURE_SENSEADC1_IN8 · 1.65 V / 2048 @ 25 °C
UART INPUT독립 외부 CMD/DATA 송신원
UART TX
PA10 · UART_RXUSART1_RX · NTC ADC와 독립
SHARED MOTOR PATHSTM32 → VMD-MD01-Lite → DC Motor · 0.05 Ω Shunt → PA1 직접 연결 · Motor-integrated Hall 또는 AS5600 → PA6
중요: NTC 분압 노드는 PB0 ADC로, 외부 UART는 PA10 RX로 각각 들어옵니다. 두 입력은 서로 연결되지 않습니다. Hall/Position 센서는 DC 모터 내부의 선택형 피드백으로 표시합니다.

공통 MCU·드라이버 핀 계약

MCU PIN기능실제 연결주요 레지스터
PA10USART1_RX독립 외부 0/5 V UART TX · FT 입력RCC_APB2ENR, GPIOA_CRH, USART1_BRR/CR1/SR/DR
PB0ADC1_IN8R1 10 kΩ과 NTCLE100E3103 사이의 분압 노드RCC_APB2ENR, GPIOB_CRL, ADC_SQR3, ADC_CR2, ADC_SR/DR
PA1ADC1_IN10.05 Ω low-side shunt의 Kelvin sense nodeGPIOA_CRL, ADC1_DR_CH1
PA2Trainer PWM0/3.3 V MCU logic PWM; Motor A/B 전력 출력과 구분TIM2_PSC/ARR/CCR1/CCER/CR1
PA3GPIO OUT드라이버 ENGPIOA_CRL, GPIOA_BSRR/ODR
PA4GPIO OUT드라이버 DIRGPIOA_CRL, GPIOA_BSRR/ODR
PA5GPIO INconditioned 3.3 V active-high FAULT; 현재 원인은 Trainer에서 수동 주입GPIOA_CRL, GPIOA_IDR
PA6선택형 입력3.3 V pull-up Hall 또는 3.3 V AS5600 OUTAFIO_EXTICR2+EXTI6 또는 ADC1_IN6

NTC ADC와 UART 입력 분리

Vishay NTCLE100E3103의 공식 기준은 R25=10 kΩ, B25/85=3977 K입니다. 로컬 회로는 3.3 V → R1 10 kΩ → PB0 / ADC1_IN8 → NTC → GND 분압 구조입니다. 25 °C에서 NTC가 10 kΩ이므로 PB0는 1.65 V, 12-bit ADC는 약 2048이며, 온도가 올라가면 NTC 저항과 PB0 전압이 함께 내려갑니다.

V_PB0 = 3.3 V × R_NTC / (10 kΩ + R_NTC). 펌웨어는 제조사 R/T 표에서 만든 5 °C 간격 LUT로 PB0_NTC_ADC_RAWNTC_TEMPERATURE_C_X10으로 변환합니다.

별도의 UART INPUT은 2바이트 [CMD][DATA]PA10 / USART1_RX로 전달합니다. UART 송신은 PB0 온도 환경값을 변경하지 않습니다.

회로의 CMD와 DATA는 각각 0~255의 십진수로 입력합니다. 예를 들어 CMD 3, DATA 85[0x03][0x55]입니다. UART 초기화 코드의 BUILD 후 STEP을 한 번 실행한 다음 SEND TEST FRAME을 누르세요. BUILD만으로는 user_init이 실행되지 않습니다.

PA6 피드백 선택

HALL

PA6 digital input, AFIO_EXTICR2.EXTI6=0000, EXTI6 rising edge, HALL_COUNT. 전기 계약은 open-collector 출력과 외부 3.3 V pull-up입니다. 모터 1회전당 transition 수나 stroke당 pulse 수는 선택된 Hall 부품의 공식값이 아니라 Trainer plant 가정입니다.

POSITION · AS5600

PA6 analog input, ADC1_IN6, AS5600 ratiometric OUT. 공통 프로필은 3.3 V mode, OUTS=00, programmed MANG=180°이며 0..180°에 2048 distinct DAC steps가 대응합니다. 기존 코드 호환을 위해 내부 상수 이름은 TRAINER_FEEDBACK_ANGLE을 유지합니다.

두 모드는 동일한 학생 코드가 TRAINER->FEEDBACK_MODE를 읽어 초기화 경로만 선택합니다. MCU·드라이버 제어 코드와 저장소는 갈라지지 않습니다.

공통 펌웨어·디버깅 계약

항목공통 계약
코드 저장·편집두 피드백 모드 모두 같은 저장 키와 같은 UNIFIED_MOTOR_CONTROL_STUDENT_CODE를 사용합니다.
초기화 순서clock_init → gpio_init → adc_init → pwm_init → uart_init → outputs_safe → feedback_init
NTC 온도 측정PB0 / ADC1_IN8; SQ1=8 단발 변환 결과를 NTC R/T 표 기반 0.1 °C 단위 값으로 환산합니다.
UART 수신PA10 / USART1_RX; USART1_SR.RXNEUSART1_DR로 독립 CMD/DATA를 읽습니다.
피드백 선택TRAINER_FEEDBACK_HALL = 0, TRAINER_FEEDBACK_ANGLE = 1. 학생이 페이지별 코드를 고르지 않습니다.
증명 화면같은 Circuit, Pin, Register, Graph, Watch, Log 화면을 사용하며 PA6 해석만 선택 모드에 맞게 바뀝니다.

모터 전류 계측

가시 회로 경로는 Driver PGND → 0.05 Ω low-side shunt → PA1 / ADC1_IN1 직접 연결입니다. 별도 증폭기는 모델링하지 않으며 VPA1 = Vshunt = I × 0.05 Ω입니다. 따라서 2 A에서 PA1은 약 0.10 V이고, 12-bit/3.3 V ADC raw 값은 약 124입니다.

실물 회로에서는 shunt 양단을 Kelvin sense로 가져오고, 저항 전력을 I²R로 정격화해야 합니다(5 A에서 1.25 W, 8.5 A에서 약 3.61 W). PA1에는 RC/클램프 보호가 필요하며 0..VDDA 범위를 보장해야 합니다. 이 raw low-side 방식은 단방향 nominal 측정이라 재순환·역방향 전류와 ground lift를 완전히 표현하지 않습니다.

모터 출력과 fault 경계

PA2 / PWM_OUT, PA3 EN, PA4 DIR은 0/3.3 V MCU logic command입니다. Motor AMotor B는 GPIO가 아니라 H-bridge의 전력단이며 기본 VM=12 V에서 0↔VM으로 스위칭합니다. CW에서는 평균 VAB=+D×VM, CCW에서는 VAB=−D×VM로 읽습니다. 외부 PA10 UART만 별도의 0/5 V FT 입력 계약입니다.

현재 PA5 / FAULT_INVMD_MD01->FAULT fault class는 Trainer의 수동 fault injection으로 발생합니다. VNH5019A-E/DRV8873의 과전류·과온·저전압·과전압 보호 임계값, 자동 재시도/latched recovery, VNH CS와 DRV8873 IPROPI 특성은 제조사 reference-only이며 Trainer가 자동으로 재현한다고 해석하지 않습니다.

공식값 · Trainer값 · Reference-only

항목공식 출처현재 Trainer/보드 계약Reference-only
NTCLE100E3103R25 10 kΩ, B25/85 3977 K, 제조사 R/T 표3.3 V, R1 10 kΩ 상단 저항, NTC 하단 배치, PB0 분압 노드와 0..125 °C LUT센서·저항·VDDA tolerance, self-heating, thermal lag는 자동 물리에 미반영
AS56003.3 V mode, analog OUT modes, programmable angle rangeOUTS=00, MANG=180°, 2048 sensor-DAC stepsI²C programming, DIR, PWM output, magnet diagnostics
Hall선택된 Hall vendor datasheet 없음3.3 V open-collector pull-up, PA6/EXTI6 rising edgetransition/rev와 pulse/stroke 수치는 Trainer plant assumption
VNH5019A-E / DRV8873각 제조사의 truth table, diagnostic/current-output, protection/recovery 규격EN/DIR/PWM/active-high FAULT 추상화와 manual fault injectionvendor mode·threshold·automatic recovery·CS/IPROPI 특성

문서 체계

사이트의 Docs / Log는 아래 다섯 유형으로 같은 자료를 분류합니다. Trainer 문서와 제조사 원문은 역할이 다르므로 함께 확인합니다.

학습 가이드

처음부터 검증까지의 순서

데이터시트 · 레퍼런스

현재 Trainer가 구현한 레지스터·회로 범위

사용자 매뉴얼

코드·레지스터·UI 증명 절차

인터페이스 사양

하네스와 기능 계약

공식 원문 PDF

공식 전기·기능 기준