Electronics - Annoying glitch with the Tuscan wing mirror
Discussion
Here's a puzzling minor annoyance and calling for help from the electronics people here.
I have a mk1 Tuscan that has an annoying wing mirror glitch where when you turn the ignition on the passenger wing mirror drives inward a fraction. You can hear the mirror motor buzz for a fraction of a second. 9 times out of 10 it will be the passenger side and every so often it will be the driver's side. If you turn the ignition off and then back on within 6 seconds then it won't do it. Longer, and presumably something discharges, it does it again. Shorter and no fault. Over time the passenger side mirror over drives and hits the stop making a click.
Disconnecting the control pad in the driver's door card stops the fault - no signals to/from the mirror ECU.
Basic checks of the wing mirror ECU and the control pad PCB with respect to diodes, transistors and capacitors are all OK. I don't know how to test the transorbs (marked TS I think) or see any markings on them.
I suspected a transient during the power on cycle but my cheap laptop scope wouldn't pick it up, probably too slow.
Now if I disconnect the power connection to the wing mirror ECU (pin 3), turn the ignition on, then connect pin 3 back up to the mirror ECU (1-2 sec delay of fumbling) then no glitch. All OK. That suggests a transient spike to me running along the power line and interfering with the ECU circuitry. Similarly, if reconnect the power line and I disconnect the serial data line (pin 17 - connects between the control pad and mirror ECU) and repeat that delay with ignition on, all is OK. So it seems to be some initial spike that is upsetting the wing mirror ECU and the PIC16C57 microcontroller output.
I did try a transorb (TVS diode) P4KE16A-B-LF across the ground/ignition power lines but no joy.
So I'm a bit stuck to fix this issue properly. I have a crude fix in place which is a 1 second delay relay on pin 3. Fixes the annoying glitch on start-up but not a true fix.
Any thoughts please?
I have a mk1 Tuscan that has an annoying wing mirror glitch where when you turn the ignition on the passenger wing mirror drives inward a fraction. You can hear the mirror motor buzz for a fraction of a second. 9 times out of 10 it will be the passenger side and every so often it will be the driver's side. If you turn the ignition off and then back on within 6 seconds then it won't do it. Longer, and presumably something discharges, it does it again. Shorter and no fault. Over time the passenger side mirror over drives and hits the stop making a click.
Disconnecting the control pad in the driver's door card stops the fault - no signals to/from the mirror ECU.
Basic checks of the wing mirror ECU and the control pad PCB with respect to diodes, transistors and capacitors are all OK. I don't know how to test the transorbs (marked TS I think) or see any markings on them.
I suspected a transient during the power on cycle but my cheap laptop scope wouldn't pick it up, probably too slow.
Now if I disconnect the power connection to the wing mirror ECU (pin 3), turn the ignition on, then connect pin 3 back up to the mirror ECU (1-2 sec delay of fumbling) then no glitch. All OK. That suggests a transient spike to me running along the power line and interfering with the ECU circuitry. Similarly, if reconnect the power line and I disconnect the serial data line (pin 17 - connects between the control pad and mirror ECU) and repeat that delay with ignition on, all is OK. So it seems to be some initial spike that is upsetting the wing mirror ECU and the PIC16C57 microcontroller output.
I did try a transorb (TVS diode) P4KE16A-B-LF across the ground/ignition power lines but no joy.
So I'm a bit stuck to fix this issue properly. I have a crude fix in place which is a 1 second delay relay on pin 3. Fixes the annoying glitch on start-up but not a true fix.
Any thoughts please?
Do you know what sort of sensor the control pad uses?
If it's a set of simple switches connected as discrete inputs to the ECU you might be looking at a floating input within the ECU which isn't tied up/down firmly enough. You could help it with external pull-up / pull-down resistors.
If it's a set of switched resistors providing analoge values to the ECU it may be that the resistors are not biassed quite correctly and the analogue values are being mis-read during the brown-out as the system powers up. You could consider adding external bias resistors to move the value away from the false signal you're seeing.
This all assumes the problem is a design fault. If not, you may be better off reverse engineering how the control pad works and looking for a hardware failure in the external conditioning circuit, power supply smoothing etc.
If it's a set of simple switches connected as discrete inputs to the ECU you might be looking at a floating input within the ECU which isn't tied up/down firmly enough. You could help it with external pull-up / pull-down resistors.
If it's a set of switched resistors providing analoge values to the ECU it may be that the resistors are not biassed quite correctly and the analogue values are being mis-read during the brown-out as the system powers up. You could consider adding external bias resistors to move the value away from the false signal you're seeing.
This all assumes the problem is a design fault. If not, you may be better off reverse engineering how the control pad works and looking for a hardware failure in the external conditioning circuit, power supply smoothing etc.
Maybe a poor earth connection and some circuitry is finding another route to earth. I would check the resistance between the ground wires/pins of the mirror ECU and a known good earth and/or run a new ground wire. Also check battery -ve to chassis and engine. I am no expert so season to taste . Good luck!
Thanks everyone for the comments and ideas so far.
The control pad does use resistors to connect to the microcontroller and I’m exploring the idea about the conditions during initial ignition on brown out.
Before I get into that I’ve tried smoothing the input 12V with large capacitors and also an inline voltage regulator (cheap one from eBay) but with no luck. Grounds are all spot on up to the control pad pcb.
Since I couldn’t pick up the instabilities on my scope I used my adjustable delay relay to work out how long it took for the voltages to settle down and not give that glitch. By trial and error tweaking a multi turn pot on the delay relay pcb and my scope on single shot I worked it out to be 300 ms.
Next I looked up the PIC16C57 pin out and saw that there is a reset on pin 28. That is monitored by a DS1811-10 voltage supervisor (marked 811B) which has a reset delay of 150 ms. I think that is working fine but I want to fully test its threshold voltage and delay characteristics over the next few days.
So my current idea is to replace the DS1811-10 with a MCP130T-450 which has a longer reset delay of 350 ms. This should keep the microcontroller in the reset state longer during switch on to allow for the external voltages to settle. The logic is that the 150 ms delay is not long enough for the system to settle before the microcontroller switches on.
The controller in the mirror ecu has a mosfet on pin 28 and is not supervised in the same way as I understand it is taking instructions from the control pad.
Will update later on.
The control pad does use resistors to connect to the microcontroller and I’m exploring the idea about the conditions during initial ignition on brown out.
Before I get into that I’ve tried smoothing the input 12V with large capacitors and also an inline voltage regulator (cheap one from eBay) but with no luck. Grounds are all spot on up to the control pad pcb.
Since I couldn’t pick up the instabilities on my scope I used my adjustable delay relay to work out how long it took for the voltages to settle down and not give that glitch. By trial and error tweaking a multi turn pot on the delay relay pcb and my scope on single shot I worked it out to be 300 ms.
Next I looked up the PIC16C57 pin out and saw that there is a reset on pin 28. That is monitored by a DS1811-10 voltage supervisor (marked 811B) which has a reset delay of 150 ms. I think that is working fine but I want to fully test its threshold voltage and delay characteristics over the next few days.
So my current idea is to replace the DS1811-10 with a MCP130T-450 which has a longer reset delay of 350 ms. This should keep the microcontroller in the reset state longer during switch on to allow for the external voltages to settle. The logic is that the 150 ms delay is not long enough for the system to settle before the microcontroller switches on.
The controller in the mirror ecu has a mosfet on pin 28 and is not supervised in the same way as I understand it is taking instructions from the control pad.
Will update later on.
I admire your deep dive in the matter: But since your problem was not present from the beginning and is also not common in other cars, it seems to me that it is more likely that not a wrong component has been used here, but an existing component is possibly broken or another fault, such as a bad ground connection, has occurred subsequently.
Maybe you should speak to Paul from ps electronic http://pselectronicsolutions.co.uk/?i=1
or with Jody from Python Racing http://www.pythonracing.co.uk/ !
Maybe you should speak to Paul from ps electronic http://pselectronicsolutions.co.uk/?i=1
or with Jody from Python Racing http://www.pythonracing.co.uk/ !
Edited by Granturadriver on Thursday 28th March 07:07
Edited by Granturadriver on Thursday 28th March 07:07
Gassing Station | General TVR Stuff & Gossip | Top of Page | What's New | My Stuff