Bagaimana cara memilih mikrokontroler ARM Cortex M3?

26

Berdasarkan persyaratan kasar saya berada di kisaran 36 hingga 72 MHz, memiliki 16kb + SRAM, 128kb + flash, yang dapat diprogram dalam C, saya telah memutuskan bahwa untuk aplikasi saya, saya ingin menggunakan ARM Cortex M3 MCU.

Pertanyaannya adalah, kriteria apa yang digunakan orang untuk memilih versi M3 yang akan digunakan? Ada banyak vendor yang mungkin seperti TI, ST, NXP, Freescale, dll, dll.

Pembeda utama dari sudut pandang saya adalah kemudahan pemrograman. Idealnya saya mengujinya di papan breakout / pengembangan, diikuti dengan implementasi di PCB saya sendiri.

JDS
sumber
11
Ini adalah pertanyaan yang berguna, siapa pun, tolong jangan menutupnya karena didasarkan pada pendapat saja .
Dzarda
2
Memilih vendor chip hanya sebagian dari masalah. Sudahkah Anda memikirkan pengembangan alat rantai apa yang akan Anda gunakan?
kkrambo
5
Saya akan mengatakan bahwa pentingnya memilih chip UC dalam situasi seperti ini sangat berlebihan. Semua chip yang memenuhi persyaratan dasar akan dilakukan. Jika Anda tetap menggunakan C atau C ++ dan tidak memerlukan periferal mewah, Anda bahkan dapat mengaktifkannya nanti dengan sedikit usaha. Saya akan mendasarkan pilihan saya pada jumlah dukungan yang bisa Anda dapatkan dari www, vendor, grup (pengguna), daftar, fora, dll. Yang mudah Anda akses.
Wouter van Ooijen
5
"Ada selusin pembuat dari inti yang sama. Hal-hal macam apa yang orang lihat untuk membantu mereka memilih satu?" sepertinya pertanyaan yang bagus untuk saya.
Scott Seidman
5
Ini pertanyaan skor tertinggi dalam daftar 250 terbaru kami, dengan tiga label favorit. Dengan statistik itu, jika ini PL, kita mungkin mempertimbangkan bertanya mengapa. Saya pikir itu cukup jelas bahwa poster itu menganggap "kemudahan pemrograman" menjadi SATU dari kriteria yang dia gunakan saat ini, dan dia meminta lebih. Dari empat jawaban, hanya satu yang membuat rekomendasi yang jelas untuk pengontrol, dan yang lainnya semua mendiskusikan kriteria apa yang mereka gunakan untuk membuat pilihan. Saya telah membuat suntingan kecil yang seharusnya membuat pertanyaan lebih pada topik, tetapi tampaknya cukup jelas bagi saya sebelum mengedit.
Scott Seidman

Jawaban:

19

Saya pikir @markt sudah pasti di tempat yang tepat: Toolchain, periferal, paket, devkits.

Saya akan menambahkan beberapa, dan mungkin melepas beberapa. Toolchain tentu penting, tetapi GRATIS mungkin atau mungkin tidak. Kadang-kadang, bekerja tanpa dukungan nyata bisa lebih mahal daripada yang Anda pikirkan, dan menggunakan paket komersial yang masuk akal mungkin sepadan untuk situasi tertentu. Terkadang, lulus audit lisensi yang menyeluruh juga penting, dan menggunakan alat gratis dengan lisensi terbatas dapat menggigit Anda nanti.

Pustaka CMSIS yang baik untuk mendukung mikrokontroler adalah suatu keharusan bagi saya. CMSIS - Standar Antarmuka Perangkat Lunak Mikrokontroler Cortex - arm.com/products/processors/cortex-m/… - adalah lapisan abstraksi perangkat keras untuk mikrokontroler seri Cortex-M. Secara teori, jika perpustakaan memenuhi persyaratan CMSIS, perpustakaan itu independen terhadap vendor, dan lebih mudah untuk menukar keluarga yang berbeda, dan Anda tidak perlu mempelajari kembali lingkungan dari bawah ke atas untuk dapat menggunakan perpustakaan. Salah satu aspek yang menarik dari lingkungan ARM Cortex adalah kemampuan untuk mengubah platform tanpa banyak keringat. Jika Anda memilih platform yang tidak membeli ke struktur CMSIS, Anda mungkin tidak dapat bergerak dengan nyaman.

