Consider _all_ the things that have changed... - did you try a 2006 pic in a new board? (if you have a leftover pic from the past) - was there a layout change between old and new boards? (error in re-layout or new layout prone to noise) - are the new pullups the value you think they are? how about other parts in that area? (new parts not in spec) - is the new board located differently in the final assy? (noise introduced) - is power good all the time? what about brown out issues? - any other components change, like the brand of motherboard power supply? (maybe the signal isn't stable) - are the motherboard and pic grounds tied together and good? and there may be others. Make a small circuit for test that also samples that line and is edge triggered, but could drive a buzzer, etc (another pic, a 555, etc). Put it on the line with your circuit in test and physically see (hear) when it falsely triggers. It may be only when someone touches something, on a regular interval, etc, which will give you more ideas on what the source is, and if the problem goes away when you add to the line, that's important too. It could even be a pic on a protoboard that also samples the line (or drives an interrupt), and could measure the time it stays high. Use a different model pic for that. If it never sees that, and the 877 does, it will get interesting. ;) I would also verify (compare hex files) that the code hasn't changed since 2006 from a master archived copy. Also write something very simple for the 877 that doesn't do anything but sample that line and report it. Maybe use a slightly different, but simple, approach, like a loop. These tests might narrow down a software issue. All that said, this reminds me of a similar mystery 40 yrs ago or so (TTL at that point). Turns out someone had built a _small_ Van de Graf gen on the other side of [a very big] building in their space for some testing, and when it ran, a bit would mysteriously be read wrong over on my side. Of course, it was only be accident that we discovered it and solved it formally... -Skip jmg wrote: > Hello, > > I have a small problem with a big impact on my application. > > I am using a 16F877A, running in a 5V environment with 10 MHz. > I am using a timer interrupt (with 25ms) to read PORTB, Bit5. This pin is > defined as input. There is no write at all to this pin by software. > The internal pull-up is disabled. I am using an external pull-up to 5V. This > pin is connected to an external electronic (PS_ON_m Signal from a computer > motherboard). > > When the incoming signal is high, I am always reading a high (1) on this pin > by software. I have never seen, that a low was reed, when high was attached > to this pin. > But when the signal is low, it happens, that from time to time, this pin is > read as 1 instead of 0. I supervised the line with an osci, and I never saw > a glitch or spike or whatever. To be shure, I connected the pin direct to > GND. But again, from time to time, I read a wrong values. This may happen > after 30 seconds fro start or even after 20 minutes. > > Well, we first build this application 18 month ago, and we never saw this > happen(with exactly the same firmware and revision number of the PIC. Now, > we had to build new boards, and now we have this issues. > > I first though, we could could have a problem with the pic itself, so we > checked for datecodes. The very first (we no issue) had been from 2006, the > failing ones had been from 2007. So we decided to replace the pic on one > board. Now, with datecode from 2008, we still see this issue. And we see it > on all produced boards, meaing, we should not have shorts or bad soldering > (very unlikly to have the same fault on 5 boards). > > Any ideas, what could happen here? > > Best Regards > > Jens > -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist