I've just started programming with the Kinetis K60 MK60DN512VMD10 and have a problem with the differences between register definitions in the Reference Manual and the header files supplied with both Codewarrior and IAR compilers :-
"K60 Sub-Family Reference Manual" "Supports: MK60DN512VMD10" - (K60P144M100SF2V2RM Rev. 2 Jun 2012)
and
MK60N512VMD100.h
There are many detail differences but a good example is the MCG Registers. These go up to MCG_C6 in the header file but go up to MCG_C10 in the Reference Manual. Furthermore, many of the "bit mask" definitions in the header file don't have the "0" appended from the Reference Manual, eg, "MCG_C"_RANGE0" etc. Some even have completely different names..!
For now I'm building based on the example code provided by Freescale and I must use this header file because the register names match those in the various examples and in the "Kinetis Peripheral Module Quick Reference" (KQRUG, Rev. 0, 11/2010).
To get correctly named registers I would need to substitute the header file "MK60D10.h", but even that only goes up to MCG_C8... :-)
Since I don't want to be coding my project with incorrect register definitions, which is correct?
Perhaps these chips changed over time and I need the definitions for the correct age of chip?
Is there a header file which matches the registers in the Reference Manual?
Neil
Solved! Go to Solution.
I did more research and happened upon this document describing the differences between Issue 1 and Issue 2 of the K60 100 MHz chips. As far as I can tell the later 120 and 150 MHz chips (eg, K60Fxxxx12/15 etc) use the later registers.
(AN4445 Rev. 1, 8/2012) Kinetis 100 MHz Rev 1.x to Rev 2.x Migration Guide
It describes all of the differences I have found and many more besides. So at least I'm not going mad......... !
Unfortunately, not realising these differences, our off-site hardware developer has used Issue 1 chips on his prototype PCBs, whereas we will use Issue 2s on our Production boards. So I have to support both varieties for now.
So I suggest Freescale updates its examples to use the later registers etc so future developers don't get caught by this.
I did more research and happened upon this document describing the differences between Issue 1 and Issue 2 of the K60 100 MHz chips. As far as I can tell the later 120 and 150 MHz chips (eg, K60Fxxxx12/15 etc) use the later registers.
(AN4445 Rev. 1, 8/2012) Kinetis 100 MHz Rev 1.x to Rev 2.x Migration Guide
It describes all of the differences I have found and many more besides. So at least I'm not going mad......... !
Unfortunately, not realising these differences, our off-site hardware developer has used Issue 1 chips on his prototype PCBs, whereas we will use Issue 2s on our Production boards. So I have to support both varieties for now.
So I suggest Freescale updates its examples to use the later registers etc so future developers don't get caught by this.