Cara termurah mutlak, mudah untuk memulai pemrograman pada mikrokontroler ARM [ditutup]

18

Saya ingin mulai menggunakan prosesor ARM, bermigrasi dari PIC yang telah saya gunakan terlalu lama. Model 8 bit tersedia dengan harga di bawah $ 1, programmer di bawah $ 10, dan saya telah dimanjakan oleh kemudahan dan biaya yang rendah untuk memulai. Tetapi melihat bahwa kekuatan mereka dikerdilkan oleh beberapa chip ARM dengan harga yang sama, dan muak dengan perangkat lunak sumber tertutup, saya ingin beralih.

Saya lebih suka menghindari papan pengembangan, dan langsung menggunakannya dengan pcb break-out generik murah ($ 1), dan pada papan tempat memotong roti menggunakan komponen eksternal apa pun yang penting untuk membuatnya berjalan.

Apa pilihan saya untuk pemrograman chip ARM dengan cara ini? Apakah ada programmer seperti PICKit2 yang menggunakan USB untuk terhubung ke PC, pemrograman melalui koneksi serial sederhana (seperti ICSP) dengan chip? Berapa banyak perbedaan dalam pengaturan yang diperlukan untuk berbagai produsen ARM, versi ARM dan chip individual? (ST, Atmel ...) Misalnya apakah masing-masing pabrikan membutuhkan kompiler, pemrogram, IDE, dll.? Atau ada alat umum untuk semua?

EDIT: Baiklah jadi setelah penelitian lebih lanjut saya percaya saya telah datang dengan solusi yang relatif murah, sebuah papan dev stm32 dapat di-flash dengan firmware DAPLINK, tapi saya tidak percaya bahwa firmware github resmi akan bekerja secara asli (semua ini adalah spekulasi sampai saya dapatkan board dev stm32 saya melalui pos). Tapi saya menemukan bahwa papan daplink_usb yang disertakan dengan readbear mk20 menjalankan chip stm32, mereka telah merilis firmware, yang harus memiliki garis yang diubah untuk membuatnya kompatibel dengan kristal 8mhz (Detail dalam posting forum yang ditautkan di bawah). Jika tidak, ganti kristal dengan yang 16 mhz. Sakit pembaruan setelah saya mengkonfirmasi ini ketika kit dev saya tiba.

GITHUB REPO

Sumber Forum yang bagus di sini .

Garpu Github Redbear

CL22
sumber
4
Adalah baik untuk menyadari bahwa $ 5 memberi Anda Raspberry Pi Zero, yang didukung oleh GCC yang sangat normal (dan gratis!). Dan jika Anda baru saja mengetahui betapa mikrokontroler ARM lebih cepat, RPi akan mengejutkan Anda lagi. Masalah utama IMO adalah bahwa tidak ada pabrikan ARM yang memahami pesan di bawah RPi. Anda tidak akan mendapatkan banyak uang dari mikrokontroler ARM lagi, tetapi ada banyak lagi yang bisa dilakukan dengan memasok modul CPU yang siap pakai.
MSalters
4
Kadang-kadang terlalu sulit untuk menggunakan modul CPU yang siap digunakan dalam aplikasi tertanam.
Bence Kaulics
3
@ MSalters, RPI besar ... Aku hanya tidak perlu tambahan yang datang dengannya. Saya perlu barang-barang telanjang di ruang yang sangat ringkas untuk pemrosesan waktu-nyata yang cepat. Juga, RPI mengkonsumsi banyak daya lebih banyak daripada yang bisa diterima.
CL22
3
Tentu, tetapi kebanyakan papan dev akan seperti itu. Tetapi salah satu hal besar tentang pengembangan MCU adalah bahwa pengembangan perangkat keras dan perangkat lunak masing-masing dapat diisolasi sampai batas tertentu.
Ignacio Vazquez-Abrams
2
Pertimbangkan untuk mendapatkan papan dev berbiaya rendah yang dilengkapi dengan jembatan USB-SWD terintegrasi. Ini akan memberi Anda akses ke fitur debug serta mengunduh kode. Anda dapat membagi akses SWD ke target lain jika sesuai untuk Anda.
Sean Houlihane

Jawaban:

14

Baris stm32F0 dan stm32L0 memiliki papan penemuan yang berjalan sekitar $ 10, dan Keil akan menyediakan IDE fungsi penuh untuk baris ini dengan biaya nol.

Petunjuk menginstal pro MDK gratis Keil DI SINI

Juga, ARM memiliki lembar putih tentang migrasi ke Cortex M3 dari PIC yang mungkin bermanfaat bagi Anda

