Altimeter progress, new controller!
Long time without updating the blog, hectic times here!
I managed to create a new controller board, got rid of the multidrop serial interface and now I'm using CANBus for communicating the master and slave boards. Doesn't make sense to reinvent the wheel, CANBus transceivers are very cheap and some uc already have the protocol implemented in HW.
Regarding the altimeter, it's from a real Boeing 737, and I guess it's from the early 80's, so it's all analog. I'm still learning how it works, it has 4 differential resolvers, 1 DC motor and ... 1 stepper motor! I've still got no idea what the stepper is for. At first glance, I thought the 4 differential resolvers would be geared differently, so 1st would be 1 turn per 1000 ft, 2nd 1 turn per 5000ft, 3rd 1 turn per 20.000ft, and so on, and then everything would be moved with the DC motor, using the resolvers as feedback elements. But, that's not the case: 2 resolvers are geared so 1 turn is 5.000ft (5 indicator turns), and the other 2 resolvers are 0.25 turns per 20.000ft (!). Given the full altimeter scale is 50.000ft, I don't understand the reason for this. Also, everything can be moved either using the DC motor or using the stepper...
Anyhow, the plan is first to get a good resolution from the resolvers, and see what can I get;
The resolvers are special transformers, where primary is a rotating coil, and there are two secondaries, each 90º apart. So, knowing the phase of the signal applied to the primary, and reading phase and amplitude of the secondaries, you can get the shaft angle.
Of course, the limit here is the noise and resolution you can get.
To generate a known phase wave to excite the primary winding, I used a table driven PWM generator. You can see here the PWM train and the resulting wave. To drive the resolver primary winding I use a ULN2003. I'm not applying any filtering at all, as the coil itself is a very good filter.



I experimented first reading the secondary in a single-ended way, that is, one end of the winding to ground, the other to an operational amplifier
to buffer, filter and conform it. You can see the resulting waveform here in the green trace. I was not satisfied with the result, so I tried to differentially amplify it, so I get rid of common source noise. The result is in white trace, much better as you can see:

I still need to tune the amplifier parameters, so I get a full ADC resolution signal. The amplifier is powered from 12v rail, so I can get an amplitude from +1.2 to +5. What I'll be doing is to set the analog reference to 1.2v on the DSPIC, so I get full resolution. To see how the phase and amplitude changes with differential resolver shaft movement, here is an small video showing it:
| Next > |
|---|
Last Updated ( Monday, 08 June 2009 08:25 )
