Kinetis vs STM32


8

Saya mencari aplikasi kontrol industri baru, dan dari pencarian saya, saya mempersempitnya menjadi 2 mikrokontroler yang terlihat cocok dengan aplikasi. STM32 dan Kinetis. Mereka berdua tampaknya sangat mampu melakukan pekerjaan itu dan saya sudah menggunakan STM32 dalam aplikasi yang agak tidak terkait. Saya suka keluarga STM32 karena ada banyak pilihan konfigurasi yang semuanya cocok untuk sebagian pin. Namun Kinetis terlihat sedikit lebih baik untuk prosesor uang / memori bijaksana.

Jadi pertanyaan saya kepada siapa pun dengan sedikit lebih banyak pengalaman dengan ini adalah ... Apa saja kelebihan dan kekurangan untuk setiap keluarga?

Saya cukup yakin tidak ada pilihan yang salah di sini untuk aplikasi saya, tetapi saya ingin lebih banyak detail dari orang lain selain Freescale dan ST. Saya menyadari detail aplikasi saya mungkin menjadi faktor di sini, tetapi ini adalah aplikasi yang sangat luas sejauh fungsionalitas berjalan. Batas terbesar kami yang mendorong kami untuk pindah ke controller yang berbeda adalah memori (~ 16k RAM 256k flash).

Wawasan apa pun akan sangat dihargai. Terima kasih


STM32F4 memiliki Cortex-M4 dengan floating-point dan DSP, dan flash hingga 1MB dan RAM 192 kB. Papan murah tersedia dengan beberapa periferal yang menarik.
Leon Heller

Konfigurasi (menyematkan memori dan kekuatan pemrosesan yang berbeda) dan kematangan yang sama .. STM32 adalah cara yang harus dilakukan ..
Ktc

Dua masuk ... satu pergi.
joeforker

Jawaban:


6

Dari STM32 (ST Mikroelektronika) dan keluarga Kinetis (Freescale), saya hanya bekerja pada keluarga prosesor STM32 dan oleh karena itu, saya akan dapat merinci pengalaman saya dengan STM32 dan berharap bahwa orang lain dapat melakukan hal yang sama untuk Kinetis, jadi Anda bisa kontras keduanya. Daftar ini mungkin tidak lengkap, dan hanya berdasarkan pengalaman saya.

PROS:

  1. ST menyediakan sejumlah besar pustaka untuk setiap prosesor mereka yang Anda dapatkan secara gratis. Pustaka-pustaka ini berisi daftar besar fungsi yang diperlukan untuk melakukan sebagian besar antarmuka tingkat rendah dasar dengan perangkat keras dan dapat membuat hidup Anda jauh lebih sederhana.

    mis. membatalkan GPIO_Init (GPIO_TypeDef * GPIOx, GPIO_InitTypeDef * GPIO_InitStruct) Ini menginisialisasi perangkat GPIOx sesuai dengan parameter yang ditentukan dalam GPIO_InitStruct.

    Cukup isi struktur GPIO (dan ada contoh proyek untuk memandu Anda melalui proses ini), dan panggil fungsi GPIO_init. Ini menghemat Anda harus mencari setidaknya 4-5 register dan mencari tahu apa yang harus setiap bit.

  2. Mikrokontroler mereka memiliki fungsionalitas Read protect, yang dapat membantu Anda melindungi IP Anda sampai batas tertentu, jika tidak sepenuhnya. Ada banyak mikrokontroler di luar sana, yang tidak benar-benar melakukan ini dengan sangat baik.

  3. Mereka memiliki keluarga pengendali mikro berdaya rendah, seri L1 mereka, yang memiliki berbagai tingkat fitur hemat daya berbeda yang dapat dihidupkan / dimatikan saat diperlukan.

  4. Meskipun ada banyak produsen yang sekarang melakukan versi mereka dari CMM core ARM, chip seri F ST telah memiliki beberapa revisi dan meskipun tidak sepenuhnya bebas bug, mereka sekarang cukup matang.

  5. Hampir semua varian yang saya kerjakan memiliki berton-ton timer dan peripheral lain dan Anda tidak akan pernah merasa cukup. :)

  6. Untuk memulainya, mereka memiliki beberapa contoh proyek yang dapat diprogram dalam papan evaluasi mereka, mereka hampir selalu memberi Anda secara gratis. Meskipun saya pikir sebagian besar produsen lain akan melakukan hal yang sama.

