by nettek » Wed Jul 13, 2016 3:05 pm
by nettek
Wed Jul 13, 2016 3:05 pm
Hi,
I doing a project with Altera DE2 board (VHDL) meant for communicating with the Bioloid robot. Right now I am using a single AX-12 servo to check sending commands and receiving a status packet. The diagram is attached.
I have succeeded in sending it a command and am now trying to receive a status packet from the servo. It is done by sending the packets received from the AX-12 to a UART_RX module (lower left) that transforms it to a parallel bus, and from there to a module (lower middle) that separates each packet so that I know what is the ID of the servo, and the errors (the only packets I truly care about and need to know). The ID and error buses go directly to LEDs on the board.
I'm sending a few different commands, among them the PING instruction, and none of the LEDs power on.
I believe it could be due to two different reasons (though if you find any other possible explanation I would love to hear it):
1. A problem with the UART_RX module. I don't think it's the problem because I've tested it before and it worked fine.
2. The return delay time. I'm not sure what I'm supposed to do with it, and what it is.
So, about the return delay time...
1. what is the default value? 160us? I've sent the AX-12 a command to reset (which I know worked because the ID changed to 0) so I believe the delay time is now 160us.
2. I have a pin called direction, which goes to a buffer (both the buffer you see in the diagram and an outside buffer chip, as instructed in the AX-12 datasheet). When am I supposed to change it? Right after I'm done sending the command? wait for a few micro seconds?
3. When am I supposed to start receiving the data from the servo? When the delay return time is over?
If you have any other suggestions or comments I would love to hear them. Thanks!
Hi,
I doing a project with Altera DE2 board (VHDL) meant for communicating with the Bioloid robot. Right now I am using a single AX-12 servo to check sending commands and receiving a status packet. The diagram is attached.
I have succeeded in sending it a command and am now trying to receive a status packet from the servo. It is done by sending the packets received from the AX-12 to a UART_RX module (lower left) that transforms it to a parallel bus, and from there to a module (lower middle) that separates each packet so that I know what is the ID of the servo, and the errors (the only packets I truly care about and need to know). The ID and error buses go directly to LEDs on the board.
I'm sending a few different commands, among them the PING instruction, and none of the LEDs power on.
I believe it could be due to two different reasons (though if you find any other possible explanation I would love to hear it):
1. A problem with the UART_RX module. I don't think it's the problem because I've tested it before and it worked fine.
2. The return delay time. I'm not sure what I'm supposed to do with it, and what it is.
So, about the return delay time...
1. what is the default value? 160us? I've sent the AX-12 a command to reset (which I know worked because the ID changed to 0) so I believe the delay time is now 160us.
2. I have a pin called direction, which goes to a buffer (both the buffer you see in the diagram and an outside buffer chip, as instructed in the AX-12 datasheet). When am I supposed to change it? Right after I'm done sending the command? wait for a few micro seconds?
3. When am I supposed to start receiving the data from the servo? When the delay return time is over?
If you have any other suggestions or comments I would love to hear them. Thanks!