도와주세요!!
현재 리눅스 PC를 사용하고 있구요.
터미널과, minicom 을 이용해서 PC와 보드간의 시리얼 통신을 하고 있습니다.
PC에서는 시리얼포트가 ttyS0로 되었있어서
echo 명령을 ttyS0로 출력해도 정상적으로 나오는데
보드에서 PC로는 전송이 안되네요?
PC -> 보드로 수행한 echo 명령은
echo "test" > /dev/ttyS0
입니다. 보드의 minicom 화면에 test 라는 글자가 나왔구요.
반대로 보드의 minicom 화면에서
echo "test" > /dev/ttyS0
를 해봤지만 터미널 창에는 결과가 안나오더라구요.
ttyS0로 간단한 문장을 출력하는 프로그램도. PC-> 보드 로는 가능한데 보드 -> PC로는 안되네요
보드에서 나오는 시리얼포트는 ttyS0가 아닌가요?
제가 개념을 잘못알고 있는건지 모르겠네요.
안녕하세요.
시러얼 구성은 어떻게 하셨는지는 모르겠지만,
EZ-S3C2440 보드는 3개의 시리얼이 있습니다. 그 중 하나는 현재 미니컴으로 연결되어 메세지 또는 명령을 쓸 수 있는 콘솔Port 가 하나 연결 되어
있습니다. 아래와 같이 연결하였을 것입니다.
보드 -------------------------------- PC
ttySAC0
ttySAC1
ttySAC2 ( 콘솔) ----------------- ttyS0
따라서 시리얼 통신을 하기 위해서는 ttySAC0, ttySAC1 중 하나를 PC와 연결하여 통신을 하셔야 합니다.
만약 EZ-S3C2440 보드가 아니라면 해당보드에서 시리얼 장치( ttyS0, ttySAC0 기타등등)가 어떻게 잡혔는지 확인하시고 통신을 하셔야 합니다.
뭔가 좀 이해가 안되는 부분이 있네요
minicom 에서 echo "test" > /dev/ttyS0(혹은 ttySAC0) 를 하게 되면
그 입력하신 글자가 minicom 상에 보이시나요?
그 명령을 치신다는 것은 시리얼이 콘솔이라는 의미이고
콘솔로 설정되어 있는 시리얼 포트를 이용해서 물리적으로 PC 와 연결한 상태에서
통신을 하시고자 하는 것이라면
결론부터 말씀드리면 잘 안된다고 말씀드리고 싶습니다.
init 쉘에서 콘솔포트를 해당 시리얼로 사용하시지 마시고
데이타 통신을 시도해 보십시요
보드에서 PC의 시리얼로 물린 포트는 echo "test" > /dev/xxxx 하신 것으로 보아
콘솔포트인데 echo ------ 를 입력 하실때 pc 에서 출력이 나가는 것이고 콘솔로부터 출력이
보고 계신 터미널의 출력입니다.
즉 이미 echo "test" 라고 치실때 화면상에 보이는 것이 보드가 보내주는 출력입니다.
통신이 되고 있는 것이죠...
그래서 콘솔포트로 지정된 상태에서는 원하신 데이타 통신은
정상적으로 동작하지 않습니다.
터미널에서 입력한 것은 PC의 ttyS0 로 나갈것이고 보드의 콘솔은 미니콤이 주는 것인지
터미널이 주는 것인지 모르기때문에 사용자 입력이 왔다고 생각하고 콘솔의
echo 를 해준것일 뿐입니다.
안녕하세요.
ttySAC0, ttySAC1 을 사용하시면 됩니다.. ( ttySAC2 는 콘솔용으로 사용하고 있습니다. )
그럼 좋은 하루 되세요..