CONS:

  1. Meskipun pustaka yang disebutkan di atas pasti banyak membantu, namun beberapa nama fungsi tidak intuitif dan perlu waktu untuk memahami konvensi penamaan mereka. Ini tidak benar untuk seluruh perpustakaan, tetapi ada sedikit kode yang adil, yang tidak dikomentari dengan baik, dan Anda benar-benar harus membacanya untuk mengetahui apa yang dilakukannya.

  2. Jika Anda menggunakan perpustakaan mereka dan ingin mengaktifkan MISRA memeriksa proyek Anda, Anda akan mendapatkan banyak kesalahan / peringatan karena kode mereka tampaknya tidak sesuai dengan MISRA. Anda perlu menemukan cara untuk mengecualikan perpustakaan mereka dari pemeriksaan MISRA Anda. Ada beberapa cara untuk mengatasi hal ini, tetapi mereka memerlukan sedikit usaha untuk melakukannya.

  3. Dokumentasi ST untuk prosesor yang telah saya kerjakan agak buruk. Lembar data mereka tidak ditulis dengan baik. Informasi tidak dalam satu dokumen pusat / utama. Ada yang mereka sebut manual referensi, banyak catatan aplikasi dan setidaknya satu lembar data. Anda harus benar-benar menjelajah dokumen-dokumen ini terkadang untuk menemukan informasi yang Anda cari.

    Mereka sering menggambarkan port GPIO, dan pengaturan yang disarankan untuk salah satu bit
    mungkin dijelaskan 50 halaman kemudian.

Hanya itu yang bisa saya pikirkan saat ini, semoga ini memberi Anda sedikit gambaran tentang produk STM32. Saya akan menambahkan lebih banyak, jika saya bisa memikirkan hal lain.

Sarannya adalah untuk mendapatkan papan evaluasi untuk kedua jenis mikrokontroler (Kinetis satu dan STM32 satu), yang memiliki periferal yang Anda cari, dan bermain dengan mereka.

Itu akan memberi Anda perasaan yang benar-benar bagus untuk yang paling sesuai dengan kebutuhan Anda.


1
Saya berharap para produsen akan menahan diri agar perpustakaan mereka tidak menentukan dan menggunakan pengidentifikasi mereka sendiri untuk semuanya. Mengkonfigurasi port GPIO membutuhkan mencari semua register fungsi dalam manual untuk mengetahui apa arti semua mode yang berbeda; bisa menulis kode menggunakan informasi itu secara langsung akan lebih bermanfaat daripada harus kemudian memeriksa perpustakaan dan dokumentasinya untuk melihat bagaimana ia mendefinisikan sesuatu.
supercat

@supercat Lihatlah IDE DAVE dari Infineon. Anda pada dasarnya menambahkan apa yang mereka sebut "APLIKASI" melalui GUI dan DAVE thingy menangani pembuatan kode untuk Anda.
Chi

3

K70 memiliki silikon yang sangat buggy. Seringkali periferal yang telah Anda deskripsikan hanya memiliki fungsionalitas ringan; misalnya, itu baik untuk menggunakan cache dengan memori eksternal, tetapi jika Anda menggunakan memori ini dengan DMA Anda perlu membersihkan cache secara manual. K70 memiliki pengontrol LCD, tetapi hampir tidak mungkin untuk mencapai resolusi yang lebih baik dari 480x272, yang tidak lebih baik daripada yang dapat dicapai dengan MCU standar. K70 memiliki generator clock monster, tetapi hanya beberapa peripheral yang dapat menggunakannya sebagai ganti jam bus.
Yang paling penting adalah saya telah menemukan bahwa manajemen daya rendah yang rumit tidak berfungsi!


2

Saya berasumsi bahwa Anda membandingkan Kinetis dengan prosesor STM32F4 Cortex-M4. Saya belum benar-benar menggunakan tetapi telah melihat mereka untuk kemungkinan digunakan dalam proyek yang akan datang. Ada juga keluarga perangkat M4 yang tersedia dari TI-Stellaris dan diumumkan oleh Atmel dan NXP yang banyak di antaranya menyertakan prosesor floating point, banyak port serial, dan timer.