Scott Seidman
sumber
7
+1 Tetapi juga patut dicatat bahwa sebagian besar (semua) papan penemuan memiliki STLINK bawaan yang juga dapat digunakan untuk memprogram perangkat mandiri dengan mengkonfigurasi jumper.
Roger Rowland
@RogerRowland - poin bagus. Saya telah menggunakan programmer on board untuk board saya sendiri sebelumnya. Penemuan adalah garis yang bagus, secara umum. Saya berharap mereka memiliki lubang pemasangan!
Scott Seidman
Apakah Anda merekomendasikan Nucleo atau Discovery? Mereka tampaknya memiliki harga yang sama dan keduanya memiliki fitur ST-LINK.
David
@david, belum menggunakan nukleo, tetapi saya dapat mengatakan bahwa Discoveries telah membantu saya dengan baik. Pada titik harga itu, dapatkan masing-masing (meskipun saya akan pergi dengan dua Discoveries!)
Scott Seidman
Dave Jones baru-baru ini membuat video EEVblog tentang papan dev untuk MCU daya rendah ARM32 . Mungkin relevan.
Lorenzo Donati mendukung Monica
7

Cara termudah - keluar> $ 10K USD untuk kompiler Keil Pro yang berfungsi penuh, beli debugger JLINK mereka ($ 1K lainnya mungkin - ada yang lebih murah dengan beberapa batasan). IAR adalah kemungkinan lain yang mahal (contoh disediakan untuk prosesor STM32F7 Cortex M7 yang bekerja pada demo IAR 30 hari)

Cara termurah - unduh dan instal toolchain GCC-ARM + Eclipse (gratis) dengan plugin debugger JLINK. Dapatkan klon JLINK seharga $ 20 atau lebih, yang saya pikir akan berfungsi dengan baik - belum diuji, untuk debugging.

Ada instruksi rinci untuk yang terakhir di internet, namun mereka membuat asumsi tertentu. Berharap untuk menghabiskan satu hari atau lebih untuk membuatnya, terutama di bawah Windows. Jangan berharap dapat menggunakan banyak contoh yang disediakan untuk IDE lain tanpa kerja. Secara mengesankan, toolchain gratis dapat menggunakan 'paket' ('eksperimental' sekarang).

Ada sistem lain seperti Rowley Crossworks (yang menggunakan gcc, saya percaya) yang kurang menyakitkan secara finansial. Atmel Studio adalah hal lain, tetapi saya sudah memiliki keluhan pahit dari pengembang firmware saya yang sangat berpengalaman tentang hal itu (hanya bermain sebentar dengannya).

Jika kebutuhan kode Anda kurang dari 32K, Anda dapat menggunakan sistem Keil yang sama secara gratis (versi kode terbatas), tetapi perlu diketahui bahwa jalur peningkatannya mudah tetapi agak mahal. Misalnya, itu tidak akan mengkompilasi contoh Ethernet sederhana untuk SAMA70. Baik jika Anda mengganti PICs atau AVRs dengan ARM low-end, tetapi tidak terlalu bagus jika Anda akan ARM karena Anda benar-benar perlu berbicara dengan layar LCD dan menjalankan protokol komunikasi yang kompleks (mungkin modul pra-kompilasi dapat dimasukkan tanpa mempengaruhi Batas 32K, saya belum menyelidiki sudut tertentu).

Spehro Pefhany
sumber
7

Inilah yang saya gunakan:

  • STM32F103 "board sistem minimum" (lihat misalnya di sini , inti Cortex-M3 ), berjalan pada daya 3.3V atau USB tanpa komponen eksternal, klon masing-masing berharga sekitar US $ 3. Ini sesuai dengan permintaan Anda untuk "langsung masuk ke dalamnya dengan pcb break-out generik murah, dan pada papan tempat memotong roti".
  • ST-Link V2 USB programmer clone (terlihat seperti ini ), mulai sekitar US $ 2 dan mendukung debugging on-chip juga.
  • EmBitz (sebelumnya Em :: Blocks) sebagai IDE dengan gcc toolchain, US $ 0
  • CubeMX dari STM untuk membantu memulai proyek baru, US $ 0
JimmyB
sumber
5

Awal yang paling mudah mungkin adalah salah satu papan klon pihak ketiga. Contoh acak dari ST . Untuk itu diperlukan seorang programmer yang menggunakan protokol 'SWD'. ST membuat yang bermerek 'ST-LINK', saya tidak yakin apakah Anda harus menggunakan yang ST-LINK dengan perangkat ST atau apakah itu benar-benar generik.

Beberapa kombinasi SWD dan JTAG memainkan peran ICSP pada sistem ARM, memberi Anda kemampuan pemrograman dan debug.

Dari segi perangkat lunak, biasanya dimungkinkan untuk bekerja dengan GCC dan OpenOCD pada kebanyakan chip. Detailnya sedikit berbeda untuk setiap perangkat. Profesional sering menggunakan toolchain Keil, yang cukup mahal.

