1

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)

Thanks

Ryno
  • 21
  • 1
  • 1
    You could add small (probably 20-33 Ohm) series termination resistors as close as possible to the drivers side. – DKNguyen Mar 29 '20 at 17:12
  • 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. – Tom Kuschel Mar 29 '20 at 18:31
  • @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 – Ryno Mar 29 '20 at 18:39
  • @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. – Ryno Mar 29 '20 at 18:45
  • 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 – DKNguyen Mar 29 '20 at 18:46
  • @DKNguyen Here is the screenshot with the resistor. https://imgur.com/a/IlPCza6 – Ryno Mar 29 '20 at 18:57
  • Out of curiosity, what do you see on the input side of the TXB? – DKNguyen Mar 29 '20 at 19:01
  • @DKNguyen 5V side https://imgur.com/a/Cpp2qG7 . 5V side zoomed https://imgur.com/a/qn89NIe . Same overshoot and undershoot. There is a 15cm ribbon cable attached to the motor that carries motor +-, encoder +- and encoder channels. – Ryno Mar 29 '20 at 19:44
  • I was just asking because the TXB is bidirectional and pins on both sides are weak outputs meant to be overdriven by stronger inputs which is how its automatically bidrectionaly. So I was just wondering if the reflection on the FPGA side overriding the output was the cause of that – DKNguyen Mar 29 '20 at 20:49
  • @DKNguyen I completely bypassed the TXB and connected the encoder directly to an STM32, I could still see the overshoot. I have 2 if these motors, they both exhibit the same characteristics. I haven't yet connected it to the FPGA, I wanted to be sure it was save first. – Ryno Mar 29 '20 at 21:17
  • @Ryno You could clamp the overshoot with a diode to the rail, but that doesn't fix the root cause. – DKNguyen Mar 29 '20 at 21:18

0 Answers0