Bagi saya, papan dev yang murah dan nyaman adalah suatu keharusan, tetapi ini mungkin atau mungkin tidak sepenting beberapa hal lain (saya pikir seri STM32 memiliki papan ketik yang luar biasa). Jika keluarga memiliki papan dev yang sangat mudah dan murah, maka Anda lebih mungkin mencari bantuan dari pengguna yang lebih besar jika Anda membutuhkannya. Juga, chip ini cenderung berada dalam paket SMT. Ketika Anda meledakkan chip, atau port pada chip, atau sedikit pada port pada chip, mengganti chip adalah PITA yang melibatkan pengerjaan ulang SMD. Jika Anda dapat membeli dua atau tiga papan masing-masing seharga $ 10- $ 15, dan menggantinya saat Anda menghancurkannya, Anda bahkan tidak akan BERPIKIR tentang melakukan pengerjaan ulang SMD!

Pikirkan "Ekstra". Anda mungkin memerlukan sesuatu di atas dan di luar apa yang dianggap sebagai "perangkat". Misalnya, mungkin Anda memiliki kebutuhan bluetooth yang berat, dan Anda dapat memilih untuk menggunakan Nordic Semiconductor untuk dukungan semacam itu. Anda mungkin mempertimbangkan beberapa hal lain, seperti betapa mudahnya bootloading, dll.

Pikirkan Dokumentasi. Saya agak kurang terkesan dengan betapa sulitnya mengarungi beberapa dokumentasi STM.

Scott Seidman
sumber
+1 Sepenuhnya setuju. Tahun lalu saya mulai dengan ARM Cortex-M3 / M4 menggunakan STM32. Saya hampir menyelesaikan desain STM32F207 ketika kami beralih ke STM32F407 berdasarkan harga / ketersediaan. Itu adalah drop-in untuk perangkat keras, dan perubahan perangkat lunak itu sepele. Dokumentasi dan kerumitan membuatnya sedikit menyakitkan untuk dipelajari, tetapi desainnya solid dan layak untuk masalah. Saya menggunakan kompiler GCC (gratis) untuk menulis kode uji dan ukuran kode versi gratis terbatas Keil untuk menulis / menguji driver sampel. Programmer kami memiliki lisensi untuk kompiler Keil penuh. Keduanya tampak solid.
Tut
1
@NickHalden, "ARM" melisensi inti ARM untuk pembuat chip yang mengemasnya dan menambahkan periferal. CMSIS - Standar Antarmuka Perangkat Lunak Mikrokontroler Cortex - arm.com/products/processors/cortex-m/… - adalah lapisan abstraksi perangkat keras untuk mikrokontroler seri Cortex-M. Secara teori, jika perpustakaan memenuhi persyaratan CMSIS, perpustakaan itu independen terhadap vendor, dan lebih mudah untuk menukar keluarga yang berbeda, dan Anda tidak perlu mempelajari kembali lingkungan dari bawah ke atas untuk dapat menggunakan perpustakaan.
Scott Seidman
1
@YoungMoney Go untuk yang termurah yang akan memberi Anda setidaknya dua kali sumber daya yang menurut Anda perlu.
tandai
1
Berkembanglah menjadi besar, hanya untuk mencegah hal-hal yang macet. Setelah Anda memiliki pegangan yang baik pada sumber daya apa yang Anda butuhkan, kurangi.
Scott Seidman
1
Toolchain gratis penting dalam konteks profesional, bukan karena biaya, tetapi karena keamanan akses - gunakan toolchain yang terkunci, dan kemampuan Anda untuk mempertahankan proyek terancam oleh lisensi yang dapat kedaluwarsa atau tidak tersedia untuk laptop perjalanan Anda atau rekan kerja, dongle yang bisa hilang, server lisensi yang dapat dicabut setelah beberapa tahun, dll. Sebagian besar desain tertanam memiliki masa hidup jauh melampaui perangkat keras desktop dan versi sistem operasi yang digunakan untuk mengembangkannya, dan mampu menghidupkan kembali yang asli alat di masa depan itu penting!
Chris Stratton
14
  1. Cari toolchain gratis , RTOS dan dukungan JTAG / SWD berbiaya rendah.
  2. Pertimbangkan paket apa yang dapat / ingin Anda kerjakan - jika DIP adalah suatu keharusan, singkirkan vendor silikon yang tidak menawarkan paket DIP.
  3. Lihatlah peripheral apa yang ditawarkan, dan apa yang Anda inginkan / butuhkan.
  4. Carilah bang-for-buck - gunakan satu atau lebih dari situs web vendor elektronik besar untuk membandingkan apel dengan apel.

Mengingat keinginan Anda untuk papan dev, pertimbangkan apa yang tersedia di sana.

