Warning on use of Coldfire PIT (Programmable Interval Timer)

Tom Evans thomasaevans at optusnet.com.au
Mon Oct 11 13:47:08 UTC 2010


I follow the Coldfire Forum at Freescale.

I spotted a post on a problem someone was having with the PIT losing 
time, thought about it over the weekend and came up with an explanation.

Which has the consequence that possibly everyone using the Coldfire PITs 
is using them the wrong way, and as a result the PITs are dropping 
counts and giving inaccurate timing. I've found Linux source code that 
looks to be doing the wrong thing.

This is because the Reference Manual doesn't match what the hardware 
does when the PIT PCSR is written to when acknowledging an interrupt. 
The standard Freescale Coldfire PIT header files (that define the chip) 
make life difficult to get this right.

One line summary:

When you write to the PIT PCSR to clear the PIF bit, you have to do it 
with a BYTE WRITE and not a WORD WRITE, as the latter resets the 
prescaler and loses counts.

Details here (link will probably wrap, you may need to paste it into 
your browser in bits):

http://forums.freescale.com/t5/68K-ColdFire-reg-Microprocessors/PIT-hw-boo-boo-Read-if-you-need-accurate-PIT-CF/m-p/60597#M9572

-- 
=========
Tom Evans



More information about the coldfire-gnu-discuss mailing list