How lupi13/g474re_dnc_motor_control works
이 저장소는 STM32G474 기반 3상 PMSM FOC 드라이브 펌웨어입니다. 주 경로는 CANopen 또는 디버그 명령을 받아 속도/전류 지령으로 만들고, 1 kHz 속도 루프와 40 kHz 전류 루프를 거쳐 HRTIM PWM을 출력하는 것입니다. Hall 피드백, 보호, 파라미터 영속화는 별도 도메인 단계로 표시했습니다. 주요 주기와 지령 흐름은 README에 근거하며, 일부 세부 호출 관계는 발췌되지 않아 생략했습니다.
Main entry points: app.c 드라이브 앱 · motor_control.c 모터 제어 조정 · canopen_service.c CANopen 서비스 · drive_parameter_manager.c 파라미터 관리자
Components 25
명령 및 CANopen
- CANopen 서비스
Core/App/canopen_service.c - Object Dictionary
Core/Communication/object_dictionary/OD.c - 명령 라우터
Core/App/drive_command.c - 디버그 명령
Core/App/drive_debug_command_source.c
모터 제어
보드 입출력
설정 및 저장
- 드라이브 파라미터
Core/Config/drive_parameters.c - 파라미터 관리자
Core/App/drive_parameter_manager.c - Flash 저장 드라이버
Core/Platform/flash_storage_driver.c
Other components
- CANopen master
- 디버거
Connections 25
- CANopen master → FDCAN 어댑터: CAN 프레임
- FDCAN 어댑터 → CANopen 서비스: 수신 전달
- CANopen 서비스 → Object Dictionary: OD 접근
- CANopen 서비스 → 명령 라우터: 명령 dispatch
- 디버거 → 디버그 명령: 명령 입력
- 디버그 명령 → 드라이브 앱: 지령 전달
- 명령 라우터 → 드라이브 앱: 지령 전달
- 초기화·주 루프 → 드라이브 앱: 주기 실행
- ADC 드라이버 → 드라이브 앱: ADC 완료
- 전류 센서 → 드라이브 앱: 전류 측정
- 전압 센서 → 드라이브 앱: DC 링크 측정
- Hall 입력 → Hall 디코더: Hall 신호
- Hall 디코더 → Hall 추정기: 위치 상태
- Hall 추정기 → 모터 제어 조정: 회전자 피드백
- 드라이브 앱 → 속도 제어기: 1 kHz 갱신
- 속도 제어기 → 드라이브 앱: q축 전류 지령
- 드라이브 앱 → 모터 제어 조정: 고속 루프
- 모터 제어 조정 → FOC 전류 제어: 전류 제어
- FOC 전류 제어 → SVPWM 변조: 전압 지령
- 모터 제어 조정 → HRTIM PWM: 듀티 출력
- 드라이브 앱 → Fault 관리자: 측정 보호
- 드라이브 앱 → 디버그 관측: 상태 갱신
- 드라이브 파라미터 → 파라미터 관리자: 기본값 제공
- 파라미터 관리자 → Flash 저장 드라이버: 읽기·쓰기
- 파라미터 관리자 → 모터 제어 조정: 설정 적용