안녕하세요. 여리 君 입니다.
질문을 자주 올리게 되네요.
회로 기판의 MCU 에 Uart 포트를 통해 통신을 하고 있습니다.
Uart 통신 컨버터를 거치고 있긴 하지만, 통신에 무척 애를 먹고 있습니다.
전달하는 명령에 대해서는 반응을 제대로 하지만, 명령에 대한 응답이 문제가 있습니다.
일부 명령에 대해 응답이 없기도 하고, 응답 전에 다른 명령을 보내면 응답이 깨지기도 합니다.
명령 로그나 반응으로 봐서는 분명 동작을 하는데, 통신 응답만 문제가 있습니다.
전에 비슷한 경우를 겪어봐서, 보드 쪽 문제인 것은 확실한 것으로 보입니다.
이런 소자 단위와 통신 해 보신 분들.. 어떻게 대처 하시나요?
이번 주 내내 테스트 하는데 죽겠습니다 ㅠㅠ
해결되었습니다! 솔루션으로 이동.
프로토콜 문제일 경우가 많습니다.
정해진 프로토콜로 통신하면 요청/응답 이런식으로 아무 문제 없이 진행될 것입니다.
그러나 MCU로 프로그램 한 것이면 MCU의 프로그램에 따라 정해진 프로토콜이 정해질 것입니다.
일 예로 아주 구석기 시대의 파워는 한 바이트 사이의 시간 지연이 필요한 경우도 있습니다.
즉 한바이트 보내고 50mS Delay 그 다음 바이트 이런식으로 이루어 진 것도 있죠.
MCU 프로그램을 분석 또는 정확한 프로토콜을 먼저 알아낸 후 통신을 하는게 순서 이겠습니다.
만약 Serial 통신이 RS-485 라면 이런 경우에는 보내는 타이밍과 읽는 타이밍에 따라 데이타가 깨지는 경우도 발생합니다.
통신 선로가 하나이기에 읽을 때, 쓰는 때가 정해집니다.
날짜: 03-16-2021 03:07 AM
답변 감사드립니다.
제가 전에 쓰던 가스 컨트롤러도 바이트 당 Delay 를 줘야 했었죠.
제작사 쫓아가서 일일히 확인해 가며 만들어 달라고 했었는데...
프로토콜은 알고 있습니다.
확인해 보니 응답 처리까지 시간이 걸리네요. 최소 300ms.
그리고 간간히 응답이 깨지기도 합니다.
뭐... 그렇네요. 천천히 보내는 수 밖에 없을 것 같습니다.