Encoder input frequency (SVP1284)

What is the maximum frequency or time period per channel of the encoder (wheel encoder) inputs that it can count without losing pulses? I want to use this with a standard 1024ppr encoder for precise position detection and am not sure how fast it can reliably count. I surmise from the info available that the coprocessor does the encoder counting on pin change interupt and so is a software counter, this implies it might not be very fast? I realise I must use library function to read the coprocessor value and this will add a secondary error but I am interested in the core capability of the coprocessor counting :o)



Hello, Steve.

Yes, the encoders are handled by the auxiliary processor using pin change interrupts. I have used it to successfully read two encoders that were both generating 10,000 counts per second. In this case, a “count” is any transition on the encoder outputs. With both encoders, the auxiliary processor was handling 20,000 pin change interrupts per second. That’s 20 per millisecond, so one every 50 microseconds. The auxiliary processor is a PIC running at 12 MHz. You could probably push it a bit faster than 20,000 interrupts per second but pretty soon you would just run out of CPU time.

Here are the details of the test I did, along with some tips for handling fast encoders:

Do you have the Orangutan SVP? You could do the same test with your motor.


Wow, excellent response and the thing is far faster than I ever expected, awesome. Yes I have three SVP 1284 but seeing as you have been pretty thorough I’ll proceed with the final application. Thanks again, excellent. Steve