I'm trying to understand EV3 motor TACHO signals circuit on the EV3 hardware schematic.

Please look at the image below.

There are two things I can't understand:

  1. On the left side, the TACHOA0 input is connected to the ADC and Schmitt trigger inputs via RC circuit. I can understand that the 4.7K resistors and 100pF, 47pF capacitors are used to filter the signal. But I can't understand why those two 100K resistors are used.

  2. On the right side, TACHOA1 input is connected to the ADC and Schmitt trigger inputs via RC filter. Here I don't understand the role of MA1 signal.

enter image description here

  • I would think that both 100k resistors connected to the VCC5V are pull-ups, and that the 100k connected to ground is a pull-down resistor. For the MotorA diagram this would make sense - it would keep the tacho line high if there is no signal on TACHOA1. My electronics knowledge is not (yet!) high enough to understand the combined pull-up/pull-down in the TACHO/INT diagram (perhaps there is a MOSFET somewhere that switches between pull-up/pull-down?). Regarding MA1 - are you sure this is an input? Perhaps it is an output powered by VCC5V? Curious to learn more. – Phil B. Mar 26 '15 at 12:37
  • Oh - and you might get a better answer by cross-posting this to electronics.stackexchange.com – Phil B. Mar 26 '15 at 12:38
  1. The EV3 detects when motors are connected and disconnected using the ADC (and gpios). The two 100k resistors are basically a voltage divider, so when the motor is disconnected, the ADC will read 2.5V. If a motor is connected, the motor encoder will either pull the signal high (above 3.7V) or low (between 0.1 and 0.65V). The detection algorithm is actually a bit more involved than this, but this is the general idea.

    For the full details, see the Device Connection Manager Driver and the actual source code. The documentation is not quite exactly correct, so when in doubt, trust the actual source code and not the comments (documentation is generated from comments).

    And even though you didn't ask about it, I should point out that the transistor (Q10A) is also used as part of the detection.

  2. You don't show it, but MA1 is connected to pin 2 on the output port, which is one of the motor driver signals, so MA1 could either be battery voltage, floating or ground depending on the state of the motor driver chip (via 1OUTB2). Additionally, the voltage could be steady or PWM depending on the speed and direction the motor is running. Or, MA1 could also be something else if there is no motor plugged in (or something besides a motor is plugged in).

    On NXT sensors, pin 2 is connected to ground (pin 3). In the source code, it looks like this is just used to detect if a NXT sensor is plugged into the output port.

| improve this answer | |
  • 1.I'm completely agree with the first answer. Indeed the voltage divider is used to detect the TACHO0 pin connection status. 2. Yes MA1 is connected to the one of the motor driver signals. I can guess that this is also used to detect the motor pin status. For example if a 2 wire motor (which doesn't have TACHO signals) is connected to the port then the TACHO input voltage divider (left schematic) will show 2.5v but TACHO1 input will show 0 or 1. This allows to detect 3 situations. Motor with TACHO interface is connected, motor witout TACHO is conected, nothing is connected. This make sens. – Tigran Mar 27 '15 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.