제어기를 통해 다이나믹셀을 제어중인데 return delay time을 default 값인 500us로 설정되어있는 상태입니다.
그런데 ping함수를 코딩하여 보낼 때 코드안에서 사용한 총 delay time이 500us보다 짧은 250us 입니다.
e-manual의 설명대로라면 instruction packet을 보내고 난 후 500us 후에 status packet이 반환되니까 저는 status packet이 반환되기도 전에 instruction packet을 송신하여 status packet을 수신하지 못하여야하는게 맞는거 아닌가요?
지금 저의 코드에서는 instruction packet의 마지막 비트를 보내고, 버퍼가 비어져있는지 확인후에 (while(!TXD_SHIFT_REGISTER_EMPTY_BIT); //Wait till last data bit has been sent ), 100us의 dealy time을 준 뒤, direction port를 바꿔줍니다. 그리고 ping 함수를 빠져나와 바로 다시 150us의 delay time을 주었습니다.
최종적으로 궁금한 점은 제 코드에서 500us 보다 짧은 delay time을 주었음에도 불구하고 왜 status packet이 수신되는건지, 그리고 return delay time이라는것이 통신방향을 바꾸는 시점을 기준으로 500us의 delay를 의미하는 것인지가 궁금합니다.
감사합니다 :)
![]() |
2022-03-05 17:33:06 |
n164311070517714 |
안녕하세요.
사용하시는 다이나믹셀의 종류는 무엇이신가요?
또한, 펌웨어 버전도 알려주세요.
Retum Delay Time는 다이나믹셀의 Status Packet값을 반환하기 전 Delay Time이 맞습니다.
![]() |
2022-03-07 11:24:53 |
ykw4463 |
제가 사용하고있는 다이나믹셀은 MX-64T (통신 프로토콜 1.0) 이고, 펌웨어 버전은 41 입니다.
아래 사진은 PING 함수 안에서 100us의 딜레이를 주고, ping 함수를 빠져나온뒤 바로 main문에서 150us의 딜레이를 줬을 때, 방향이 tx인 시간동안의 instruction packet의 파형을 측정한 것입니다.
방향이 tx인 시간 또한 오실로스코프로 방향핀 단자를 찍어 rx와 tx의 시간을 측정하였습니다. 아래의 사진에서 instruction packet과 status packet의 송 수신이 반복되는 것을 알수있었습니다.
다음으로 아래의 사진은 ping 함수 안에서 위와 똑같이 100us의 딜레이를 주고 ping 함수를 빠져나온뒤 바로 main문에서 100us의 딜레이를 주었을 때, 방향이 tx인 시간동안의 instruction packet의 파형을 측정한 것입니다.
두 사진을 보시면 방향이 tx인 시간은 같지만 두번째 사진의 경우, main문에서 딜레이를 50us를 줄이면 status packet과 그 다음에 와야할 instruction packet이 겹쳐지는것을 볼 수 있었습니다.
궁금한점은 첫번째나 두번째의 경우 둘다 총 딜레이가 return delay time인 500us보다 짧습니다. 하지만 main문에서의 delay가 150us인 첫번째의 경우는 송수신이 잘 이루어집니다.
또한 첫번째 사진의 파형에서 instruction packet이 송신되고 난 후, status packet이 수신될때까지 그 사이의 시간을 측정해보니 1.009ms가 측정되었습니다.
그런데 return delay time이 instruction packet이 끝나는 지점부터 500us 후에 status pakcet이 반환된다는뜻이면 왜 첫번째 사진에서는 500us가 지난 후에 status packet이 반환되었는지 궁금합니다 ㅜㅜ
그리고 첫번째 사진에서 instruction packet과 status packet 사이의 시간이 1.009ms로 측정되었다고 말씀드렸는데 그럼 두번째 사진처럼 main문에서 delay를 50us 줄였을때도 차이가 거의 없어야하는 것이 아닌가 라는 생각이 들었는데 막상 파형을 보니 status packet과 instruction packet이 겹쳐졌습니다,, 첫번째 사진과 두번째 사진의 차이는 tx에서 rx로 방향을 바꾼뒤에 main문에서 딜레이가 50us만큼 더 짧냐 아니냐의 차이밖에 없는데 왜 두번째 사진에서는 두 패킷이 겹쳐지는걸까요,,?
![]() |
2022-03-07 15:58:26 |
n164311070517714 |