I have a Faulhaber 1717T006SR DC motor with a build-in quadrature encoder.

Here is the relevant bit of the datasheet for the encoder. enter image description here

The encoder outputs are 5V. I want to interface this with an FPGA (spartan 7) which takes 3.3V inputs, so I used a TXB0104 (4-Bit Bidirectional Voltage-level Translator) to convert the 5V signals into 3.3V on my custom prototype PCB, trace length is 47mm, width is 10mil on a 1oz copper layer.

I wanted to confirm all was ok first before connecting it to the FPGA (the FPGA development board was not cheap). So I connected it to an STM32F407 (F4 Discovery board) with 5V tolerant pins. I then probed the pin on the STM directly with the probe ground spring pushed onto a ground pad nearby. (I did not use the alligator clip ground lead on the probe)

Here is the result enter image description here

And zoomed in. enter image description here There is a 1.5V overshoot and undershoot, also ringing.

The oscilloscope has 100Mhz bandwidth, the probes are 200Mhz. I used the ground spring on the probe pressed onto GND close the probe tip to eliminate (as much as possible) the effect of the probe on the circuit. At the time of measurement both channel A & B was connected to a STM32F407. I tried connecting the encoder directly to the STM32 Discovery F4 without the level translator and I get 1V overshoot & 1.5V undershoot but there is less ringing.

My questions.

a) Is this the oscilloscope or the way I'm probing thats not correct and causing this. Any advice?

b) If not? How do I deal with this or will this not damage the Spartan 7? (datasheet says max voltage is Vcco + 0.55 = 3.85V on the inputs)


  • 1
    \$\begingroup\$ You could add small (probably 20-33 Ohm) series termination resistors as close as possible to the drivers side. \$\endgroup\$ – DKNguyen Mar 29 '20 at 17:12
  • \$\begingroup\$ Did you already calibrate your osci probes? Is your decoder a schmitt-trigger input? Some filtering would also reduce ringing. And additionally be careful with your ground system which can be influenced through the relativly strong currents of your motor drive. \$\endgroup\$ – Tom Kuschel Mar 29 '20 at 18:31
  • \$\begingroup\$ @DKNguyen I tried this now. By driver side I assume you meant as close as possible to the TXB0104. I added a 47ohm resistor(closest one I had), I could get is 1cm from the driver. Overshoot max is 4.21V, undershoot is -1.19V \$\endgroup\$ – Ryno Mar 29 '20 at 18:39
  • \$\begingroup\$ @TomKuschel 1) Yes probes are calibrated, probably done this 10 times now already :) 2) Not sure what you mean by decoder. 3) I have a 0.1uF cap on both the Vcca and Vccb supply of the TXB0104. 4) This is true, but for these measurements I turned the motor by hand to eliminate any possible interference. With the motor running everything gets noisy. Startup current is 3.7V / 1.07ohm = 3.45 amps. \$\endgroup\$ – Ryno Mar 29 '20 at 18:45
  • \$\begingroup\$ Yes as close as possible to the output of TXB0104. Hmmm that did a lot less than I thought it would, especially for a larger resistance \$\endgroup\$ – DKNguyen Mar 29 '20 at 18:46

Your Answer

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

Browse other questions tagged or ask your own question.