Dukungan dalam hal perangkat lunak untuk prosesor (Freescale dan ST) terlihat bagus dengan Freescale menyediakan perpustakaan antarmuka dan RTOS bebas royalti untuk bagian-bagian mereka. ST menyediakan satu set pustaka antarmuka yang memungkinkan konfigurasi dan penggunaan prosesor dan periferal mereka.

Perangkat ST tampaknya memenangkan perang kecepatan pemrosesan dengan kecepatan 168MHz yang dikutip menggunakan (IIRC) bus memori lebar ke program flash. Ini mungkin atau mungkin tidak penting bagi Anda.

Bagian Kinetis lebih matang, telah tersedia selama hampir setahun. Akibatnya sekarang ada cukup banyak perangkat yang diproduksi dengan beragam antarmuka dan perangkat periferal. Bagian ST hanya keluar selama sekitar satu bulan, meskipun mereka merilis sejumlah bagian pada saat yang sama dengan mengumumkan keluarga. Kisaran bagian mereka akan meningkat dengan cara yang sama seperti keluarga Cortex-M3 mereka.


STM32 tersedia untuk 2+ tahun .. Hanya F4 yang keluar selama beberapa bulan tetapi F1 / F2 telah ada lebih dari 2 tahun .. Kami menggunakannya ..
Ktc

Saya sangat menyadari bahwa prosesor berbasis STM32 M3 telah ada sejak lama. Pertanyaannya didasarkan pada bagian Kinetis (berbasis M4) jadi saya membandingkan keluarga prosesor M4 yang tersedia.
uɐɪ

Memang .. Tetapi jika Anda membandingkan M4 dengan M3, ada sedikit perbedaan dalam hal sisa blok yang memberi saya kepercayaan diri. ARM itu arm, tidak masalah versi mana karena akan diperiksa oleh ARM sendiri
Ktc

2

Pengalaman saya dengan STM32 dan Kinetis K70 bermuara pada menjalankan uClinux pada prosesor ini (info rinci tentang port uClinux ini tersedia di sini ).

Jika Anda berniat untuk menggunakan RAM eksternal dalam aplikasi Anda, K70 akan menjadi pilihan yang lebih baik, menurut saya.


Untuk menguraikan lebih lanjut pada posting saya di atas, K70 memiliki dua cache 8KB, satu untuk bus I / D (yang pada dasarnya menargetkan wilayah memori yang dapat digunakan untuk menjalankan kode), satu lagi untuk bus sistem (menargetkan "non-kode" memori) ). Dari apa yang kita lihat dalam konteks uClinux, cache membantu meningkatkan kinerja sistem secara keseluruhan dengan cara yang agak serius.
vladimir khusainov

1

Baru-baru ini saya menjawab permintaan pelanggan yang terkait erat dengan utas ini. Semoga komentar ini bermanfaat.

+++++++++++

Untuk menyoroti perbedaan antara K70 dengan STM32F2:

  • K70 adalah Cortex-M4 sedangkan STM32F2 adalah Cortex-M3. Dengan kata lain, K70 menyediakan unit FPU dan DSP perangkat keras on-chip.

  • K70 dapat menjalankan inti Cortex-M pada 150MHz (meskipun perangkat yang tersedia saat ini terbatas pada 120MHz). STM32F2 terbatas hingga 120MHz.

  • K70 menyediakan antarmuka DDR dan NAND Flash on-chip, memungkinkan kepadatan yang sangat tinggi untuk perangkat memori eksternal.

  • K70 memiliki cache on-chip (2 cache 8KB terpisah untuk I / D dan System bus). Ini benar-benar mem-boot kinerja memori eksternal dengan cara yang sangat serius.

  • K70 menyediakan berbagai mekanisme keamanan untuk memastikan bahwa perangkat lunak tidak dapat disalin menggunakan alat eksternal (JTAG debuggers, dll).

  • K70 memiliki pengontrol LCD terintegrasi serta antarmuka sentuh terintegrasi.

  • set serupa I / O interface tetapi ini perlu diukur terhadap persyaratan aplikasi spesifik.

Secara keseluruhan, jika Anda menggunakan memori eksternal dalam aplikasi Anda dan / atau membutuhkan antarmuka GUI, K70 akan menjadi pemenang yang jelas. Juga, K70 lebih performant, secara umum.

+++++++++++


K7x memiliki 16 bit ADC dengan PGA sementara non STM32 memilikinya.
Mehmet Fide
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.