비상정지와 누전 입력 — NC 버튼, 즉시 차단, 그리고 해제 뒤 자동 재개 (M7-5)
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
BSP에 비상정지(EM_INT)와 누전(RCD_INT) 입력을 넣었다. 충전 중 비상정지를 걸자 감지한 같은 밀리초에 주 릴레이가 떨어졌다. 다만 비상정지를 풀면 EVerest가 아무 조작 없이 충전을 다시 시작했다. 이건 코드가 아니라 제품 요구사항으로 정할 문제였다.
오전에 손으로 설치한 것을 레시피로 옮긴 데 이어, 오후에는 시스템 설정을 정리했다. 호스트 이름이 왜 그렇게 길었는지, PLC 모뎀이 왜 DHCP를 시도했는지 원인을 찾았고, MAC 세 개를 고정했으며, 블루투스가 초기화에 실패하면 스스로 복구하게 만들었다.
이미지에 든 EVerest를 보드에서 처음 실행해 CPU와 메모리를 재고, 오프라인 부팅 때 충전이 2분 늦어지는 원인을 고쳤다. 저항 지그로 CP 상태별 ADC 값을 측정하고, C로 첫 BSP를 짜서 CP 상태에 따라 주 릴레이가 붙고 떨어지는 것까지 확인했다.
기능 시험을 하면서 보드에 손으로 넣은 펌웨어, 스크립트, 도구를 Yocto 레이어의 레시피로 옮겼다. 레시피 네 개와 머신 설정 몇 줄이면 됐지만, /usr/local 이 별도 파티션이라는 것, make.def 가 컴파일러를 덮어쓴다는 것 같은 함정이 있었다.
이미지가 완성됐으니 다음은 그 안에 든 EVerest를 실제로 돌릴 차례다. M7의 목표, 하지 않을 것, 일정, 그리고 시작 전에 정해야 할 것을 정리했다.