Jika Anda datang dari platform lain (PIC, Atmel, dll) menerima bahwa akan ada kurva belajar yang adil di banyak bidang dalam pindah ke ARM, tetapi itu baik dan benar-benar layak.

markt
sumber
Ya - rantai alat gratis penting untuk keamanan di masa depan / komputer alternatif / akses insinyur alternatif ke toolchain lebih dari biaya. Untuk bagian Cortex, rantai alatnya cukup universal, jadi lebih mengetahui Anda dapat memprogramnya dengan perangkat antarmuka SWD yang mudah digunakan yang akan tersedia atau dibuat ulang dan dapat didorong dari OS Anda saat ini (dan di masa depan). pilihan.
Chris Stratton
5

Jika Anda tidak memiliki preferensi yang kuat (misalnya harga, ukuran, kekuatan, ditambah apa yang orang lain sebutkan), maka saya akan mempertimbangkan siapa yang mendukung Anda. Jika pabrikan tidak membalas pertanyaan Anda, itu bisa menjadi masalah. Atau apakah mereka memiliki distributor lokal dengan FAE (Field Applciation Engineer) yang dapat Anda tanyakan? Itu sangat penting bagi perusahaan kecil dan penghobi.

Beberapa bagian mungkin tidak tersedia dalam jumlah kecil. Misalnya, mereka yang memiliki DRAM dalam paket yang sama ditujukan untuk pembeli besar (> 10 k unit).

Brian Carlton
sumber
2

Mungkin STM32L151VBT6 sesuai dengan kebutuhan Anda. Bahkan kami menggunakannya di perusahaan kami dengan biaya yang moderat dan bagus dalam hal konsumsi daya. Anda juga akan mendapatkan sebagian besar sumber daya desain di http://www.st.com .

Fitur Utama dari STM32L151VB MCU adalah:

Platform ultra-daya rendah 1,65 V hingga 3,6 V catu daya

-40 ° C hingga 85 ° C / 105 ° C kisaran suhu

0,3 μA Mode siaga (3 pin bangun)

0,9 μA Mode siaga + RTC

Mode Stop 0,57 μA (16 garis wakeup)

1.2 μA Mode berhenti + RTC

9 μA Mode Jalankan daya rendah

214 μA / MHz Jalankan mode

10 nA kebocoran I / O sangat rendah

<8 waktu bangun

Inti: ARM®Cortex ™ -M3 CPU 32-bit

Dari 32 kHz hingga maksimal 32 MHz

33,3 puncak DMIPS (Dhrystone 2.1)

Unit perlindungan memori

Atur ulang dan manajemen pasokan

BOR ultra-aman, daya rendah (reset brownout) dengan 5 ambang batas yang dapat dipilih

POR / PDR berdaya sangat rendah

Programmable voltage detector (PVD)

Sumber jam

Osilator kristal 1 hingga 24 MHz

Osilator 32 kHz untuk RTC dengan kalibrasi

Kecepatan Tinggi Internal 16 MHz pabrik-dipangkas RC (+/- 1%)

Daya Rendah Internal 37 kHz RC

Daya internal multispeed rendah 65 kHz hingga 4,2 MHz

PLL untuk jam CPU dan USB (48 MHz)

Bootloader yang sudah diprogram

USART didukung

Dukungan pengembangan

Mendukung debug kawat seri

JTAG dan lacak didukung

Hingga 83 I / Os cepat (73 I / Os 5V toleran), semua dapat dipetakan pada 16 vektor interupsi eksternal

Kenangan:

Hingga 128 KB Flash dengan ECC

Hingga 16 KB RAM

Hingga 4 KB EEPROM sejati dengan ECC

80 Byte Backup Register

Driver LCD untuk segmen hingga 8x40

Mendukung penyesuaian kontras

Mendukung mode berkedip

Konverter step-up on board

Periferal analog yang kaya (turun ke 1,8 V)

12-bit ADC 1 Msps hingga 24 saluran

Saluran DAC 2 12-bit dengan buffer output

2x Pembanding daya ultra rendah (mode jendela dan kemampuan bangun)

Pengontrol DMA 7x saluran

8x antarmuka komunikasi periferal

1x USB 2.0 (internal 48 MHz PLL)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mbits / s

2x I2C (SMBus / PMBus)

Timer 10x: 6x 16-bit dengan hingga 4 saluran IC / OC / PWM, timer dasar 2x 16-bit, timer timer pengawas 2x (independen dan jendela)

Hingga 20 saluran penginderaan kapasitif yang mendukung tombol sentuh, sensor sentuh linear dan putar, unit perhitungan CRC, ID unik 96-bit

Myanju
sumber