The system I'm developing includes two pressure transducers that have three frequency outputs: reference, pressure and temperature. That's six frequencies I need to measure. The reference frequency is approximately 7.2 MHz, whilst the two signal frequencies are in the range 10 to 100 kHz.
I've got a Microchip dsPIC33E device on my main board, which I know can be configured (using the Input Capture peripheral modules) to do the job. However, reading the pressure sensors is neither the main function of the micro nor the most time-critical, so I'm reluctant to burden it with this job as well. For the same reason, I don't want to use an off-chip device with an i2c interface, as the separation between layers 1, 2 and 3 is not clean and the protocol overhead high in comparison with spi+dma or an adc.
Are there any relatively simple electronic solutions to the problem?
- There are several IC devices available that have LCD driver outputs, but I've been unable to find anything (that's still in production) with a SPI interface.
- I'd rather not use a second micro-controller, but might consider it if there really is no practical alternative.
- An analogue solution could be acceptable, providing it is sufficiently accurate.
- FPGA or CPLD solutions may have potential.
The devices are Quartzdyne Frequency Output Pressure Transducers, which are to be deployed in an environment where the pressure and temperature can vary significantly over time. Changes in either pressure or temperature can cause variation in the signal on both the pressure and temperature inputs. The reference signal is provided as a control, as it is affected equally by both pressure and temperature variations. Consequently, for best accuracy, all three frequencies have to be measured. The device manufacturer provides mathematical functions for calculating the pressure and temperature from the three frequency measurements.
Resolution: A frequency error of +/- 0.01 Hz of the 7.2 MHz signal (or better) is desirable to achieve the best accuracy of the sensor.
Bandwidth: The pressure and temperature frequencies should be updated at 10 Hz. If I use a period counting solution on a micro-controller, a gate time of 1 second (or longer) may be required. But this could be achieved by accumulating consecutive counts over shorter periods in a circular buffer to create a longer 'virtual' gate time.