Pololu DMC01 User Manual Download Page 15

5. The Serial Interface

You can use the serial interface for four general purposes: querying the TReX for information (any mode), setting its
configuration parameters (serial mode only), sending it motor commands (any mode), and upgrading its firmware
(must be in firmware-upgrade mode). Firmware upgrading is addressed in

Section 6

.

Serial motor commands are accepted in any mode, but they will only immediately affect the motors if the TReX is in
serial mode or channel 5 has serial override active. When the TReX is in RC or analog mode and serial override is
not active, the most recently received serial motor command for each motor is buffered. These buffered motor
commands take effect if serial override becomes active.

Note that when you are using the serial interface, it is crucial that you do not transmit to the TReX while it is
transmitting to you. Because of the way the RS-232 circuit is tied to the logic-level serial lines, the TReX can
sometimes get its transmissions echoed back to itself. It deals with this by ignoring its receive line while it is
transmitting, so anything you send it during this time will be lost. As a consequence, the TReX will never transmit
anything over the serial line without your first explicitly asking it to. The high-level protocol for sending commands
that cause the TReX to transmit data back to you should be as follows:

1. Transmit command packet that causes the TReX to send data back to you

2. Wait for all the expected data to be received or for a reasonable timeout period

3. Transmit your next command packet

Motor commands are strictly one-way; the TReX will not send data back in response to these. All other commands
result in two-way data transfer.

An additional consequence of the RS-232 circuit is everything you send to the TReX using the

RS-232

connection

will be echoed back to you as you’re transmitting it (RS-232 transmit and receive lines are physically tied together
by a resistor). If you are connecting your TReX to a COM port, you can either disable your receiver while you
transmit or you can simply discard the echoed bytes you know to expect. The command packet echo will always
arrive before any data the TReX sends to you. Note that you will receive no echo if you use the logic level (TTL)
serial lines to communicate with the TReX.

5.a. Serial Communication Settings

Unlike our other Pololu serial controllers, the TReX does not support automatic baud detection. Instead, you can
configure the TReX to run at one of 11 common baud rates ranging from 1200 to 115,200 bits per second. The
TReX ships with a default baud rate of 19,200 bps.

The TReX allows you to optionally select one of three different kinds of error detection to help you ensure the
integrity of your communications: even parity, odd parity, or 7-bit cyclic redundancy checking (CRC-7). Cyclic
redundancy checking is explained in more detail in

Section 5.e

. The default setting is no error detection.

Lastly, you can specify whether serial communication with the TReX will use one or two stop bits. The default
setting is one stop bit.

These serial settings are controlled by a single “serial-settings” configuration parameter (see

Section 5.d

for more

information).

5.b. Serial Command Protocols

The TReX serial command protocol is fairly straightforward. Communication is achieved by sending command
packets consisting of a single command byte followed by any data bytes that command requires. Command bytes

Pololu TReX User's Guide

© 2001–2009 Pololu Corporation

5. The Serial Interface

Page 15 of 22

Summary of Contents for DMC01

Page 1: ...General RC Information 13 4 d General Analog Information 13 4 e Safe Start Mode 14 5 The Serial Interface 15 5 a Serial Communication Settings 15 5 b Serial Command Protocols 15 5 c Serial Command Li...

Page 2: ...ermines whether the motors are controlled by the channel inputs or the serial interface this channel allows you to switch between autonomous and human control at will The serial interface can switch i...

Page 3: ...your projects and about your experience with the TReX motor controller You can contact us http www pololu com contact directly or post on our forum http forum pololu com Tell us what we did well what...

Page 4: ...through the VIN GND connector terminals VIN should be between 6 and 16 V and your power source must be able to supply the current your motors will be drawing The TReX can supply peaks of 30 A and up...

Page 5: ...to ensure you do not solder the diode in backwards You should not solder a diode to your bidirectional motors You may find it beneficial to solder 0 1uF capacitors across all of your motors terminals...

Page 6: ...ure you remove the BEC jumper Warning This middle Vcc column is tied to the output of a linear voltage regulator so current output is limited by thermal dissipation The regulator will only be able to...

Page 7: ...ls motor 2 This jumper may be added or removed on the fly Battery Elimination Circuit BEC a k a Vcc Jumper When this jumper is in place the middle column of channel input pins is connected to Vcc 5 V...

Page 8: ...r LED is located on the top board When it is brightly illuminated the TReX is receiving power and is running Note that the power LED can occasionally glow dimly when the TReX is unpowered if it is con...

Page 9: ...dicates that serial is in control of the motors i e serial override is active or the TReX is in serial mode While serial is in control of the motors the green LED acts as a serial packet received indi...

Page 10: ...microcontroller Ungrounding the SO pin will cause the TReX to startup as normal removing the mix jumper will put the TReX into firmware upgrade mode which will cause the red and green LEDs to start al...

Page 11: ...ess or if the channel variance is too large the TReX will not learn the channel Learning mode phase 2 neutral learning report Once phase one is through the TReX will flash its status LEDs five times t...

Page 12: ...nnel value falls below a certain threshold If your controller is not calibrated this channel may not function as intended Channel 5 Enable disable serial override Serial override gives serial control...

Page 13: ...will stop updating until approximately 150 ms elapse at which point the channel s raw value will become 0xFFFF It will remain as such until valid signals are once again detected on the line As a safet...

Page 14: ...be simultaneously met 1 All required channels must have a valid signal This only applies when the TReX is in RC mode since it s not possible to have an invalid analog signal Required channels are dete...

Page 15: ...ands result in two way data transfer An additional consequence of the RS 232 circuit is everything you send to the TReX using the RS 232 connection will be echoed back to you as you re transmitting it...

Page 16: ...l is compatible with the serial protocol used by our other serial motor and servo controllers As such you can daisy chain a TReX on a single serial line along with our other serial controllers includi...

Page 17: ...rks is beyond the scope of this document but you can find a wealth of information using Wikipedia http en wikipedia org wiki Cyclic_redundancy_check The quick version is that a CRC computation is basi...

Page 18: ...a speed perspective You can find an example of this Section 5 f 5 f CRC Generation Algorithm in C The CRC algorithm is typically defined as a bit wise operation however it is possible to rewrite the a...

Page 19: ...s It is possible to reset the TReX to its default serial settings using the following jumper sequence 1 Power off your TReX 2 Attach the channel mix jumper 3 Attach the learning mode firmware update j...

Page 20: ...s this will increase the rate at which you can communicate with and control your TReX Updating Firmware To update the firmware you need to put your TReX into firmware update mode and then send the new...

Page 21: ...initiate the firmware update If all goes correctly you will be prompted to confirm that you want to erase your current firmware and you will then see a progress bar showing you the status of the uploa...

Page 22: ...mpleted the 8 steps above so that the green status LED is flashing once per second you are ready to upload the new firmware file First transmit the character s This will erase the current firmware Nex...

Reviews: