[sdiy] Freescale Kinetis K2 Arm Cortex M4: 120MHz, FPU & I2S DAC/ADC interface
Robin Whittle
rw at firstpr.com.au
Thu Sep 11 05:58:32 CEST 2014
Hi Simon,
Thanks for your reply. I found some Infineon chips with I2S DAC/ADC
(codec) interfaces and FPUs. Here I explore dev boards and free
compilers etc. for these Frescale and Infineon chips.
In my first message I made some mistakes. The MK64FN1M0VLQ12 is 144
pins, not 100, and the links I provided were for a different chip in the
24 series, which has no FPU.
This page:
> See http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php
has lots of information, but does not list the commercially available
chips from various manufacturers.
The TI development board you mention is indeed inexpensive, such as $20
at Mouser:
http://www.ti.com/tool/ek-tm4c1294xl
http://au.mouser.com/ProductDetail/Texas-Instruments/EK-TM4C1294XL/?qs=YaA%252b3EhhSt21BnIfZSMnRQ==
It uses a TM4C1294NCPDT microcontroller, which is one of 71 in this range:
http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/c2000_performance/control_automation/tm4c12x/products.page
As far as I can tell, none of these TI devices have an I2S interface.
However, the one in the development board has inbuilt 10/100Mbps
Ethernet, which is not listed in the selector guide.
That's why I mentioned these Freescale chips - they have the I2S
interface and the FPU. I found the instruction set and cycle timing for
the FPU here:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439d/BEHJADED.html
Multiply and addition are 1 cycle, but the two combined are 3 cycles. I
assume this is for 32 bit floating point, which is ideal for audio.
Mouser has a page listing various development boards for ARM Cortex M4F.
This doesn't necessarily cover all the M4F microcontrollers.
http://au.mouser.com/Embedded-Solutions/Engineering-Tools/Embedded-Processor-Development-Tools/Development-Boards-Kits-ARM/ARM-Cortex-M4F-Core/_/N-8x0x4Z1yzonn5
Two new ones are from TI, but their chips don't have an ADC/DAC
interface. An old one is from TI too. The other two are from Infineon
for one of their XMC4500 chips: The XMC4400 and XMC4500 chips are 120MHz:
http://www.infineon.com/cms/en/product/parametricSearch.html?channel=db3a30433580b3710135a03abaf9385e
According to this page:
http://www.infineon.com/cms/en/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-tm-m/32-bit-xmc4000-industrial-microcontroller-arm-registered-cortex-tm-m4/channel.html?channel=db3a30433580b3710135a03abaf9385e
I2S is an option. By clicking "Select all parameters" in the table at
the bottom, a column appeared: "Type of Serial I/O Interfaces" with
which I could select I2S. It seems that all these XMC4100, XMC4200,
XMC4400 and XMC4500 chips have I2S, FPU and DSP.
In the XMC4500 series, RAM is 80kB, 128kB or 160kB with program memory
from 256kB to 1024kB. LQFP-64 packages have a maximum of 80kB RAM and
512kB program memory. The LQFP-100 packages includes one chip with 160kB
RAM and 1024kB program memory. In the Freescale range, the
MK64FN1M0VLQ12 is also in an LQFP-100 package and has 256kB RAM and
1024KB program memory.
Now I am looking for dev-kits for Freescale chips. The K series Cortex
M4 chip categories are listed here:
http://www.freescale.com/webapp/sps/site/overview.jsp?code=KINETIS_K_SERIES
There are seven families, with an August 2014 selector guide which
mentions I2S:
http://cache.freescale.com/files/microcontrollers/doc/selector_guide/KINETISKMCUSELGD.pdf
All but the first sub-family of these 600+ (!!) devices have I2S. The
"SPFPU" column is the one to watch for Floating Point, which most of
them lack.
Restricting ourselves to LQFP packages, 120MHz, FPU and I2S, these are
of interest:
Page 5, last 4 items, all 144 pin. These have 16kB cache.
Page 8, last handful of items, all 144 pin and anti-tamper.
I skipped some tables which did not mention "SPFPU", such as for the K64
sub-family, at least some of which do have FPUs.
Some likely chips from the following pages :
9 100 pin MK22FN1M0VLH12 128kB RAM 1MB FLASH. T4 eval-board.
15 100 pin MK64FN1M0VLL12 256kB RAM 1MB FLASH. T11/F3 eval-board.
The latter looks most promising, but has no USB. The datasheet for this
chip and full reference guide (page 165 for the I2S details) for its
series is:
http://cache.freescale.com/files/microcontrollers/doc/data_sheet/K64P144M120SF5.pdf
http://cache.freescale.com/files/microcontrollers/doc/ref_manual/K64P144M120SF5RM.pdf
Perhaps the most interesting chips are:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=K64_120
all of which have FPU and I2S. The MK64FN1M0VLL12 is one of these.
The F3 dev-kit is the $29 FRDM-K64F
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-K64F
This involves "mbed enabled" free access to an "online compiler".
The T11 dev-kit is the %149 TWR–K64F120M:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp%3Fcode%3DTWR-K64F120M
At a glance there is no free compiler. They mention CodeWarrior for MCU
10.6:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU10&tid=CWH
which is $395 a year for the basic version, $995 a year for the standard
version and $1995 a year for the professional version. According to:
http://www.freescale.com/files/soft_dev_tools/doc/quick_ref_guide/MCU_QS.pdf
there is a Special Edition of the Eclipse-based CodeWarrior (Windows
only) which supports up to 128kB of C code (C++? I wonder) for the
Kinetis K series
However, CodeWarrior this is not the recommended system for Kinetis
chips introduced after April 2014. The notice of this:
http://cache.freescale.com/files/soft_dev_tools/doc/support_info/CWIDESUPPORTAD.pdf
suggests some alternatives from other companies and the "Kinetis Design
Studio Integrated Development Environment (IDE)":
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KDS_IDE&tid=vanKDS
This is free, and based on open-source Eclipse 4.3 IDE and the GNU C/C++
compiler and GDB debugger, for Windows or Linux. However, this does not
at present support the K64 series.
I haven't yet figured out what chips it supports which are 120MHz, and
have an FPU and I2S interface.
Looking for Infineon dev-kits . . . I picked the XMC4500-F100K1024 AC:
http://www.infineon.com/cms/en/product/microcontroller/32-bit-industrial-microcontroller-based-on-arm-registered-cortex-tm-m/32-bit-xmc4000-industrial-microcontroller-arm-registered-cortex-tm-m4/XMC4500-F100K1024+AC/productType.html?productType=db3a3044419ed7ab0141a7db89521499
The larger of the two dev-boards is the 30 Euro XMC4500 Relax Kit:
http://www.infineon.com/cms/en/product/evaluation-boards/KIT_XMC45_RELAX_V1/productType.html?productType=db3a304437849205013813b23ac17763
The compiler toolchains are listed here:
http://www.infineon.com/cms/en/product/microcontrollers/32-bit-xmc4000-industrial-microcontrollers-arm%C2%AE-cortex%E2%84%A2-m4/xmc4000-development-tools,-software-and-kits/compiler-tool-chains/channel.html?channel=db3a30433784a0400137a308fc043e24
These are from other companies, apart from the free DAVE system from
Infineon:
http://www.infineon.com/cms/en/product/channel.html?channel=db3a30433580b37101359f8ee6963814
This too is based on Eclipse and the GNU toolchain.
It is my impression that there are both Freescale and Infineon chips
with 120MHz, FPU and I2S interfaces with inexpensive dev-boards and free
compilers, IDEs etc. However, I did not spend the time to check that
the free Freescale compiler etc. worked with the exact chip I was
interested in, other than the free "web-based" compiler.
There are LQFP-64 chips from both companies which would be alternatives
to the LQFP-100 chips mentioned above, if there was not such a need for
pins and RAM.
- Robin
More information about the Synth-diy
mailing list