by Fritzoid » Thu Sep 30, 2010 2:26 pm
by Fritzoid
Thu Sep 30, 2010 2:26 pm
Ricardo,
What you are seeing is pretty much the best you can expect in these circumstances. There is a minimum response time of around 25-30 us. as you can see. This is the overhead to process the incoming packet and generate the outgoing response. As a result, a return delay setting below 30 us. is functionally ignored.
The servo firmware itself is interrupt driven and must priodically respond to requests from the USART, the AD converter, and various timers. After all, the firmware's main function is to run its PID control loop. The interrupt routines can preempt any code that might be creating outgoing packets and that will result in exactly the type of delays that you are seeing. And this is the "best case" scenario!
By the way, I like the way your protocol analyzer displays the hexadecimal translation along with the pulse data!
Ricardo,
What you are seeing is pretty much the best you can expect in these circumstances. There is a minimum response time of around 25-30 us. as you can see. This is the overhead to process the incoming packet and generate the outgoing response. As a result, a return delay setting below 30 us. is functionally ignored.
The servo firmware itself is interrupt driven and must priodically respond to requests from the USART, the AD converter, and various timers. After all, the firmware's main function is to run its PID control loop. The interrupt routines can preempt any code that might be creating outgoing packets and that will result in exactly the type of delays that you are seeing. And this is the "best case" scenario!
By the way, I like the way your protocol analyzer displays the hexadecimal translation along with the pulse data!