Beberapa perangkat (misalnya dari seri Kinetis) memiliki bootloader USB: perangkat muncul sebagai perangkat penyimpanan massal, Anda mengunduh file BIN ke dalamnya dan menekan tombol. Solusi termudah, tidak memerlukan programmer. Atmel AT91 memiliki bootloader USB yang berfungsi dengan protokol berpemilik yang disebut SAM-BA.

pjc50
sumber
papan penemuan dan nukleo memiliki stlink pada mereka dan biaya 30% lebih rendah dari dongle stlink mandiri. plus Anda mendapatkan setidaknya satu mcu untuk dimainkan. Mendapatkan stlink masih bagus dan Anda dapat menggunakannya dengan openocd untuk terhubung melalui swd ke chip korteks-m st atau non-st lainnya.
old_timer
1
Menarik chip Kenetisis saya mencoba saya tidak bisa menggunakan (belum) karena tidak memiliki bootloader hanya swd dan tidak akan terhubung menggunakan stlink, perlu cmsis-dap seharusnya. juga samd21 tidak lagi membawa bootloader, Anda dapat menambahkannya tetapi pada dasarnya ada di ruang flash aplikasi dan cukup sepele untuk dihapus secara tidak sengaja. stm32s masih memiliki bootloader seperti halnya nxp, mungkin itu akan hilang juga ...
old_timer
3

Di bagian depan IDE, Silicon Labs menyediakan Simplicity Studio , yang didasarkan pada Eclipse . Itu datang sebagai standar dengan GCC.

Ada dukungan bawaan untuk semua starter kit yang mereka jual, membuat memulai relatif tidak menyakitkan.

Pemrograman menggunakan driver J-Link Segger untuk starter kit (gratis). Cukup sambungkan kit ke USB dan pergi.

Atmel memiliki Studio mereka yang didasarkan pada Visual Studio IDE dan dapat terhubung ke salah satu debugger Atmel. Ini juga disertakan dengan GCC.

Kedua vendor memiliki banyak (sangat banyak) contoh untuk menggerakkan perangkat mereka.

Saya telah menggunakan keduanya dan meskipun dokumentasinya tidak sempurna (tidak pernah ada), itu tentu cukup untuk membuat saya berjalan relatif tanpa rasa sakit.

Banyak perangkat ST (dan lainnya) dipetakan diaktifkan.

Peter Smith
sumber
2

Cypress membuat board breakout berbasis PSOC-4200 (ARM Cortex M0) dengan form factor DIP-40 yang menyertakan adaptor pemrograman berbasis USB di bagian break-off. Harga untuk papan breakout dan adaptor pemrograman yang dapat dilepas (dilepas) adalah US $ 3,99 dari Digi-Key.

supercat
sumber
1

Saya akan merekomendasikan CooCox - ini adalah kombinasi GCC + Eclipse yang sama, tetapi tidak perlu mengkonfigurasi toolchain secara manual, cukup instal dan mulai coding.

Pematrolian
sumber
Terlihat bagus, saya kira Atmel tidak didukung. Apakah inti ST M7 didukung?
Spehro Pefhany
Tampaknya Atmel tidak didukung, ada beberapa perpustakaan untuk seri STM32F7 dalam komponen. Harus mengatakan bahwa masa depan CoIDE tidak jelas - situs web berantakan, pembaruan jarang terjadi sekarang, tetapi masih banyak pilihan untuk memulai dengan pemrograman ARM (khususnya dengan STM32).
Flanker
1

Dalam kepercayaan saya TI, NXP (terdiri dari NXP + Freescale) & ST adalah pemain peran utama di dunia korteks M, terutama ST dan NXP menawarkan alat yang sangat kompetitif bagi pendatang baru, satu parameter penting lainnya adalah popularitas di komunitas sumber terbuka yang menyebabkan jumlah tutorial, perpustakaan, driver perangkat, alat & dll.

kemudian :

  1. kompiler online tidur + papan tempat tidur
  2. Papan penemuan STM32 (seperti penemuan STM32F407) + built-in debugger st-link + kerangka kerja SPL atau HAL (STM CUBE) + IDE keil lisensi gratis.
  3. Papan penemuan LPC + LPC-link 2 debugger + LPCOPEN framework + LPCXPRESSO lisensi lisensi gratis.

Nomor 2 & 3 adalah pilihan yang lebih baik untuk tingkat atas daripada hobi. Juga ingat dengan menggunakan lisensi gratis dari alat profesional seperti IAR, Keil atau bahkan LPCXPRESSO Anda memiliki sedikit rasa sakit saat pindah ke area profesional.

Mahmoud Hosseinipour
sumber
1
Perpustakaan MCK dan toolchain ARM adalah mbed- lihat [ developer.mbed.org] [developer.mbed.org]
Sean Houlihane