Load-Cell #1 - 매뉴얼이 틀렸다, 그리고 89ms의 진범
로드셀 무게 변환 모듈 P7001-2를 STM32에 붙였는데 읽히는 값이 garbage다. raw 덤프를 떠보니 매뉴얼의 응답 포맷부터 실물과 달랐다. 그리고 갱신 주기 89ms의 진범은 모듈이 아니라 미연결 채널의 타임아웃이었다.
로드셀 무게 변환 모듈 P7001-2를 STM32에 붙였는데 읽히는 값이 garbage다. raw 덤프를 떠보니 매뉴얼의 응답 포맷부터 실물과 달랐다. 그리고 갱신 주기 89ms의 진범은 모듈이 아니라 미연결 채널의 타임아웃이었다.
부하를 주는 동안 무게값이 멈춘다. CAN, 펌웨어, 모듈을 한 층씩 격리해보니 모듈이 체크섬까지 유효한 프레임으로 옛 값을 14초간 반복하고 있었다. 미문서 ADC raw 명령을 찾아 블랙박스 필터를 통째로 우회한 기록.
LC2 채널만 폴 실패가 버스트로 쏟아진다. 원인은 트랜시버 없이 RS-232 출력을 3.3V TTL 핀에 직결한 배선. 깨진 바이트 하나가 펌웨어에서 수백 ms 장애로 증폭되는 straddle 메커니즘과, 헤더 헌트 + FLUSH로 오정렬을 0%로 만든 파서 자기복구 설계.
힘 데이터가 끊기면 365ms 안에 비상정지를 거는 신선도 감시를 만들었다. 그리고 껐다. 오탐도 위험이라는 trade-off 분석과, 캘리브레이션을 flash에 영속화하면서 배운 원자성 이야기로 시리즈를 닫는다.
2편 코드로 명령은 줬는데 진짜 그대로 도는지 어떻게 확인할까. ESCON Studio의 Data Recorder로 스텝 응답·부하 변동을 캡처하고 Expert Tuning까지 연결한다.
ESCON 50/5에 STM32로 직접 PWM 명령을 던지고, 아날로그 모니터 출력을 ADC로 받아오는 펌웨어 전체 코드.
maxon ESCON 50/5에 모터뱅크 BL57101E1K를 물려 돌려본 기록. Startup Wizard, Diagnostics, Auto Tuning까지.