I have a strange problem, I have a digital signal that is a nicely formed square wave, but it peaks at 3.85v. I would like to use a Mega1280 and the servoDecode library to get the pulse width information from this signal. The source of this wave is from a PPM encoder board, being powered by the 5v of the Arduino.
Will this work since it is not 5v, is 3.85v enough to be seen as HIGH?
How can i get the signal up to 5v?
Can I use a 3.3v board, which the signal would be then be too high?
Where is the HIGH / LOW threshold (tried searching, but got way into stuff i didn't understand)
(photo attached of the scope output)
(link to the source of the 'problem')
The 328 spec sheet says that the max volts on a pin is VCC + .5v. That's because at that point the ESD protection diodes start to conduct and depending on the available current they will self destruct.
So on a 3v3 system 3v8 is the max allowed. Personally for my money 3v85 is close enough as long as you do really have a VCC of 3v3 not 3v2 or something lower.
As some insurance you can place a resistor in series with the input signal, this will limit any current flowing through the protection diodes. About 150R should do.
what is the 'engineering' term for the threshold value
No idea, Atmel call it "Input High Voltage", abbreviated to Vih. Normaly you talk in terms of the abbreviations/acronyms so you would say a pin has a Vih of 4 volts etc.
(random side note, i thought the scope meter was my favorite tool, but now its a logic analyzer... - do they make a tool that combines both? that's not $30k)