Embedded Systems Conference
Breaking News
Newest First | Oldest First | Threaded View
User Rank
antedeluvian   8/13/2014 11:13:12 AM

This general approach seems to be the simplest, but I have never used a comparator before. ... In concept, comparators appear to be simple, but are there any things that make them not as simple as they may seem?

Comparators are indeed simple to use. The only area of concern is when the signals are close in value (or you have a very slow rising/dropping waveform). You can get a chatter of the output in that region. A hysteresis technique is usually used to stop this. If the STM32 has internal comparators you could achieve this in software by driving the one comparator input with a D/A and when the switch occurs, modifying the D/A value up or down as necessary. Traditionally though the output is fed back through a network of resistors to shift the comparator input voltage slightly. Here is an Analog Devices app note on the subject. Google "comparator hysteresis" for more.

User Rank
antedeluvian   8/13/2014 11:02:38 AM

Option 1
The Si4704/05 has a digital audio output signal that I could take into my STM32 chip. The problem with this is that the max equivalent audio output rate from the FM audio chip is 48 kHz. I need to time a pulse that is 1 ms second long, so I will only have ~48 counts of resolution. This is just not enough. I could attempt to offset this by essentially curve fitting the output from the FM audio chip in the STM32 and then processing this signal

Forgive me if I am about to describe a technique that you have already described or have discounted. You could set up an internal counter with as fast a clock as you like. Then use the digital audio output signal to gate the counter so it only counts while the signal is high. You could get a much better resolution that way. With flip flops you could make it edge sensitive or counters for both the positive signal and the negative signal would allow you to measure between successive positive (and negative edges). I do hope the counters in the STM32 allow for this.

{Added after 5 minutes} I see arshs has provided the same solution while I was typing.

User Rank
Alternative solution
arshs   8/13/2014 10:55:22 AM


There is another alternative that I have implemented in the past for exactly the same situation.

You can use a Timer Input Capture function to capture the rising and falling edges of the digital pulse signal. Depending of the Timer time base, you can have a very fine resolution.

The Input Capture function from the timer "captures" the Timer count at the moment of the rising and/or falling edge. Usually, an interrupt is generated and the captured value is saved in an array for post processing.

After the message has finished transmitting, the array of counts (times) contains a series of times that is a representation of the 1's and 0's of the message. You would need a function to convert the times to bits (based on the bit rate or time per bit), and recover the message.


If the data output signal from the transceiver is square wave 0V to 3V amplitude, you don't need a comparator, because the signal can be connected directly to a MCU pin (a pin with input capture alternative function). Otherwise, the comparator is required to convert the transmitted signal to the right levels.


Max The Magnificent
User Rank
I'm thinking...
Max The Magnificent   8/13/2014 10:40:30 AM
I'm thinking the comparator is a good idea -- you could use transitions on the output to generate interrupts to start and stop a background timer in the MCU -- thereby freeing up the MCU for other tasks.

NASA's Orion Flight Software Production Systems Manager Darrel G. Raines joins Planet Analog Editor Steve Taranovich and Embedded.com Editor Max Maxfield to talk about embedded flight software used on the Mars on EE Times Radio. Live radio show and live chat. Get your questions ready.
Top Comments of the Week
Like Us on Facebook

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)
Special Video Section
The LTC®4015 is a complete synchronous buck controller/ ...
The LTC®2983 measures a wide variety of temperature sensors ...
The LTC®3886 is a dual PolyPhase DC/DC synchronous ...
The LT®3042 is a high performance low dropout linear ...
Chwan-Jye Foo (C.J Foo), product marketing manager for ...
The LT®3752/LT3752-1 are current mode PWM controllers ...
LED lighting is an important feature in today’s and future ...
Active balancing of series connected battery stacks exists ...
After a four-year absence, Infineon returns to Mobile World ...
A laptop’s 65-watt adapter can be made 6 times smaller and ...
An industry network should have device and data security at ...
The LTC2975 is a four-channel PMBus Power System Manager ...
In this video, a new high speed CMOS output comparator ...
The LT8640 is a 42V, 5A synchronous step-down regulator ...
The LTC2000 high-speed DAC has low noise and excellent ...
How do you protect the load and ensure output continues to ...
General-purpose DACs have applications in instrumentation, ...
Linear Technology demonstrates its latest measurement ...
Demos from Maxim Integrated at Electronica 2014 show ...
Bosch CEO Stefan Finkbeiner shows off latest combo and ...