github에 공유해주신 자료를 가지고 JLCPCB에서 주문했습니다.
공동구매 성격으로 주문하여 총 10장을 주문했고 센서와 포트 실장도 했습니다.
근데 10장 중 1장이 flash.bat으로 프로그래밍은 되는 것 같은데 usb선을 연결하면 led도 켜지지 않고 이동식 디스크로 인식되지도 않습니다. 정상 작동하는 9장은 이미 다른 팀으로 발송한 상태입니다. 육안으로는 잘못 제작된 것이 없고 전원인가도 정상적으로 되며 프로그래밍도 정상적으로 완료되었습니다. 해결 방법이 있을까요?
flash.bat 실행 시 출력이 다른 정상작동하는 장치와 동일했나요? 다시 시도해보고 출력을 여기에 올려 주세요.
USB가 아닌 12V 전원도 공급해 보셨나요?
전원인가도 정상적으로 되며
를 어떻게 확인하신 것인지 알려주세요.
정상작동 하는 장치와 동일한 출력이었습니다. 전원인가는 USB케이블 연결 했을 때 5V입력이 잘 들어갔으며 USB전원 제거 후 flash.bat을 실행하면 전력이 모자르다는 경고가 뜨고 연결 후 실행하면 아래 사진과 같이 나왔습니다.
첨부하신 이미지상으로는 MCU에 문제가 없습니다. 정황상 이미 펌웨어가 올라간 보드에 다시 재업로드를 시도한 것 같은데요.
xPSR: 0x81000000 pc: 0x08001408 msp: 0x2000ff88
출력을 보면 최신 release 빌드 펌웨어라는 가정 하에 아래 위치에서 정상적으로 실행중이었던 것으로 보입니다.
08001404 <HAL_GetTick>:
8001404: 4b01 ldr r3, [pc, #4] @ (800140c <HAL_GetTick+0x8>)
8001406: 6818 ldr r0, [r3, #0]
8001408: 4770 bx lr
800140a: bf00 nop
800140c: 200000f8 .word 0x200000f8
주변 하드웨어 문제인지 멀티미터와 오실로 등으로 직접 진단해보셔야 할 것 같습니다.
혹시 에너지미터 자체제작 하실 때 에너지미터에 HV물리는 볼트는 뭐로 하셨는지 알 수 있을까요?
본문과 다른 주제의 질문은 새 게시글로 작성해 주시기 바랍니다.
제가 보유한 에너지미터 중 1대도 동일한 증상이 있어 분석해본 결과 공유해 드립니다.
보드의 RTC에 사용되는 LSE 크리스탈이 정상적으로 발진하지 못하는 문제가 있었는데요, 이 경우 HAL_RCC_OscConfig() 호출이 timeout에 걸려 실패하면서 펌웨어가 정상적으로 부팅하지 못하게 됩니다.
LSE는 기판 상에서 Y2 입니다.
정상 작동하는 에너지미터에서 Y2의 아래쪽 단자나 C34의 위쪽 단자를 오실로 x10 프로브로 찍어보면 아래와 같이 32.768 kHz 출력을 확인할 수 있습니다.
문제가 있는 LSE의 경우 크리스탈이 아예 발진하지 못하고 있었습니다.
Y2, C34, C36 중 하나가 불량이고 교체하면 정상 작동할 확률이 높으나, 쉽게 교체할 수 있는 부품들이 아니긴 합니다.
RTC 클럭 소스로 LSE 대신 LSI를 사용하도록 펌웨어를 수정하면 에너지미터 자체는 작동하지만, 전원 공급을 중단했을 때 RTC가 초기화되므로 정상적인 사용은 불가능합니다.



