The PIR sensors came in, bought on a closeout deal from Parallax. They seemed pretty straight forward, power them up, after an acclimation period they light up when something moving detected. That was great until I hooked them up to an input on the ARM. I was getting a high reading all the time, never going low. Disconnected the input and put it on a scope and yes it was going low. Reconnected it and never seemed to go low. Maybe I pulled a bad ARM board out of the experimental bin, so grabbed a production unit. Same issue. OK time to read the spec sheet, had to find it first, and then it gave no clue.
Then looked real close on the scope and saw it drop a few millivolts when connected to the ARM input.
Now a typical CMOS input only takes on the order of nanoamps, so that was weird, how could that be loading it down.
Playing around a bit with just power on the PIR sensor, I tried pulling the output down with a 10K resistor, and that worked standalone. It also worked when connected to the ARM input, so back in business writing code.
Either the output is an open drain PMOS, or something else. You would think the spec sheet would say something, but no. Maybe that is why these PIRs are on closeout. Nearly stumped me.
A quick test program, typed in line by line
while 1
wait(500)
print io(6)
loop
run