도와주세요!!
현재 atmega 128 보드와 통신을 할일이 생겨
타겟 보드대 타겟 보드로의 시리얼 통신을 시도중입니다.
당연히 먼저 타겟 보드와 pc 간의 테스트는 완료한 상태이구요..
x5 <-> PC 간의 통신 이상없구요
atmega128 <-> PC간의 통신 역시 이상이 없습니다.
근데 x5 -> atmega128(new TC사 제품) 간의 통신만 하면 신호가 다음과 같이 전송돼네요..
0 : 0xf6
1 : 0x67
2 : 0xb3
3 : 0x66
4 : 0xd9
5 : 0x65
6 : 0xb2
7 : 0x64
8 : 0xec
9 : 0x63
*좌측은 char 값으로 serial 통신 예제에서 write(handle, "1", 1) 과 같은 형태로 송신을 한것에 대하여 대상 보드가 받은 hex 값입니다.
소스는 여기서 제공해 주는 serial 예제를 그대로 사용하였고 while(1) 안쪽에 write(X, X, X) (위와같은 형태)의 한줄만 추가한 상태입니다.
atmega128 보드에서 수신쪽에 문제가 있을것 같은 생각이 듭니다만 혹시나 이 문제에 대하여 해결 방안이 있을까 싶어
질문 올립니다.
ㅋㅋ... EZ-X5용 예제가 있군요...ㅡㅡ;;;
예전에 이거 만든다고...고생했던 기억이.. ㅋㅋ
질문을 보니.. 블루투스나 지그비 등으로 통신을 하신게 아니고...
그냥 cable로 연결하고 통신을 하신거 같은데..
혹시 케이블을.. EZ-X5에 달려 있는 시리얼 포트에 꽂으신건 아닌지...
만약 거기 꽂으셨다면..
handle = oepn("/dev/ttyS00" 가 아니고 "/dev/ttyS2" 가 되어야 할 것 같습니다...
ttyS0인지 2인지..잘 기억이..ㅋㅋ
2로 바꾸셔야 할 거 같고..
다른데 연결하셨다면.. 좀더 정보를 주시면..ㅋㅋ
아는데 까지 답변 드리겠습니다..^^
제가 제공해 주는 포트에 지그비를 물려서 썻었거든요..^^
수고하세요..
아 답해주신 고도푸님 감사드립니다.
우선은 x5보드 윗쪽의 5핀으로 나와있는 곳 포트를 사용하였구요
tx, rx, gnd 세선만 따서 케이블을 직접 제작하였습니다.
(물론 tx->rx, rx->tx로 꼬아주는것도 잊지 않았습니다.)
x5->atmega128 보드로의 시리얼 통신에서, 값을 줄때 받고 안줄땐 안받는걸로 봐선
포트 연결 및 케이블 상태는 정상인것 같습니다.
(현재 scanf로 minicom으로부터 받은 값을 전달하는 형태로 소스수정하여 테스트 중입니다.)
그리고 일정 값에대하여 일정한 값을 받는 부분도 포트및 케이블이 정상인것을 증명해 주구요..
(캐릭터 '0'에 대하여 헥스값 0xf6 이 일정하게 들어옵니다.)
아무리 봐도 셋팅을 의심하게 되는데
(atmega128에서의 셋팅이 바운드 레이트가 9600이 아닌 9615가 나오는게 살짝 걸립니다.
인터럽트 특성상 저렇게밖에 셋팅이 안돼더라구요..)
지인에게 들은바로 암프로세서와 atmega MCU 특성상 두MCU가 시리얼 인식 방식이 조금 다르기때문에
위와같은 문제가 일어날수 있다고 하는얘기가 있긴 했는데..
확실한 근거가 없는 말이기에 일단은 무시하고 계속하여 테스트 중입니다.
일단은 캐릭터 '0'부터 '9'까지의 hex값을 define하여 사용하고는 있습니다만
문자열 길이가 4이상 되는 경우의 전송시에는 디파인된 값이 또 바뀌네요..
아무래도 셋팅상의 문제가 의심되는데
9600바운드에 8비트 캐릭터 패리티와 하드웨어 컨트롤 none 셋팅 양쪽다 맞는데 미치겠네요 ㅠㅠ
비슷한 경험 있으신분 해결법 하시면 도움좀 부탁드립니다..ㅠㅠ
ㅋㅋ 예.. 지인 분 말씀은 사실이 아닌듯 하네요.. ^^
제가... ZigBee 모듈을 이용하여 EZ-X5와 4개의 ATmega128과 통신을 해 본 경험이 있어서요.. ^^
물론 그때는 EZ-X5에 달려 있는 시리얼 포트를 이용했고.. 각각 ATmega128마다 아이디를 먼저 보내고보드에서는 아이디로 구분해서 1:4통신을 하였습니다.. ^^
충분히 되는데.. ㅋㅋ 옆에 없으니.. 볼수가..없어서.. ㅋㅋ
일단은 그때 소스를 제가 다시 보면서 의심 나는 부분을 한번 정리 해 볼께요..^^
빨리 해결 되셨으면 좋겠네요..^^
아참 수신측의 시리얼 셋팅은
9600 bit/sec
데이터 비트 8
패리티 없음
정지비트 1
흐름제어 없음이고
x5의 송신 셋팅은 본 사에서 제공한 serial (dio, gpio 와 함께 제공되는 예제)의 셋팅을 그대로 사용하였습니다.